1. A device for performing biological or chemical transformation, or physical or chemical trapping in fluidic media comprising:
a. a flow distributor having at least one fluid medium inlet, at least one fluid medium outlet, and at least one confinement connected to said inlet(s) and outlet(s) wherein said transformation or trapping is performed; and
b. a means for rotating, rocking, wagging, or oscillating the device.
2. The device according to claim 1, wherein the confinements of the flow distributor houses a one or more solid members that participate in or facilitate(s) a biological or chemical transformation involving at least one agent distributed with the flow, or causes said agent to become physically or chemically trapped by a solid member.
3. The device according to claim 2, wherein each solid member is provided in one or more cartridges which are placed within the at least one confinement.
4. The device according to claim 3, wherein said cartridges are replaceable.
5. The device according to claim 1, wherein the at least one confinement is positioned symmetrically to the central axis of the flow distributor.
6. The device according to claim 1, wherein the at least one confinement is peripherally located in the flow distributor.
7. The device according to claim 1, wherein the flow distributor has one fluid medium inlet and one or more fluid medium outlets located in a plane above the plane of said fluid medium inlet.
8. The device according to claim 1, wherein the flow distributor has a confinement laid out as a spiral-formed flow channel from the central fluid medium inlet to a peripheral outlet.
9. The device according to claim 1, wherein the flow distributor is made from or coated with a material that is able to catalyze at least one an agent to undergo a chemical reaction.
10. The device according to claim 1, wherein the flow distributor is circular or elliptic in cross-section and provided with a plurality of sectors, each sector being connected with the centrally located fluid medium inlet and a designated peripheral fluid medium outlet.
11. The device according to claim 1, wherein the means for rotating, rocking, wagging, or oscillating the device is a magnet driven by a fluctuating external magnetic field.
12. The device according to claim 1, wherein the means for rotating, rocking, wagging, or oscillating the device is a solid or hollow shaft mechanically connected to an external actuating device.
13. The device according to claim 1, wherein the confinement contains a solid member selected from the group consisting of:
a. a catalyst;
b. a solid phase containing a physically trapped or chemically bonded reagent capable of entering a chemical reaction with an agent transported by the fluidic flow;
c. an immobilized biological entity capable of transforming agents supplied by the fluidic flow;
d. a support material suitable for carrying out solid phase synthesis;
e. a solid sorbent capable of trapping matter from the fluidic flow; and
f. a stationary phase suitable for chromatographic separation.
14. The device according to claim 1 further comprising a flow-operated valve located between the inlet(s) to the outlet(s) of the flow distributor, where rocking the device or rotation the device by alternating rotating speed causes liquid to flow from said inlet to said outlet.
15. A method of performing biological or chemical transformation, or physical or chemical trapping in fluidic media comprising:
a. providing the device of claim 1; and
b. creating a convective flow of fluidic medium through the device by rotating, rocking, wagging, or oscillating the device.
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 computing device for processing a data buffer, the computing device comprising:
a data buffer processing module to
access a data buffer having a buffer length and a plurality of data segments, each data segment having a segment length greater than zero and less than the buffer length;
pad one or more of the data segments in accordance with a serial data processing algorithm;
read each of the data segments into a data register, the data register having a plurality of data paths, each data segment being read into a different data path; and
perform a serial data processing algorithm on each of the data segments substantially in parallel to produce a result for each data path.
2. The computing device of claim 1, wherein the data buffer has an arbitrary length.
3. The computing device of claim 1, wherein the data buffer processing module comprises a data buffer processing module to directly read each of the padded data segments into a different data path of the data register.
4. The computing device of claim 1, wherein the data buffer processing module comprises a data buffer processing module to pad each of the data segments in accordance with the serial data processing algorithm.
5. The computing device of claim 1, wherein the data buffer processing module is embodied as an extension to a cryptographic hash algorithm.
6. The computing device of claim 1, wherein the data buffer processing module comprises a data buffer processing module to execute on a single core of a microprocessor of the computing device.
7. The computing device of claim 6, wherein the data buffer processing module comprises a data buffer processing module to execute on a single thread of the single core.
8. The computing device of claim 1, wherein the data buffer processing module comprises a data buffer processing module to execute on a single instruction, multiple data-capable processor of the computing device.
9. The computing device of claim 1, the data buffer processing module comprises a data buffer processing module to execute with a single thread software application.
10. A method for processing a data buffer, the method comprising:
defining the data buffer as a plurality of data segments, each data segment having a segment length greater than zero and less than the length of the data buffer;
padding one or more of the data segments in accordance with a serial data processing algorithm;
streaming the data segments into a data register, the data register having a plurality of data paths, each data segment being streamed into a different data path using a single data pointer; and
executing a serial data processing algorithm on each of the data segments substantially in parallel to produce a result for each data path.
11. The method of claim 10, further comprising defining the segment length based on the width of the data register and a word size specified by the serial data processing algorithm.
12. The method of claim 10, wherein defining the data buffer as a plurality of data segments comprises dividing the data buffer into the plurality of data segments in an interleaved fashion.
13. The method of claim 12, wherein the data buffer comprises a plurality of data words, and dividing the data buffer into the plurality of data segments in an interleaved fashion comprises assigning each data word in the data buffer to a different data segment so that each data segment comprises an array of data words.
14. The method of claim 10, wherein each result comprises a plurality of data words, and further comprising interleaving the results by the data words.
15. The method of claim 10, wherein executing a serial data processing algorithm comprises executing a cryptographic hash function.
16. The method of claim 15, further comprising generating a hash digest for each of the data segments.
17. The method of claim 16, further comprising combining the hash digests to form a new data buffer and executing the cryptographic hash function on the new data buffer.
18. The method of claim 17, wherein the combining comprises concatenating the results and executing the serial data processing algorithm on the concatenated results.
19. The method of claim 10, further comprising determining a block size associated with the serial data processing algorithm and padding the data segments so that the length of each of the data segments is a multiple of the block size.
20. The method of claim 19, further comprising appending a fixed pattern of data bits to each of the data segments.
21. The method of claim 10, further comprising determining the number of data segments based on one or more of a characteristic of a microprocessor of the computing device and a characteristic of the serial data processing algorithm.
22. One or more machine-readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a computing device:
dividing the data buffer into plurality of data segments, each data segment having a segment length greater than zero and less than the length of the data buffer;
padding one or more of the data segments according to a serial data processing algorithm;
reading each data segment into a different data path of a data register of the computing device; and
executing a cryptographic hash algorithm on each of the data segments substantially in parallel to produce a result for each data path.
23. The one or more machine-readable storage media of claim 22, wherein the plurality of instructions further result in the computing device combining the results produced at the data paths and executing the cryptographic hash algorithm on the combined results.
24. The one or more machine-readable storage media of claim 22, wherein the cryptographic hash algorithm comprises a Secure Hash Algorithm or an MD5 Algorithm.
25. The one or more machine-readable storage media of claim 22, wherein the data buffer has an arbitrary length.
26. The one or more machine-readable storage media of claim 22, wherein padding one or more of the data segments comprises padding each of the data segments in accordance with the serial data processing algorithm.
27. The one or more machine-readable storage media of claim 26, wherein reading each data segment comprises reading each of the data segments into a different data path of the data register.