1. A computer program product for determining a length of a set of data, the computer program product comprising:
a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
loading from memory to a register data that is within a specified block of memory, the data being at least a portion of the set of data for which the length is to be determined, the set of data for which the length is to be determined having a termination character, the termination character indicating an end of the set of data for which the length is to be determined and being a known fixed value pre-selected as the value to specify termination of sets of data, wherein the loading comprises loading from a starting address in memory to an ending address in memory, wherein the ending address is computed using a boundary size of the specified block of memory and a boundary mask, the boundary mask determined based on the boundary size and used to determine closeness to a specified boundary, and wherein a variable number of bytes of data are loaded from memory absent crossing the specified boundary of the block of memory from which the data is being loaded in the register, the variable number based on the starting address and the ending address;
obtaining a count of an amount of data loaded in the register;
determining, by a processor, a termination value for the data loaded in the register, the termination value to be used in determining the length of the set of data, the determining comprising checking the data loaded in the register to determine whether the data loaded in the register includes the termination character at a location within the register, and based on the data loaded in the register including the termination character, setting the termination value to a value indicating the location within the register of the termination character, and based on the data loaded in the register not including the termination character, setting the termination value to a pre-specified value to be used in determining the length of the set of data;
checking whether there is additional data to be counted based on at least one of the count and the termination value;
based on the checking indicating additional data is to be counted, incrementing the count based on the additional data, the incrementing including counting the additional data up to but excluding the termination character, the incremented count providing the length of the set of data; and
based on the checking indicating additional data is not to be counted, using the termination value as the length of the set of data.
2. The computer program product of claim 1, wherein the checking comprises comparing the count with the termination value to determine whether additional data is to be counted.
3. The computer program product of claim 1, wherein the obtaining the count comprises using a start address within the block of memory and a boundary of the block of memory to compute the count.
4. The computer program product of claim 1, wherein the data comprises a plurality of units of data, and wherein the loading comprises loading the plurality of units of data in the register in parallel, and wherein the checking the data loaded in the register is performed in parallel.
5. The computer program product of claim 1, wherein the loading is performed by an instruction that loads the data from the block of memory up to the boundary of the block of memory, and the block of memory is one of: specified by the instruction, or dynamically determined by a processor executing the instruction.
6. The computer program product of claim 1, wherein the obtaining the count comprises using a Load Count to Block Boundary instruction.
7. The computer program product of claim 1, wherein the determining a termination value comprises using a Vector Find Element Not Equal instruction, and the location comprises a byte index within the register.
8. The computer program product of claim 1, wherein the termination character comprises a zero or null character.
9. The computer program product of claim 1, wherein the length of the set of data is determined using no more than one branch instruction, and wherein the loading is performed absent crossing the boundary of the block of memory from which the data is being loaded into the register.
10. The computer program product of claim 1, wherein the method further comprises obtaining computer code to determine the length, the computer code including an instruction to perform the loading, an instruction to obtain the count, and an instruction to determine the termination value.
11. The computer program product of claim 1, wherein the obtaining the count comprises obtaining a count of a number of characters loaded in the register, and wherein the pre-specified value comprises a size of the register.
12. A computer system for determining a length of a set of data, the computer system comprising:
a memory; and
a processor in communications with the memory, wherein the computer system is configured to perform a method, the method comprising:
loading from memory to a register data that is within a specified block of memory, the data being at least a portion of the set of data for which the length is to be determined, the set of data for which the length is to be determined having a termination character, the termination character indicating an end of the set of data for which the length is to be determined and being a known fixed value pre-selected as the value to specify termination of sets of data, wherein the loading comprises loading from a starting address in memory to an ending address in memory, wherein the ending address is computed using a boundary size of the specified block of memory and a boundary mask, the boundary mask determined based on the boundary size and used to determine closeness to a specified boundary, and wherein a variable number of bytes of data are loaded from memory absent crossing the specified boundary of the block of memory from which the data is being loaded in the register, the variable number based on the starting address and the ending address;
obtaining a count of an amount of data loaded in the register;
determining, by a processor, a termination value for the data loaded in the register, the termination value to be used in determining the length of the set of data, the determining comprising checking the data loaded in the register to determine whether the data loaded in the register includes the termination character at a location within the register, and based on the data loaded in the register including the termination character, setting the termination value to a value indicating the location within the register of the termination character, and based on the data loaded in the register not including the termination character, setting the termination value to a pre-specified value to be used in determining the length of the set of data;
checking whether there is additional data to be counted based on at least one of the count and the termination value;
based on the checking indicating additional data is to be counted, incrementing the count based on the additional data, the incrementing including counting the additional data up to but excluding the termination character, the incremented count providing the length of the set of data; and
based on the checking indicating additional data is not to be counted, using the termination value as the length of the set of data.
13. The computer system of claim 12, wherein the obtaining the count comprises using a start address within the block of memory and a boundary of the block of memory to compute the count.
14. The computer system of claim 12, wherein the data comprises a plurality of units of data, and wherein the loading comprises loading the plurality of units of data in the register in parallel, and wherein the checking the data loaded in the register is performed in parallel.
15. The computer system of claim 12, wherein the loading is performed by an instruction that loads the data from the block of memory up to the boundary of the block of memory, and the block of memory is one of: specified by the instruction, or dynamically determined by a processor executing the instruction.
16. The computer system of claim 12, wherein the determining a termination value comprises using a Vector Find Element Not Equal instruction, and the location comprises a byte index within the register.
17. The computer system of claim 12, wherein the method further comprises obtaining computer code to determine the length, the computer code including an instruction to perform the loading, an instruction to obtain the count, and an instruction to determine the termination value.
18. A method of determining a length of a set of data, the method comprising:
loading from memory to a register data that is within a specified block of memory, the data being at least a portion of the set of data for which the length is to be determined, the set of data for which the length is to be determined having a termination character, the termination character indicating an end of the set of data for which the length is to be determined and being a known fixed value pre-selected as the value to specify termination of a set of data, wherein the loading comprises loading from a starting address in memory to an ending address in memory, wherein the ending address is computed using a boundary size of the specified block of memory and a boundary mask, the boundary mask determined based on the boundary size and used to determine closeness to a specified boundary, and wherein a variable number of bytes of data are loaded from memory absent crossing the specified boundary of the block of memory from which the data is being loaded in the register, the variable number based on the starting address and the ending address;
obtaining a count of an amount of data loaded in the register;
determining, by a processor, a termination value for the data loaded in the register, the termination value to be used in determining the length of the set of data, the determining comprising checking the data loaded in the register to determine whether the data loaded in the register includes the termination character at a location within the register, and based on the data loaded in the register including the termination character, setting the termination value to a value indicating the location within the register of the termination character, and based on the data loaded in the register not including the termination character, setting the termination value to a pre-specified value to be used in determining the length of the set of data;
checking whether there is additional data to be counted based on at least one of the count and the termination value;
based on the checking indicating additional data is to be counted, incrementing the count based on the additional data, the incrementing including counting the additional data up to but excluding the termination character, the incremented count providing the length of the set of data; and
based on the checking indicating additional data is not to be counted, using the termination value as the length of the set of data.
19. The method of claim 18, wherein the data comprises a plurality of units of data, and wherein the loading comprises loading the plurality of units of data in the register in parallel, and wherein the checking the data loaded in the register is performed in parallel.
20. The method of claim 18, further comprising obtaining computer code to determine the length, the computer code including an instruction to perform the loading, an instruction to obtain the count, and an instruction to determine the termination value.
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. Apparatus for maintaining patency of an apertured device implanted in a vessel in an animal body through which fluid flow occurs, comprising:
a patency maintenance drug introduction head, positionable in the vessel proximate and upflow relative to the device, for dispensing a patency maintenance drug;
an elongate member having a lumen therethrough, a distal end in fluid communication with a cavity in said drug introduction head and a proximal end remote from said introduction head and external to the body of the animal;
a reservoir at said proximal end of said elongate member and in fluid communication with said lumen; and
a charger, associated with said reservoir, for volitionally urging patency maintenance drug in the reservoir into and through said lumen, into said cavity and into the vessel at said introduction head.
2. The apparatus of claim 1 wherein said drug introduction head includes a wall which defines said cavity therewithin, and wherein said wall has a plurality of exit ports passing therethrough.
3. The apparatus of claim 2 wherein said reservoir and said charger comprise a syringe mated to said elongate member at said proximal end thereof.
4. The apparatus of claim 3 wherein said drug introduction head and said elongate member are unitarily formed.
5. The apparatus of claim 4 wherein said drug introduction head comprises an expanded portion of said elongate member.
6. A medical device, comprising:
a protection member which permits passage of a fluid therethrough, an elongate tubular member having a head positioned proximate said protective member, said head having a plurality of exit ports for delivering a drug to said protective member to induce continued patency of said protective member and a charger for remotely inducing delivery of the drug through said exit ports.
7. The medical device of claim 6, wherein said protective member is a filter.
8. The medical device of claim 7, wherein said filter is expandable about a hostwire.
9. The medical device of claim 7, wherein said filter has a hostwire extending within said tubular member.
10. A device for delivering a drug to a distal protection device to maintain patency thereof, said device comprising a tubular member having a wall, a proximal end, a distal end and a lumen, defined by said wall, through said tubular member extending from said proximal end to said distal end, said wall having an exterior surface, said tubular member having a plurality of apertures formed through said wall proximate said distal end of said tubular member and allowing flow of the drug from said lumen to the exterior of said wall proximate and at a location up-flow of the distal protection device, and a charger mounted to said tubular member remote from said apertures and external to a body of a patient to whom the drug is to be delivered, for volitionally inducing flow of the drug through said apertures.
11. The device according to claim 10, wherein said plurality of apertures are spaced fully around said wall.
12. The device according to claim 10, wherein said wall has an axial dimension, and wherein said plurality of apertures are spaced along at least a portion of said axial dimension.
13. The device according to claim 12, wherein said plurality of apertures are formed in a spiral pattern along said wall.
14. The device according to claim 10, wherein a distal portion of said wall is enlarged.
15. The device according to claim 10, wherein said drug is in a liquid form, and wherein said device is constructed to channel and deliver said drug.
16. The device according to claim 10, wherein said drug is infused into said lumen of said tubular member.
17. A filter device, comprising:
an expandable filter portion; and
a drug delivery portion including a tubular member having a wall and having a first end, a second end and a lumen through said tubular member extending from said first end to said second end, said wall having an exterior surface and said tubular member having a plurality of apertures formed through said wall to allow fluid communication of a drug from said lumen to the exterior of said wall.
18. Apparatus for delivering a drug to a distal protection device to maintain patency thereof, said apparatus comprising a tubular member having a wall, a proximal end, a distal end and a lumen, defined by said wall, through said tubular member extending from said proximal end to said distal end, said wall having an exterior surface, said tubular member having a plurality of apertures formed through said wall proximate said distal end of said tubular member and allowing flow of the drug from said lumen to the exterior of said wall proximate the distal protection device, and a charger mounted to said tubular member remote from said apertures, for inducing flow of the drug through said apertures.