The present disclosure relates generally to an integrated circuit (IC) bus architecture. More specifically, one aspect of the present disclosure relates to a reduced-area, on-chip bus architecture for interconnecting selectable client circuitry with selected path segments.
Integrated circuit bus architectures interconnect multiple client subsystems in an N×M configuration in which each member of a set of M source clients may be selectively coupled to each of a set of N destination clients on a bus. Multiplexing circuitry can provide a direct connection between selected clients and allows traffic to be forwarded from one client to a number of other clients simultaneously. Complex bus arbitration algorithms are commonly used to allow any source client to write to the bus and any destination client to read from the bus.
A particular crossbar switching configuration, referred to as XBAR, is becoming increasingly important to implement client to client connectivity in high speed circuitry such as modem and graphics processing circuitry. The operation of XBAR at high frequencies generally involves the use of repeaters and latch repeaters that increase dynamic power consumption.
XBAR configurations may be implemented without channels using standard place and route (P&R) flow techniques. Such configurations consume a large amount of dynamic power, increase congestion and operate at relatively low speeds. Such configurations also consume a large area on a chip and present timing closure problems.
Asymmetrical XBAR architectures allow a number of source clients or subsystems to selectively access a different number of destination clients or subsystems. Each client may write to and read from the XBAR in an N-way communication scheme. N-way multiplexing is used to sample specific clients on a cycle by cycle basis. Multiplexer control circuitry determines which clients can write to the XBAR system and which clients can listen to the XBAR system. For asymmetrical in-out XBARs the READ client multiplexor (MUX) architecture implements a source bus for each source client. When the number of source clients is greater than the number of destination clients, the asymmetrical XBAR architecture includes more busses than can be used in a given cycle. Thus, some area on a chip is wasted, by busses that are unused during some cycles. The wasted area may be substantial in complex systems involving, for example, 128 bit and 256 bit memory interfaces.
One aspect of the present disclosure relates to a low-power interconnect that includes a number of paths coupling a number of selectable destination clients and a number of source clients. The number of the paths may correspond to a minimum of the number of selectable destination clients and the number of source clients. The low-power interconnect also includes a number of tri-state devices coupled between the source clients and the paths. The tri-state buffers are configured to selectively allow data from the source clients onto the paths. Control circuitry is coupled to the tri-state devices and configured for control of the tri-state devices to establish connections between the destination clients and the source clients via the paths.
A memory interconnect according to an aspect of the present disclosure includes a first path coupled between a number of selectable data destinations and a first client. A number of tri-state buffers are configured in the first path between the selectable data destinations. Control circuitry is coupled to the tri-state buffers and configured to couple selected portions of the first path between selected data destinations of the selectable data destination.
A method for operating a memory interface according to aspects of the present disclosure includes receiving a first client select signal identifying a first client selectively coupled to the memory interface and coupling the first client to a first path in response to the first client select signal. The method also includes propagating the first client select signal to a first set of tri-state buffers between the first client and a second client on the first path. The method also includes turning on the first set of tri-state buffers in response to the first client select signal so that the first set of tri-state buffers couples the first client and the second client.
A memory interconnect according to another aspect of the present disclosure includes means for receiving a first client select signal identifying a first client selectively coupled to a memory interface. The memory interconnect also means for coupling the first client to a first path in response to the first client select signal. The memory interconnect further includes means for propagating the first client select signal to a first set of tri-state buffers between the first client and a second client on the first path. The memory interconnect also includes means for turning on the first set of tri-state buffers in response to the first client select signal so that the first set of tri-state buffers couples the first client and the second client.
Another aspect of the present disclosure includes a computer program product for operating a memory interface. The computer program product includes a non-transitory computer-readable medium having program code recorded thereon. The program code recorded on the non-transitory computer-readable medium includes program code to receive a first client select signal identifying a first client selectively coupled to a low-power interface and program code to couple the first client to a first path in response to the first client select signal. The program code recorded on the non-transitory computer readable medium also includes program code to propagate the first client select signal to a first set of tri-state buffers between the first client and a second client on the first path and program code to turn on the first set of tri-state buffers in response to the first client select signal so that the first set of tri-state buffers couples the first client and the second client.
This has outlined, rather broadly, the features and technical advantages of the present disclosure in order that the detailed description that follows may be better understood. Additional features and advantages of the disclosure will be described below. It should be appreciated by those skilled in the art that this disclosure may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the teachings of the disclosure as set forth in the appended claims. The novel features, which are believed to be characteristic of the disclosure, both as to its organization and method of operation, together with further objects and advantages, will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present disclosure.
The features, nature, and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout.
The detailed description set forth below, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. It will be apparent, however, to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts. As described herein, the use of the term “and/or” is intended to represent an “inclusive OR”, and the use of the term “or” is intended to represent an “exclusive OR”.
An interconnect that allows client to client communication using an XBAR architecture is described in
Standard XBAR implementation schemes are non-ideal when the number of input ports and the number of output ports of a dedicated XBAR are not equal. A portion of an asymmetrical XBAR architecture 150, which allows a number of source clients 152 or subsystems to selectively access a different number of destination clients 154 or subsystems according to a standard XBAR architecture is described with reference to
In such standard configurations, the area occupied by the XBAR architecture are sub-optimal. For example, if the number of input client ports exceeds the number of output client ports, a standard XBAR implementation includes more buses than are necessary for consumption by the destination clients. In other words, when the number of source clients is greater than the number of destination clients, the asymmetrical XBAR architecture includes more busses than can be used in a given cycle. Thus, some area on a chip is wasted, by busses that are unused during some cycles. The wasted area may be substantial in complex systems which may involve 128 bit or 256 bit memory interfaces, for example.
The maximum bandwidth at the interface of an asymmetrical XBAR (MxN) is determined by the lesser of the number of source clients or destination clients. According to aspects of the present disclosure, the interface area on a chip is reduced by routing interconnect resources based on the lesser number of the number of source clients or destination clients.
A portion of an asymmetrical XBAR architecture 170, which allows a number of source clients 172A-172D or subsystems to selectively access a different number of destination clients 174A and 174B or subsystems according to an aspect of the present disclosure is described with reference to
In each access cycle, the destination tri-state buffers 178 are controlled to selectively couple a selected one of the source clients 172 to a selected one of the destination clients 174. The control circuitry (not shown) may control the tri-state buffers based on a source tag identifying a source client and a destination tag identifying a destination client for each access cycle, for example. Control of the tri-state buffers may also be based on the direction of data in the access cycle, according to whether the access cycle is a read cycle or a write cycle, for example.
According to an aspect of the present disclosure, an on-chip interconnect architecture, such as an asymmetrical read/write XBAR architecture, includes multiple paths and an arrangement of tri-state devices to allow a member of a set of M source clients to be selectively connected to each of a set of N destination other clients on a bus.
One aspect of present disclosure reduces a memory interface area by decreasing the number of interface components used in an asymmetrical read/write interconnect architecture based on the lesser number of read/write interface clients coupled to the interface. A low-power interconnect, according to an aspect of the present disclosure includes a number of paths coupling a number of selectable destination clients and a number of source clients in which the number of paths corresponds to a minimum of the number of selectable destination clients and the number of source clients. According to an aspect of the disclosure, each path includes a number of tri-state devices coupled between the source clients and the paths. The tri-state devices are configured to map a path between a source client and a destination client and/or to selectively allow data from the source client onto the paths. The tri-state devices may also be configured to gate off non-selected portions of the paths. According to an aspect of the present disclosure control circuitry is coupled to the tri-state devices. The control circuitry is configured to control the tri-state devices to establish connections between the selectable destination clients and the source client via the paths.
According to aspects of the present disclosure, a tri-state capable bussing scheme is implemented as distributed multiplexor circuitry that reduces the size of an asymmetrical read/write interface bus, such as an asymmetrical read/write XBAR interconnect. The size and number of paths implemented in the tri-state capable bussing scheme is determined by the interface with the lowest number of clients.
According to aspects of the present disclosure, an XBAR compiler generates XBAR designs. XBAR compilers allow for rapid product development over a wide range of XBAR topologies. A user of the XBAR compiler may input design specifications, such as electrical specifications, frequency, orientation, layers, client information, and bus width, for example. An XBAR compiler can then generate a design including design views, such as, for example, verified electrical models for physical design integration, electrical models for top level integration, and place and route (P&R) flow for a chip. According to an aspect of the disclosure, the views generated by the XBAR compiler are compatible with existing application specific integrated circuit (ASIC) place and route flows.
The XBAR compiler can generate chip designs with data paths structured to reduce area and energy consumption. Tri-state buffers are inserted into XBAR data paths to reduce the number of interface data paths. According to aspects of the present disclosure, the XBAR compiler may generate designs that reduce the number of data paths between a number of sources and a number of clients based on the lesser of the number of sources and the number of clients. According to one aspect of the present disclosure, tri-state buffers are inserted into the XBAR data paths, for example, as shown in
Referring to
According to an aspect of the present disclosure, the state of each of the tri-state buffers is controlled to direct data traffic so that one or more of the segments of data path 210 is used to interface the read/write client 204 to one or more second clients or data sources such as, for example, banks 202A-202D in a source memory array 202. In one example, a read cycle for reading data from a source memory array 202 to the read/write client 204 may be performed by turning on the source branch tri-state buffer 220A coupled to the data path segment corresponding to selected source 202 from which data is read. Each of the other ones of the source branch tri-state buffers 220B-220D coupled to each of the other data path segments is set to a high impedance off state to decouple the unselected source memory arrays 222-262 from the data path 210.
In one implementation of the read cycle, for illustrative purposes the selected one of the source memory arrays is the source memory array 202 shown in
In another implementation of the read cycle in which the selected one of the source memory arrays is the source memory array 202 shown in
Although aspects of the present disclosure are described above in which the source memory array 202 is the selected one of the four illustrated ones of the source memory arrays 202-262, it should be understood that any number of source memory arrays 202-262 may be included in various implementations. Any of the numerous ones of the source memory arrays 202-262 or other clients may be selected for coupling to the read/write client 204.
In another example, a write cycle to write data from the read/write client 204 to a source memory array 202-262 may be performed by turning off the source branch tri-state buffers 220A-220D coupled to each of the data path segments. Turning off the source branch tri-state buffers 220A-220D decouples the read paths of each of the source memory arrays 202-262 from the data path 210. The pairs of oppositely directed tri-state buffers 212, 214 are controlled to turn on some or all of the tri-state buffers 212/214 that are directed away from read/write client 204. For example, in
In another implementation of the write cycle, the data path segments that are not between the read/write client 204 and a source being written to may be decoupled by turning off pairs of oppositely directed tri-state buffers 214 that are not between the read/write client 204 and the source memory array 202-262 to which data is being written. For example, in a write cycle from read/write client 204 to the top source memory array 202 of
In yet another implementation of the write cycle, the tri state buffers 212/214 that are directed away from the read/write client 204 and that are not between the read/write client 204 and the source memory array 202-262 to which data is being written may be placed in a bus-keeper state so as to drive their previous data state on segments not used by the write cycle.
Although specific circuitry has been set forth, it will be appreciated by those skilled in the art that not all of the disclosed circuitry is required to practice the disclosed configurations. Moreover, certain well known circuits have not been described, to maintain focus on the disclosure. Similarly, although upward and downward directions are described, the disclosure is not so limited. The overall circuit can be rotated 180 degrees so that up becomes down, rotated 90 degrees so that up becomes rightward, or can be rotated by any other amount.
In one configuration, an apparatus for reducing area on a memory interface includes means for receiving a first client select signal identifying a first client selectively coupled to the memory interface, means for coupling the first client to a first path in response to the first client select signal and means for propagating the first client select signal to a first set of tri-state buffers between the first client and a second client on the first path. The apparatus also includes means for turning on the first set of tri-state buffers in response to the first client select signal so that the first set of tri-state buffers couples the first client and the second client.
According to an aspect of the present disclosure, the apparatus may also include means for turning off a second set of tri-state buffers on the first path in response to the first client select signal so that the second set of tri-state buffers decouples segments of the first path that are not between the first client and the second client. According to another aspect of the present disclosure, the apparatus may also include means for tri-stating a second set of tri-state buffers on the first path in response to the first client select signal so that the second set of tri-state buffers drive segments of the first path that are not between the first client and the second client in their previous state.
The means for receiving a first client select signal identifying a first client selectively coupled to the memory interface may be the client selector multiplexors 216A-216D, for example. The means for coupling the first client to a first path in response to the first client select signal may be the write buffer 206 and/or the read buffer 208, for example. The means for propagating the first client select signal to a first set of tri-state buffers between the first client and a second client on the first path and the means for turning on the first set of tri-state buffers in response to the first client select signal may be the control circuitry 222 coupled to the source branch tri-state buffers 220A-220D and the pairs of oppositely directed ones of the tri-state buffers 212, 214, for example. The means for turning off a second set of tri-state buffers on the first path in response to the first client select signal and/or the means for tri-stating a second set of tri-state buffers on the first path in response to the first client select signal may be the control circuitry 222 coupled to the source branch tri-state buffers 220A-220D and the pairs of oppositely directed tri-state buffers 212, 214, for example. Although specific means have been set forth, it will be appreciated by those skilled in the art that not all of the disclosed means are required to practice the disclosed configurations. Moreover, certain well known means have not been described, to maintain focus on the disclosure.
A method 300 for operating a memory interface according to an aspect of the present disclosure is described with reference to
In
Data recorded on the storage medium 504 may specify logic circuit configurations, pattern data for photolithography masks, or mask pattern data for serial write tools such as electron beam lithography. The data may further include logic verification data such as timing diagrams or net circuits associated with logic simulations. Providing data on the storage medium 504 facilitates the design of the circuit design 510 or the semiconductor component design 512 by decreasing the number of processes for designing semiconductor wafers.
For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. A machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in a memory and executed by a processor unit. Memory may be implemented within the processor unit or external to the processor unit. As used herein the term “memory” refers to types of long term, short term, volatile, nonvolatile, or other memory and is not to be limited to a particular type of memory or number of memories, or type of media upon which memory is stored.
If implemented in firmware and/or software, the functions may be stored as one or more instructions or code on a computer-readable medium. Examples include computer-readable media encoded with a data structure and computer-readable media encoded with a computer program. Computer-readable media includes physical computer storage media. A storage medium may be an available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer; disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
In addition to storage on computer readable medium, instructions and/or data may be provided as signals on transmission media included in a communication apparatus. For example, a communication apparatus may include a transceiver having signals indicative of instructions and data. The instructions and data are configured to cause one or more processors to implement the functions outlined in the claims.
Although the present disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular configurations of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present disclosure, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding configurations described herein may be utilized according to the present disclosure. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.