So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
The present invention generally relates to microelectronic devices. More particularly, the invention relates to programmable structures suitable for various integrated circuit applications, for example, in memory devices.
The present invention may be described in terms of various functional components. It should be appreciated that such functional components may be realized by any number of hardware or structural components configured to perform the specified functions. For example, the present invention may employ various integrated components comprised of various electrically devices, such as resistors, transistors, capacitors, diodes and such components, the behaviour of which may be suitably configured for various intended purposes. In addition, the present invention may be practised in any integrated circuit application where an effective reversible polarity is desired. Such general applications may be appreciated by those skilled in the art in light of the present disclosure are not described in detail. Further, it should be noted that various components may be suitably coupled or connected to other components within exemplary circuits, and that such connections and couplings can be realized by direct connection between components and by connections through other components and devices located in between.
The further second data bus 10 is connected with a third cross bar switch 16 and a fourth cross bar switch 17. The third cross bar switch 16 is additionally connected with the further first data bus 8. The fourth cross bar switch 17 is additionally connected with the first data bus 5. The third and fourth cross bar switch 16, 17 comprise an input 13 that is connected with a control line 14 of the control unit 15. Depending on the control signal that is sent by the control unit 15 to the third and fourth cross bar switch 16, 17 the third or fourth cross bar switch 16, 17 may connect the further second data bus 10 with the further first data bus 8 and/or with the first data bus 5.
The second data bus 9 is connected with a third interface 18. The further second data bus 10 is connected with a further third interface 19. The third interface 18 and the further third interface 19 are connected with a third data bus 20. The third data bus 20 is connected with a first interface 2 of a first processing unit 1. Additionally, the third data bus 20 is connected with a fourth interface 21 of the control unit 15. Additionally, a second processing unit 22 is connected over a further first interface 23 with the third data bus 20.
The control unit 15 is connected via the control lines 14 with the first, the second, the third and the fourth cross bar switch 11, 12, 17, 16. The control unit 15 controls the connections between the first processing unit 1 and the first and second memory unit 3, 6.
Furthermore, the control unit 15 controls via the third data bus 20 the third and further third interface 18, 19 and determines which of the first or second processing unit 1, 22 is allowed to access the third or further third interface 18, 19. Thus, the control unit 15 may connect the first processing unit 1 via the third interface 18, the second data bus 9, the first cross bar switch 11, and the further first data bus 8 with the second memory unit 6. Furthermore, the control unit 15 may also allow an access of the first processing unit 1 via the third interface 18, the second data bus 9, the second cross bar switch 12, and the first data bus 5 to the first memory unit 3.
In a further embodiment the control unit 15 may be connected with a control bus with the third, the further third interface 18, 19, the first, the second, the third and the fourth cross bar switch 11, 12, 16, 17 to control the accesses of the first and second processing units 1,22 to the first and/or the second memory unit 3,6.
Furthermore, the control unit 15 may control an access of the first processing unit 1 to the first memory unit 3 via the further third interface 19, the further second data bus 10, the fourth cross bar switch 17 and the first data bus 5.
Depending on the selected embodiment, the control unit 15 may control an access of the second processing unit 22 via the third and/or the further third interface 18, 19 and the cross bar switches 11, 12, 16, 17 to the first and/or the second memory unit 3, 6.
Therefore, the control unit 15 is able to assign the first and/or the second memory unit 3, 6 to the first and/or the second processing unit 1, 22.
Depending on the used embodiment, the data width of the first or second processing unit 1, 22 may be changed by accessing instead of the first memory unit 3 the first and the second memory unit 3, 6. Thus it is possible to adjust the data width of the first interface 2 of the first processing unit 1 to an actual situation. Furthermore it is possible to adjust a memory capacity for a processing unit to an actual situation for example to connect the first processing unit 1 via the third interface 18, the second data bus 9, the first and second cross bar switch 11, 12 and the first and further first data bus 5, 8 with the first and the second memory unit 3, 6. If the first processing unit 1 needs less memory capacity, the control unit 15 connects the first processing unit 1 only with the first or the second memory unit 3,6.
The first and the further first interface 2, 23 may be controllable to adjust the data width of the first and the further first interface 2, 23 for exchanging data with one or more memory units.
In a further embodiment, the first processing unit 1 and the second processing unit 22 may send an information signal to the control unit 15 that indicates how much memory capacity is needed and/or that indicates the data width of the first and further first interface 2, 23. Additionally, the information may indicate a priority of the first or second processing unit 1, 22. Thus the control unit 15 may also consider the priority of the first and second processing unit 1, 22 to assign the available data width and/or the available memory units 3, 6 to the first and/or the second processing unit 1,22.
In a further embodiment, the assignment of the memory units to the processing units and the assignment of the available data width of the data buses is determined at a power up of the control unit. Furthermore, the assignment of the data width and the memory units to the different processing units may be adjusted during the operation of the data system.
The control unit 15 may assign a greater data width of the data buses and a greater memory capacity for example more memory units to a processing unit with a higher priority.
The processing unit may send information to the control unit after finishing a task with a memory unit to inform the control unit that this memory unit is not accessed by the processing unit at the time. Then the control unit can assign the free memory unit to another processing unit.
The first and the further first data buses 5, 8 may be disposed in a crossed arrangement with the second data bus 9 and the further second data bus 10. At the crossing points the cross bar switches are arranged to connect a first or a further first data bus 5, 8 with a second or a further second data bus 9, 10 by controlling the cross bar switches accordingly by the control unit 15.
The cross bar switches may comprise transmission gates 27 to connect depending on a control signal two data buses. The cross bar switches 11,12,16,17 may be connected by micro bumps 28 with the data buses 5,8,9,10.
The processing units 1,22 may be realized as graphic processing units and the memory units 3,6 may be realized as dynamic random access memory units.
Furthermore, a control unit 15 controls a switching position of the cross bar switches 25 and the third interfaces 18. As depicted in
The third processing unit 24 is connected with four memory units 26, whereby two memory units 26 are connected with the same third interface 18 (i.e., memory units 5 and N are connected via memory I/F 6 and memory units 3 and 8 are connected via memory I/F 7). This embodiment has the advantage that the whole data width of the interface of the third processing unit 24 can be used and the memory capacity is increased by connecting two memory units in parallel for each second data bus 9 that is connected with the third processing unit 24. This has the advantage that if one memory unit is filled up with the data of the processing unit, then the second memory unit that is connected with a same second data bus 9 may be used for writing or reading data by the third processing unit 24. For addressing the memory units, a first significant bit of a data protocol that is used for exchanging data between a processing unit and a memory unit may be used to assign the data to one of two memory units that are connected in parallel to one second data bus 9.
The first, the second and the third processing unit 1, 22, 24 are connected with the control unit 15 over the third data bus 20. The third interfaces 18 and the cross bar switches 25 are connected with the control unit 15 by control lines that are not depicted in the Figure. Depending on the used embodiment also a control bus may be used to connect the control unit 15 with the third interfaces 18 and the cross bar switches 25.
Each memory unit may be equipped with a bus interface of the same width, for example 32 bit. The memory density of each memory unit is preferably identical, but may also be different. The memory interfaces may be identical and have the same width as a memory unit. The memory system shall contain significantly more memory units than memory interfaces. The data width of the bus interface of the processing units may be equal to the data width of the bus interface of a memory unit, or be multiples of it. The novel concept uses cross bar switches in the memory system to connect individual memory units to memory interfaces depending on both the processing units requirements on bandwidth and/or memory density for operation processes. The control unit assigns the memory units to the memory interfaces. The assignment may be set at power up and reconfigured on the fly.
An advantage of the new concept is that the assignment of the memory units to the processing unit is flexible. A reconfiguration of the assignment shall consider a current performance and a memory density need of the processing units as well as a priority of the processing units. As an example, once a priority of a processing unit increases, the processing unit may increase its memory bandwidth by requesting a wider bus from the control unit. The bandwidth of a data connection may be leveled upon a request of a processing unit 1,22,24 by the control unit 15. The mean utilization of the installed bus interface may be lower compared to a shared memory system; thus allowing operation of the memory interface at a lower speed and safe power.
A processing unit having finished an access to a memory unit may notify this to the control unit, which in return reassigns the memory unit of the finished processing unit to another processing unit. The reconfiguration results in a high utilization of the installed memory density. Memory units may be realized on a single monolithic silicon memory chip. The memory chips may be dynamic random access memories or static random access memories.
The cross bar switches and the memory chips can be implemented using transmission gates that connect the memory buses and processing unit buses. The signal routing can be done on metal layers above the memory array. Micro bumps would allow several thousand interconnects to be placed on a single memory die.
The embodiment of
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.