Start-up algorithm for an implantable blood pump
09731058 · 2017-08-15
Assignee
Inventors
Cpc classification
F04D15/00
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F05B2240/30
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F05B2270/10
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
A61M60/822
HUMAN NECESSITIES
F04D29/426
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04C2270/0421
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
A61M60/538
HUMAN NECESSITIES
F04D1/00
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04D13/024
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
A61M60/422
HUMAN NECESSITIES
A61M60/419
HUMAN NECESSITIES
F04D7/02
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
A61M60/178
HUMAN NECESSITIES
F05B2240/14
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
A61M60/148
HUMAN NECESSITIES
International classification
A61M1/00
HUMAN NECESSITIES
F04D7/02
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04D15/00
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04D29/42
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04D1/00
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04D13/02
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
Abstract
A system and a method for starting a rotor of an implantable blood pump are described. For example, a blood pump system includes a rotary motor having a stator and a rotor. The rotor has permanent magnetic poles for magnetic levitation of the rotor, and the stator has a plurality of pole pieces arranged circumferentially at intervals. The blood pump system includes a controller configured to control a start phase of the rotor, wherein the start phase is prior to the rotor being positioned in a predefined geometric volume for pumping blood and wherein the start phase includes performing a rotation of the rotor by an angle larger than an angle corresponding to a quarter of an angular distance between two neighboring magnetic poles of the rotor.
Claims
1. A method for starting a rotor of an implantable blood pump, the method comprising: performing an initial rotation of the rotor by an angle larger than an angle corresponding to a quarter of an angular distance between two neighboring magnetic poles of the rotor; and after the performing, rolling the rotor, while the rotor remains in contact with a dividing wall defining a blood flow conduit in which the rotor is disposed, from a first start position to a first target position prior to magnetic levitation of the rotor to position the rotor within the blood flow conduit for pumping blood, wherein a magnet of the rotor experiences a reduced magnetic attraction at the first target position compared to the first start position.
2. The method of claim 1, wherein the angle of the rotation is about half of the angular distance between two neighboring magnetic poles of the rotor or a multiple thereof.
3. The method of claim 1, wherein the angle of the initial rotation is between about 45 and about 270 degrees.
4. The method of claim 1, wherein the angle of the initial rotation is about 90 degrees.
5. The method of claim 1, further comprising: determining a current position of the rotor by using one or more Hall sensors; performing a take-off operation attempting to move the rotor into the predefined geometric volume; and determining if the rotor is positioned within the predefined geometric volume after performing the take-off operation.
6. The method of claim 5, further comprising: determining if the rotor is positioned within the predefined geometric volume, and if the rotor is not positioned within the predefined geometric volume, performing the additional operations of: performing a second rotation of the rotor corresponding substantially to an angle of twice the interval between two neighboring pole pieces of a stator of the implantable blood pump; rolling the rotor from a second start position to a second target position, wherein the magnet of the rotor experiences a reduced magnetic attraction at the second target position compared to the second start position; and performing a second take-off operation attempting to move the rotor into the predefined geometric volume.
7. A method comprising: performing a rotation of a rotor of an implantable blood pump, the rotation of the rotor moving the rotor from a first position to a second position; after performing the rotation of the rotor, waiting for a period of time with the rotor in the second position; and after waiting for the period of time with the rotor in the second position, rolling the rotor from the second position to a take-off position for moving the rotor into a predefined geometric volume.
8. The method of claim 7, further comprising determining that a rotor of an implantable is not positioned within a predefined geometric volume of the blood pump; and wherein performing the rotation of the rotor occurs in response to determining that the rotor is not positioned within the predefined geometric volume.
9. The method of claim 7, further comprising determining a target position of the rotor with respect to a stator of the implantable blood pump; wherein rolling the rotor from the second position to the take-off position comprises rolling the rotor to the target position.
10. The method of claim 8, further comprising, after rolling the rotor to the take-off position, performing a take-off operation attempting to move the rotor into the predefined geometric volume.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12) Reference numbers and designations in the various drawings indicate exemplary aspects, implementations or embodiments of particular features of the present disclosure.
DETAILED DESCRIPTION
(13) This description relates to a start-up algorithm for an implantable blood pump. Specifically, tools and computer-implemented methods for reducing the current demand of implantable blood pumps are described herein.
(14) The subject matter described in this disclosure can be implemented in particular aspects or embodiments so as to realize one or more of the following advantages.
(15) First, a current consumption of an implantable blood pump may be reduced. A peak current demanded by a start-up of an implantable blood pump may be reduced. This may prevent a reset of a power supply of an implantable blood pump due to an overload. For example, a peak current of less than 5 ampere may be achieved for the start-up.
(16) Second, a current needed to perform a rolling of a magnet of a rotor of an implantable blood pump may be reduced. For example, a current of less than about 2 ampere may be achieved for the rolling of the magnet.
(17) Third, improved positions for a successful start-up of the rotor may be provided for the magnet of the rotor. For example, no later than a second try of the start-up may be successful. Since each start-up attempt uses power, conventional techniques requiring many start-up attempts tend to be energy inefficient.
(18) Fourth, a time duration needed for a successful start-up of a rotor of an implantable blood pump may be reduced. For example, the time duration may be reduced to less than 3 seconds.
(19) Other advantages of this disclosure will be apparent to those skilled in the art.
(20) With reference to
(21) Referring to
(22) The puck-shaped housing 110 further includes a peripheral wall 116 that extends between the first face 111 and a removable cap 118. As illustrated, the peripheral wall 116 is formed as a hollow circular cylinder having a width W between opposing portions of the peripheral wall 116. The housing 110 also has a thickness T between the first face 111 and the second face 113 that is less than the width W. The thickness T is from about 0.5 inches to about 1.5 inches, and the width W is from about 1 inch to about 4 inches. For example, the width W can be approximately 2 inches, and the thickness T can be approximately 1 inch.
(23) The peripheral wall 116 encloses an internal compartment 117 that surrounds the dividing wall 115 and the blood flow conduit 103, with the stator 120 and the electronics 130 disposed in the internal compartment 117 about the dividing wall 115. The removable cap 118 includes the second face 113, the chamfered edge 114, and defines the outlet opening 105. The cap 118 can be threadedly engaged with the peripheral wall 116 to seal the cap 118 in engagement with the peripheral wall 116. The cap 118 includes an inner surface 118a of the cap 118 that defines the volute 107 that is in fluid communication with the outlet opening 105.
(24) Within the internal compartment 117, the electronics 130 are positioned adjacent to the first face 111 and the stator 120 is positioned adjacent to the electronics 130 on an opposite side of the electronics 130 from the first face 111. The electronics 130 include circuit boards 131 and various components carried on the circuit boards 131 to control the operation of the pump 100 by controlling the electrical supply to the stator 120. The housing 110 is configured to receive the circuit boards 131 within the internal compartment 117 generally parallel to the first face 111 for efficient use of the space within the internal compartment 117. The circuit boards also extend radially-inward towards the dividing wall 115 and radially-outward towards the peripheral wall 116. For example, the internal compartment 117 is generally sized no larger than necessary to accommodate the circuit boards 131, and space for heat dissipation, material expansion, potting materials, and/or other elements used in installing the circuit boards 131. Thus, the external shape of the housing 110 proximate the first face 111 generally fits the shape of the circuits boards 131 closely to provide external dimensions that are not much greater than the dimensions of the circuit boards 131.
(25) With continued reference to
(26) Each of the pole piece 123a-123f is L-shaped and has a drive coil 125 for generating an electromagnetic field to rotate the rotor 140. For example, the pole piece 123a has a first leg 124a that contacts the back iron 121 and extends from the back iron 121 towards the second face 113. The pole piece 123a may also have a second leg 124b that extends from the first leg 124a through an opening of a circuit board 131 towards the dividing wall 115 proximate the location of the permanent magnet 141 of the rotor 140. In an aspect, each of the second legs 124b of the pole pieces 123a-123f is sticking through an opening of the circuit board 131. In an aspect, each of the first legs 124a of the pole pieces 123a-123f is sticking through an opening of the circuit board 131. In an aspect, the openings of the circuit board are enclosing the first legs 124a of the pole pieces 123a-123f
(27) In a general aspect, the implantable blood pump 100 may include a Hall sensor that may provide an output voltage, which is directly proportional to a strength of a magnetic field that is located in between at least one of the pole pieces 123a-123f and the permanent magnet 141, and the output voltage may provide feedback to the control electronics 130 of the pump 100 to determine if the rotor 140 and/or the permanent magnet 141 is not at its intended position for the operation of the pump 100. For example, a position of the rotor 140 and/or the permanent magnet 141 may be adjusted, e.g. the rotor 140 or the permanent magnet 141 may be pushed or pulled towards a center of the blood flow conduit 103 or towards a center of the stator 120.
(28) Each of the pole pieces 123a-123f also has a levitation coil 127 for generating an electromagnetic field to control the radial position of the rotor 140. Each of the drive coils 125 and the levitation coils 127 includes multiple windings of a conductor around the pole pieces 123a-123f. Particularly, each of the drive coils 125 is wound around two adjacent ones of the pole pieces 123, such as pole pieces 123d and 123e, and each levitation coil 127 is wound around a single pole piece. The drive coils 125 and the levitation coils 127 are wound around the first legs of the pole pieces 123, and magnetic flux generated by passing electrical current though the coils 125 and 127 during use is conducted through the first legs and the second legs of the pole pieces 123 and the back iron 121. The drive coils 125 and the levitation coils 127 of the stator 120 are arranged in opposing pairs and are controlled to drive the rotor and to radially levitate the rotor 140 by generating electromagnetic fields that interact with the permanent magnetic poles S and N of the permanent magnet 141. Because the stator 120 includes both the drive coils 125 and the levitation coils 127, only a single stator is needed to levitate the rotor 140 using only passive and active magnetic forces. The permanent magnet 141 in this configuration has only one magnetic moment and is formed from a monolithic permanent magnetic body 141. For example, the stator 120 can be controlled as discussed in U.S. Pat. No. 6,351,048, the entire contents of which are incorporated herein for all purposes by reference. The control electronics 130 and the stator 120 receive electrical power from a remote power supply via a cable 119 (
(29) The rotor 140 is arranged within the housing 110 such that its permanent magnet 141 is located upstream of impeller blades in a location closer to the inlet opening 101. The permanent magnet 141 is received within the blood flow conduit 103 proximate the second legs 124b of the pole pieces 123 to provide the passive axial centering force though interaction of the permanent magnet 141 and ferromagnetic material of the pole pieces 123. The permanent magnet 141 of the rotor 140 and the dividing wall 115 form a gap 108 between the permanent magnet 141 and the dividing wall 115 when the rotor 140 is centered within the dividing wall 115. The gap 108 may be from about 0.2 millimeters to about 2 millimeters. For example, the gap 108 is approximately 1 millimeter. The north permanent magnetic pole N and the south permanent magnetic pole S of the permanent magnet 141 provide a permanent magnetic attractive force between the rotor 140 and the stator 120 that acts as a passive axial centering force that tends to maintain the rotor 140 generally centered within the stator 120 and tends to resist the rotor 140 from moving towards the first face 111 or towards the second face 113. When the gap 108 is smaller, the magnetic attractive force between the permanent magnet 141 and the stator 120 is greater, and the gap 108 is sized to allow the permanent magnet 141 to provide the passive magnetic axial centering force having a magnitude that is adequate to limit the rotor 140 from contacting the dividing wall 115 or the inner surface 118a of the cap 118. The rotor 140 also includes a shroud 145 that covers the ends of the impeller blades 143 facing the second face 113 that assists in directing blood flow into the volute 107. The shroud 145 and the inner surface 118a of the cap 118 form a gap 109 between the shroud 145 and the inner surface 118a when the rotor 140 is levitated by the stator 120. The gap 109 is from about 0.2 millimeters to about 2 millimeters. For example, the gap 109 is approximately 1 millimeter.
(30) As blood flows through the blood flow conduit 103, blood flows through a central aperture 141a formed through the permanent magnet 141. Blood also flows through the gap 108 between the rotor 140 and the dividing wall 115 and through the gap 109 between the shroud 145 and the inner surface 108a of the cap 118. The gaps 108 and 109 are large enough to allow adequate blood flow to limit clot formation that may occur if the blood is allowed to become stagnant. The gaps 108 and 109 are also large enough to limit pressure forces on the blood cells such that the blood is not damaged when flowing through the pump 100. As a result of the size of the gaps 108 and 109 limiting pressure forces on the blood cells, the gaps 108 and 109 are too large to provide a meaningful hydrodynamic suspension effect. That is to say, the blood does not act as a bearing within the gaps 108 and 109, and the rotor is only magnetically-levitated. In various embodiments, the gaps 108 and 109 are sized and dimensioned so the blood flowing through the gaps forms a film that provides a hydrodynamic suspension effect. In this manner, the rotor can be suspended by magnetic forces, hydrodynamic forces, or both.
(31) Because the rotor 140 is radially suspended by active control of the levitation coils 127 as discussed above, and because the rotor 140 is axially suspended by passive interaction of the permanent magnet 141 and the stator 120, no rotor levitation components are needed proximate the second face 113. The incorporation of all the components for rotor levitation in the stator 120 (i.e., the levitation coils 127 and the pole pieces 123) allows the cap 118 to be contoured to the shape of the impeller blades 143 and the volute 107. Additionally, incorporation of all the rotor levitation components in the stator 120 eliminates the need for electrical connectors extending from the compartment 117 to the cap 118, which allows the cap to be easily installed and/or removed and eliminates potential sources of pump failure.
(32) In use, the drive coils 125 of the stator 120 generates electromagnetic fields through the pole pieces 123 that selectively attract and repel the magnetic north pole N and the magnetic south pole S of the rotor 140 to cause the rotor 140 to rotate within stator 120. For example, the Hall sensor may sense a current position of the rotor 140 and/or the permanent magnet 141, wherein the output voltage of the Hall sensor may be used to selectively attract and repel the magnetic north pole N and the magnetic south pole S of the rotor 140 to cause the rotor 140 to rotate within stator 120. As the rotor 140 rotates, the impeller blades 143 force blood into the volute 107 such that blood is forced out of the outlet opening 105. Additionally, the rotor draws blood into pump 100 through the inlet opening 101. As blood is drawn into the blood pump by rotation of the impeller blades 143 of the rotor 140, the blood flows through the inlet opening 101 and flows through the control electronics 130 and the stator 120 toward the rotor 140. Blood flows through the aperture 141a of the permanent magnet 141 and between the impeller blades 143, the shroud 145, and the permanent magnet 141, and into the volute 107. Blood also flows around the rotor 140, through the gap 108 and through the gap 109 between the shroud 145 and the inner surface 118a of the cap 118. The blood exits the volute 107 through the outlet opening 105.
(33)
(34) In an aspect, if the electronics of the pump provide sufficient current, a force may be applied to the magnet 141 to remove the magnet 141 from the wall 115 or the stator 120 during the take-off. After the take-off and the waiting phase, the rotor 140 is accelerated to the nominal rotation speed of the operational pump 100.
(35)
(36)
(37) In an aspect, the current needed for the rolling phase is based on the displacement of the rotor from a center of the stator 120. For example, the target position 129 may be based on the rotor displacement. For instance, a decision if a levitation of the rotor 140 is successful or failed is made 100 milliseconds after a take-off was initiated. For example, a rotor acceleration may be started about 100 milliseconds after it was found that the levitation of the rotor is successful.
(38)
(39)
(40) In a general aspect of the optimized start-up algorithm, before the rolling, the initial rotation of the rotor 140 is performed by which the rotor 140 is rotated. This may prevent the magnet 141 of the rotor 140 from becoming stuck at a position within the pump 100, e.g. a position from which a probability of a start-up and/or a take-off may be not high enough for a reliable operation of the pump 100 or, e.g. the position may be a position at which a current needed for a take-off may be exceeding 5 ampère. This may be a mitigation for the reset of the power supply and/or digital signal processing due to a voltage drop reducing take-off currents exceeding 5 ampère driven through high eccentricity and non-optimal rotor start positions 128.
(41) This optimized start-up algorithm may allow the rotor 140 to rotate and to move to a new position, even if a reset of the power supply, the electronics or the digital signal processing happens during the take-off attempt of the start-up algorithm. This particular aspect described herein may allow use of less start-up current, e.g. less peak current during the take-off attempt of the start-up. By initially rotating the rotor 140, subsequent take-off attempts are performed starting from different physical locations within the pump 100. It can thus be achieved that the rotor 140 does not get stuck at the same position during subsequent take-off attempts. The rotation of the rotor 140 (e.g., before performing the rolling of the rotor 140) may lead after the rotation to a different direction of the magnetic attraction force between the magnet 141 and the stator 120 compared to before the rotation. In an aspect, the rotation of the rotor (e.g., before performing the rolling of the rotor) may lead after the rotation to a different (e.g., reduced) absolute magnitude of the magnetic attraction force between the magnet 141 and the stator 120 compared to before the rotation.
(42)
(43) The particular implementation or aspect described herein may ensure different start positions (e.g., take-off positions or positions for attempts to start the pump 100) between subsequent start-up procedures. These different take-off or start positions 128 in subsequent start-up procedures may be associated with different environmental conditions for the rotor 140. For example, one or more of the parameters magnetic field surrounding the rotor 140, eccentricity, roughness of the wall 115, magnetic fields leaving the pole pieces 123a-f and rotor tilt may be different.
(44)
(45) The take-off 136 is classified 137 as failed if the magnet 141 or the rotor 140 remains contacting or touching the wall 115 or one or more pole pieces 123 of the stator 120. For example, the take-off 136 is determined 137 to have failed if the magnet 141 or the rotor 140 is falling back to the target position 129 or if the magnet 141 remains magnetically attracted by the wall 115 or the stator 120. For example, the take-off 136 may be classified 137 as failed, if, after the take-off, the rotor 140 may not be located within a predefined geometric volume of the pump. For example, the rotor 140 may not start rotating at a nominal rotation speed for pumping blood through the pump, if the rotor 140 is located outside the predetermined geometric volume of the pump 100. In an aspect, the take-off 136 may take 0.05 seconds. If the take-off 136 is determined 137 as failed, then the start-up algorithm starts again from the beginning. The repeated rotation 134 of the rotor 140, e.g. by 90 degrees, may ensure different start positions between subsequent start-up procedures (e.g., between subsequent take-off 136 attempts or attempts to start the pump 100). These different start positions 128 due to the rotation 134 of the rotor 140 before the rolling 135 in subsequent start-up attempts may be associated with different environmental conditions of the rotor at the beginning of the start-up attempts.
(46) An additional waiting phase 138 follows a successful take-off, wherein the waiting phase 138 may last for 0.15 seconds. The total time required for the optimized start-up algorithm before the rotor is entering an accelerating phase 139 may be 2.1 seconds. In the accelerating phase 139, the rotor 140 may be accelerated to the nominal rotation speed required for an operation of the implantable blood pump, i.e. for the pump to be able to pump blood. The peak current needed for the accelerating phase may be less than the peak current needed for the take-off. The peak current needed for the take-off may be less than about 5 ampère. Optionally, before the initial waiting phase starts, an additional time window of maximal 2 seconds may be present during which a command is sent to the control electronics 130, wherein the command is configured to enable or disable the optimized start-up algorithm.
(47) The particular aspects or implementations of the optimized start-up algorithm described in
(48)
(49) In a general aspect, for determining if the take-off was successful, the output voltage provided by the Hall sensor as described above may allow to determine (e.g., classify) if the magnet 141 is located within a predefined geometric volume within the flow conduit 103. If and only if the magnet 141 is determined to be within this geometric volume, then the take-off is classified to be successful. If the magnet 141 is not located within the geometric area, then the take-off is classified as failed or not successful.
(50) A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the claimed invention. For example, the cap 118 can be engaged with the peripheral wall 116 using a different attachment mechanism or technique, including snap-fit engagement, adhesives, or welding. Additionally, while the cap 118 has been described as defining the outlet opening 105 and the chamfered edge 114, the outlet opening 105 and/or the chamfered edge 114 can be defined by the peripheral wall 116 or by both the peripheral wall 116 and the cap 118. Similarly, the dividing wall 115 can be formed as part of the cap 118.
(51) Additionally, the rotor 140 can include two or more permanent magnets. The number and configuration of the pole pieces 123 can also be varied. The operation of the control electronics 130 is selected to account for the number and position of pole pieces of the stator and permanent magnets of the rotor. Also, the cap 118 can be engaged with the peripheral wall using other techniques, such as adhesives, welding, snap-fit, shrink-fit, or other technique or structure. Similarly, the first face 111 may be formed from a separate piece of material than the peripheral wall 116 and the first face 111, including the inlet cannula 112, can be attached to the peripheral wall 116, such as by welding, after the control electronics 130 and the stator 120 have been mounted in the internal compartment 117. The shroud 145 may be omitted and optionally replaced by other flow control devices to achieve a desired pump efficiency. As another option, the control electronics 130 can be located external to the pump 100, such as in a separate housing implanted in the patient's abdomen, or external to the patient's body.
(52) In some implementations, the dimensions of the housing 110 can be larger or smaller than those described above. Similarly, the ratio of the width W of the housing 110 to the thickness T of the housing can be different than the ratio described above. For example, the width W can be from about 1.1 to about 5 times greater than the thickness T. Additionally, the permanent magnet 141 of the rotor 140 can include two or more pairs of north and south magnetic poles. While the peripheral wall 116 and the dividing wall 115 are illustrated as cylinders having circular cross-sectional shapes, one or both can alternatively be formed having other cross-sectional shapes, such as oval, or an irregular shape. Similarly, the peripheral wall 116 can be tapered such that the housing does not have a constant width W from the first face 111 to the second face 113.
(53) As mentioned above, in some implementations, the blood pump 100 can be used to assist a patient's heart during a transition period, such as during a recovery from illness and/or surgery or other treatment. In other implementations, the blood pump 100 can be used to partially or completely replace the function of the patient's heart on a generally permanent basis, such as where the patient's aortic valve is surgically sealed. In a particular aspect described herein, the
(54) Hall sensor may allow the system to monitor the position of the rotor of the pump 100 and may thereby help to ensure a proper operating status of the implantable blood pump 100.
(55) As used in the present disclosure, the term “computer” is intended to encompass any suitable processing device.
(56) Regardless of the particular implementation, “procedure” or “algorithm” may include computer-readable instructions, firmware, wired or programmed hardware, or any combination thereof on a tangible and non-transitory medium operable when executed to perform at least the processes and operations described herein. Indeed, each procedure or algorithm component may be fully or partially written or described in any appropriate computer language including C, C++, Java, Visual Basic, assembler, Perl, any suitable version of 4GL, as well as others. One of skill will appreciate that the algorithm may be implemented on several controller components. In various embodiments, the “controller” includes one or more electronics inside the patient's body and/or external the body.
(57) The figures and accompanying description illustrate example processes and computer-implementable techniques. It will be understood that the processes are for illustration purposes only and that the described or similar techniques may be performed at any appropriate time, including concurrently, individually, or in combination. In addition, many of the steps in these processes may take place simultaneously, concurrently, and/or in different orders or combinations than shown.
(58) Thus, particular aspects of the subject-matter have been described. Other aspects or embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order or combination and still achieve desirable results. In certain aspects, multitasking and parallel processing may be advantageous.
(59) In other words, although this disclosure has been described in terms of certain implementations and aspects, generally associated methods, alterations and permutations of these implementations and methods will be apparent to those skilled in the art. Accordingly, the above description of example implementations does not define or constrain this disclosure. Other changes, substitutions and alterations are also possible without departing from the spirit and scope of this disclosure.
(60) Aspects of the subject-matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject-matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of a data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
(61) The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
(62) The term “computer”, “server”, “processor” or “processing device” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and operating environment can realize various different computing model infrastructures.
(63) A computer algorithm (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
(64) The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
(65) Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer may be a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer or computing device 200 will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer or computing device need not have such devices. Moreover, a computer or computing device can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus
(66) (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
(67) To provide for interaction with a user, embodiments of the subject-matter described in this specification can be implemented on a computer having a non-flexible or flexible screen 201, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) or OLED (organic light emitting diode) monitor, for displaying information to the user and a keyboard and a pointer 205, e.g., a finger, a stylus, a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., touch feedback, visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, touch or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's user device in response to requests received from the web browser.
(68) Embodiments of the subject-matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a server 300, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject-matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
(69) The computing system can include users and servers. A user and server are generally remote from each other and typically interact through a communication network. The relationship of user and server arises by virtue of computer programs running on the respective computers and having a user-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a user device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the user device). Data generated at the user device (e.g., a result of the user interaction) can be received from the user device at the server.
(70) While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
(71) In general, the separation of various system components in the aspects described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and system components can generally be integrated together in a single software or hardware product or packaged into multiple software or hardware products.
(72) The preceding figures and accompanying description illustrate example processes and example devices. But example components contemplate using, implementing, or executing any suitable technique for performing these and other tasks. It will be understood that these processes and parts are for illustration purposes only and that the described or similar techniques may be performed at any appropriate time, including concurrently, individually, in parallel, and/or in combination. In addition, many of the steps or parts in these processes may take place simultaneously, concurrently, in parallel, and/or in different orders than as shown. Moreover, components with additional parts, fewer parts, and/or different parts, may be used so long as the devices remain appropriate. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
(73) In other words, although this disclosure has been described in terms of certain aspects, implementations, examples or generally associated methods, alterations and permutations of these aspects, implementations or methods will be apparent to those skilled in the art. Accordingly, the above description of example aspects, implementations or embodiments do not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure.