1461114754-3d0a93a4-9394-4b02-ac5c-bb4ec706b4d3

1. A driver circuit comprising:
a constant current supply generating a constant current;
a changeover circuit connecting a gate of an insulated gate device in turn-on to a power supply potential side via the constant current supply and connecting the gate of the insulated gate device in turn-off to a ground potential side;
a slope setting circuit setting a gate voltage waveform of the insulated gate device; and
an operational amplifier driving the gate of the insulated gate device based on a difference between a detected value of a gate voltage of the insulated gate device and a set value of the gate voltage set in the slope setting circuit.
2. The driver circuit according to claim 1, wherein the changeover circuit connects the gate of the insulated gate device to a power supply potential side based on a trigger input; and wherein the slope setting circuit generates the gate voltage waveform of the insulated gate device based on the trigger input.
3. The driver circuit according to claim 2, wherein the constant current supply comprises:
a first transistor having a resistor connected to a drain side thereof;
a second transistor constituting a current mirror together with the first transistor, the second transistor generating the constant current determined by a resistance value of the resistor and a reference voltage; and
a third transistor constituting a current mirror together with the second transistor, the third transistor comprising a drain connected to the gate of the insulated gate device.
4. The driver circuit according to claim 3, wherein the driver circuit further comprises:
a fourth transistor connected in series to the second transistor; and
a fifth transistor switching the fourth transistor for making a current flow through the resistor.
5. The driver circuit according to claim 1, wherein the constant current supply comprises:
a first transistor having a resistor connected to a drain side thereof;
a second transistor constituting a current mirror together with the first transistor, the second transistor generating the constant current determined by a resistance value of the resistor and a reference voltage; and
a third transistor constituting a current mirror together with the second transistor, the third transistor comprising a drain connected to the gate of the insulated gate device.
6. The driver circuit according to claim 5, wherein the driver circuit further comprises:
a fourth transistor connected in series to the second transistor; and
a fifth transistor switching the fourth transistor for making a current flow through the resistor.
7. The driver circuit according to claim 1, wherein the driver circuit sets an upper limit value of an output voltage from the slope setting circuit based on a value proportional to a power supply voltage of the driver circuit.
8. The driver circuit according to claim 1, wherein a voltage in the gate voltage waveform set by the slope setting circuit increases exponentially.
9. The driver circuit according to claim 8, wherein the slope setting circuit comprises:
a constant current supply generating a constant current;
a current mirror circuit generating a current proportional to the current generated by the constant current supply;
a series circuit comprising a resistor and a capacitor, the series circuit being connected to an output terminal of the slope setting circuit; and
a switching device triggered by a trigger input for making the current generated by the current mirror circuit flow to the series circuit.
10. The driver circuit according to claim 1, wherein a voltage in the gate voltage waveform set by the slope setting circuit increases linearly.
11. The driver circuit according to claim 10, wherein the slope setting circuit comprises:
a constant current supply generating a constant current;
a current mirror circuit generating a current proportional to the current generated by the constant current supply;
a capacitor connected to an output terminal of the slope setting circuit; and
a switching device triggered by the trigger input for making the current generated by the current mirror circuit flow to the capacitor.
12. The driver circuit according to claim 1, wherein the slope setting circuit comprises:
a first voltage waveform setting section making a set value of the gate voltage waveform of the insulate gate device increase exponentially;
a second voltage waveform setting section making the set value of the gate voltage waveform of the insulate gate device increase linearly; and
a voltage waveform selecting section selectively outputting any of the gate voltage waveform set by the first voltage waveform setting section and the gate voltage waveform set by the second voltage waveform setting section.
13. A driver circuit comprising:
a slope setting circuit that sets a gate voltage waveform of an insulated gate device; and
an operational amplifier that drives a gate of the insulated gate device based on a difference between a detected value of a gate voltage of the insulated gate device and a set value of the gate voltage set in the slope setting circuit;
wherein a voltage in the gate voltage waveform set by the slope setting circuit increases exponentially; and
wherein the slope setting circuit comprises:
a constant current supply generating a constant current;
a current mirror circuit generating a current proportional to the current generated by the constant current supply;
a series circuit comprising a resistor and a capacitor, the series circuit being connected to an output terminal of the slope setting circuit; and
a switching device triggered by a trigger input for making the current generated by the current mirror circuit flow to the series circuit.
14. A driver circuit comprising:
a slope setting circuit that sets a gate voltage waveform of an insulated gate device; and
an operational amplifier that drives a gate of the insulated gate device based on a difference between a detected value of a gate voltage of the insulated gate device and a set value of the gate voltage set in the slope setting circuit;
wherein a voltage in the gate voltage waveform set by the slope setting circuit increases linearly; and
wherein the slope setting circuit comprises:
a constant current supply generating a constant current;
a current mirror circuit generating a current proportional to the current generated by the constant current supply;
a capacitor connected to an output terminal of the slope setting circuit; and
a switching device triggered by the trigger input for making the current generated by the current mirror circuit flow to the capacitor.
15. A driver circuit comprising:
a slope setting circuit that sets a gate voltage waveform of an insulated gate device; and
an operational amplifier that drives a gate of the insulated gate device based on a difference between a detected value of a gate voltage of the insulated gate device and a set value of the gate voltage set in the slope setting circuit;
wherein the slope setting circuit comprises:
a first voltage waveform setting section making a set value of the gate voltage waveform of the insulate gate device increase exponentially;
a second voltage waveform setting section making the set value of the gate voltage waveform of the insulate gate device increase linearly; and
a voltage waveform selecting section selectively outputting any of the gate voltage waveform set by the first voltage waveform setting section and the gate voltage waveform set by the second voltage waveform setting section.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method for storing a subtree in memory, the subtree including one or more leaf arrays and a plurality of tree arrays, a path of tree arrays includes a sequence of tree arrays along any route from the root of the subtree to any leaf of the subtree, the method comprising:
storing said one or more leaf arrays in a first set of memory channels of N+1 sets of memory channels, said N+1 sets of memory channels including N sets of memory channels plus the first set of memory channels; and
storing paths of the plurality of tree arrays in said N sets of memory channels, wherein for each particular path of tree arrays: a constraint that each tree array of the plurality of tree arrays associated with said particular path is stored in a different one of said N sets of memory channels; and wherein said tree arrays at a same level of tree arrays in the subtree are distributed among said N sets of memory channels that are available for a particular tree array given said constraint that each tree array of the plurality of tree arrays associated with a specific path is stored in a different one of said N sets of memory channels.
2. The method of claim 1, comprising identifying the first set of memory channels of said N+1 sets of memory channels based on an occupancy level of said N+1 sets of memory channels.
3. The method of claim 2, wherein the first set of memory channels includes the most available space of said N+1 sets of memory channels when said identifying the first set of memory channels is performed.
4. The method of claim 2, wherein the first set of memory channels includes the least available space of said N+1 sets of memory channels when said identifying the first set of memory channels is performed.
5. The method of claim 1, comprising identifying, based on an occupancy level of said N sets of memory channels, in which of said N sets of memory channels to store said paths.
6. The method of claim 5, comprising selecting a particular memory channel set of said N sets of memory channels to store a particular one of said paths, the particular memory channel set including the most available space of said N sets of memory channels at time of said selecting the particular memory channel set.
7. The method of claim 5, comprising selecting a particular memory channel set of said N sets of memory channels to store a particular one of said paths, the particular memory channel set including the least available space of said N sets of memory channels at time of said selecting the particular memory channel set.
8. The method of claim 1, wherein each of said N+1 sets of memory channels comprises a single memory channel.
9. The method of claim 1, wherein said storing one or more leaf arrays includes identifying a block of memory in an unused block data structure.
10. The method of claim 1, wherein said storing one or more leaf arrays includes:
identifying that there is no block of memory indicated as available in an unused block data structure; and
allocating a new memory page in the first memory channel.
11. The method of claim 1, wherein said storing said paths of the plurality of tree arrays includes identifying a block of memory in an unused block data structure.
12. The method of claim 1, wherein said storing said paths of the plurality of tree arrays includes:
identifying that there is no block of memory indicated as available in an unused block data structure; and
allocating a new memory page in one of said N sets of memory channels.
13. The method of claim 1, further comprising: initiating a memory compaction operation in response to an occupancy or a fragmentation level of at least one of said N sets of memory channels.
14. The method of claim 13, wherein said memory compaction operation includes storing a group of all said tree arrays stored in a single one of said N sets of memory channels which requires a largest storage space of that required by groups of all said leaf arrays stored in any one of the N sets of memory channels in a particular one of said N sets of memory channels having a greatest amount of storage space available for storing tree arrays.
15. The method of claim 13, wherein said memory compaction operation includes:
identifying an available space ordering based on an occupancy level of each of said N sets of memory channels;
identifying a storage requirement ordering based on the storage requirement of each of the plurality of tree arrays; and
storing the plurality of tree arrays in said N sets of memory channels based on the available space and storage requirement orderings.
16. The method of claim 1, further comprising: initiating a memory compaction operation in response to an occupancy or a fragmentation level of the first set of memory channels.
17. The method of claim 1, further comprising: initiating a memory compaction operation in response to an occupancy or a fragmentation level of at least one of said N+1 sets of memory channels.
18. The method of claim 17, wherein said memory compaction operation includes:
identifying whether (1) a tree array storage requirement for a group of all said tree arrays stored in a single one of said N sets of memory channels which requires a largest storage space of that required by groups of all said leaf arrays stored in any one of the N sets of memory channels or (2) a leaf array storage requirement for said one or more leaf arrays requires more storage space; and
storing the groups of said one or more leaf arrays identified as requiring more storage space in a particular one of said N+1 sets of memory channels having a greatest amount of storage space available.
19. The method of claim 17, wherein said memory compaction operation includes:
identifying an available space ordering based on an occupancy level of each of said N+1 sets of memory channels;
identifying a storage requirement ordering based on the storage requirement of each of the plurality of tree arrays and said one or more leaf arrays; and
storing the plurality of tree arrays and said one or more leaf arrays in said N+1 sets of memory channels based on the available space and storage requirement orderings.
20. An apparatus for storing a subtree in memory, the subtree including one or more leaf arrays and a plurality of tree arrays, a path of tree arrays includes a sequence of tree arrays along any route from the root of the subtree to any leaf of the subtree, the apparatus comprising:
means for storing said one or more leaf arrays in a first set of memory channels of N+1 sets of memory channels, said N+1 sets of memory channels including N sets of memory channels plus the first set of memory channels; and
means for storing paths of the plurality of tree arrays in said N sets of memory channels, wherein for each particular path of tree arrays: a constrain that each tree array of the plurality of tree arrays associated with said particular path is stored in a different one of said N sets of memory channels; and wherein said tree arrays at a same level of tree arrays in the subtree are distributed among said N sets of memory channels that are available for a particular tree array given said constraint that each tree array of the plurality of tree arrays associated with a specific path is stored in a different one of said N sets of memory channels.
21. The apparatus of claim 20, comprising means for identifying the first set of memory channels of said N+1 sets of memory channels based on an occupancy level of said N+1 sets of memory channels.
22. The apparatus of claim 20, comprising means for identifying, based on an occupancy level of said N sets of memory channels, in which of said N sets of memory channels to store said paths of the plurality of tree arrays.
23. The apparatus of claim 20, comprising means for performing a memory compaction operation on the subtree.
24. A method for storing a subtree in memory, the subtree including one or more leaf arrays and a plurality of tree arrays, a path of tree arrays includes a sequence of tree arrays along any route from the root of the subtree to any leaf of the subtree, the method comprising:
storing said one or more leaf arrays in a first set of memory channels of N+1 sets of memory channels, said N+1 sets of memory channels including N sets of memory channels plus the first set of memory channels; and
storing paths of the plurality of tree arrays in said N sets of memory channels, wherein each tree array of the plurality of tree arrays associated with one of said paths is stored in a different one of said N sets of memory channels;
wherein said storing one or more leaf arrays includes: identifying that there is no block of memory indicated as available in an unused block data structure; and allocating a new memory page in the first memory channel.
25. A method for storing a subtree in memory, the subtree including one or more leaf arrays and a plurality of tree arrays, a path of tree arrays includes a sequence of tree arrays along any route from the root of the subtree to any leaf of the subtree, the method comprising:
storing said one or more leaf arrays in a first set of memory channels of N+1 sets of memory channels, said N+1 sets of memory channels including N sets of memory channels plus the first set of memory channels; and
storing paths of the plurality of tree arrays in said N sets of memory channels, wherein each tree array of the plurality of tree arrays associated with one of said paths is stored in a different one of said N sets of memory channels;
wherein said storing said paths of the plurality of tree arrays includes: identifying that there is no block of memory indicated as available in an unused block data structure; and allocating a new memory page in one of said N sets of memory channels.
26. A method for storing a subtree in memory, the subtree including one or more leaf arrays and a plurality of tree arrays, a path of tree arrays includes a sequence of tree arrays along any route from the root of the subtree to any leaf of the subtree, the method comprising:
storing said one or more leaf arrays in a first set of memory channels of N+1 sets of memory channels, said N+1 sets of memory channels including N sets of memory channels plus the first set of memory channels;
storing paths of the plurality of tree arrays in said N sets of memory channels, wherein each tree array of the plurality of tree arrays associated with one of said paths is stored in a different one of said N sets of memory channels; and
initiating a memory compaction operation in response to an occupancy or a fragmentation level of at least one of said N sets of memory channels;
wherein said memory compaction operation includes storing a group of all said tree arrays stored in a single one of said N sets of memory channels which requires a largest storage space of that required by groups of all said leaf arrays stored in any one of the N sets of memory channels in a particular one of said N sets of memory channels having a greatest amount of storage space available for storing tree arrays.
27. A method for storing a subtree in memory, the subtree including one or more leaf arrays and a plurality of tree arrays, a path of tree arrays includes a sequence of tree arrays along any route from the root of the subtree to any leaf of the subtree, the method comprising:
storing said one or more leaf arrays in a first set of memory channels of N+1 sets of memory channels, said N+1 sets of memory channels including N sets of memory channels plus the first set of memory channels;
storing paths of the plurality of tree arrays in said N sets of memory channels, wherein each tree array of the plurality of tree arrays associated with one of said paths is stored in a different one of said N sets of memory channels; and
initiating a memory compaction operation in response to an occupancy or a fragmentation level of at least one of said N sets of memory channels;
wherein said memory compaction operation includes: identifying an available space ordering based on an occupancy level of each of said N sets of memory channels; identifying a storage requirement ordering based on the storage requirement of each of the plurality of tree arrays; and storing the plurality of tree arrays in said N sets of memory channels based on the available space and storage requirement orderings.
28. A method for storing a subtree in memory, the subtree including one or more leaf arrays and a plurality of tree arrays, a path of tree arrays includes a sequence of tree arrays along any route from the root of the subtree to any leaf of the subtree, the method comprising:
storing said one or more leaf arrays in a first set of memory channels of N+1 sets of memory channels, said N+1 sets of memory channels including N sets of memory channels plus the first set of memory channels;
storing paths of the plurality of tree arrays in said N sets of memory channels, wherein each tree array of the plurality of tree arrays associated with one of said paths is stored in a different one of said N sets of memory channels; and
initiating a memory compaction operation in response to an occupancy or a fragmentation level of at least one of said N+1 sets of memory channels;
wherein said memory compaction operation includes: identifying whether (1) a tree array storage requirement for a group of all said tree arrays stored in a single one of said N sets of memory channels which requires a largest storage space of that required by groups of all said leaf arrays stored in any one of the N sets of memory channels or (2) a leaf array storage requirement for said one or more leaf arrays requires more storage space; and storing the groups of said one or more leaf arrays identified as requiring more storage space in a particular one of said N+1 sets of memory channels having a greatest amount of storage space available.
29. A method for storing a subtree in memory, the subtree including one or more leaf arrays and a plurality of tree arrays, a path of tree arrays includes a sequence of tree arrays along any route from the root of the subtree to any leaf of the subtree, the method comprising:
storing said one or more leaf arrays in a first set of memory channels of N+1 sets of memory channels, said N+1 sets of memory channels including N sets of memory channels plus the first set of memory channels;
storing paths of the plurality of tree arrays in said N sets of memory channels, wherein each tree array of the plurality of tree arrays associated with one of said paths is stored in a different one of said N sets of memory channels; and
initiating a memory compaction operation in response to an occupancy or a fragmentation level of at least one of said N+1 sets of memory channels;
wherein said memory compaction operation includes: identifying an available space ordering based on an occupancy level of each of said N+1 sets of memory channels; identifying a storage requirement ordering based on the storage requirement of each of the plurality of tree arrays and said one or more leaf arrays; and storing the plurality of tree arrays and said one or more leaf arrays in said N+1 sets of memory channels based on the available space and storage requirement orderings.