Many companies package items and/or groups of items together for a variety of purposes, such as e-commerce and mail-order companies that package items (e.g., books, CDs, apparel, food, etc.) to be shipped to fulfill orders from customers. Retailers, wholesalers, and other product distributors (which may collectively be referred to as distributors) typically maintain an inventory of various items that may be ordered by clients or customers. This inventory may be maintained and processed at a materials handling facility that may include, but is not limited to, one or more of: warehouses, distribution centers, cross-docking facilities, order fulfillment facilities, packaging facilities, shipping facilities, or other facilities or combinations of facilities for performing one or more functions of material (inventory) handling.
Materials handling facilities typically store inventory items in their own packaging and on shelves, pallets, or racks. Such packaging and inventory storage requires that the inventory items be moved between locations within the materials handling facility using human power or mechanical power (e.g., forklifts, carts, trollies). For example, when items are received into a materials handling facility they are often removed from a transportation unit, such as a truck, with mechanical power of a forklift. A human may then process the received items and physically move the items to a storage area, using human power or mechanical assistance. Likewise, when an item is ordered, a human and/or mechanical device must pick the item from inventory and transport the item to a packing station and/or shipping station.
The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number appears.
While implementations are described herein by way of example, those skilled in the art will recognize that the implementations are not limited to the examples or drawings described. It should be understood that the drawings and detailed description thereto are not intended to limit implementations to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including.” and “Includes” mean including, but not limited to.
Described are systems, methods, and apparatus that utilize gravity to transport, sort, and/or sequence items within a materials handling facility. Inventory items may be placed in rollable containers that will roll when positioned on a sloping surface. In some implementations, the inventory items may arrive at the materials handling facility already contained in rollable containers or the items may be placed into rollable containers as part of a receive process.
The rollable containers may be different sizes and/or shapes to accommodate different sizes and shapes of inventory items. To improve storage utilization, inventory items contained in like size and/or shape rollable containers may be sorted and stored together. For example, a gravity feed conveyance system may be positioned throughout the materials handling facility upon which rollable containers may be rolled, using gravitational forces, between locations. Likewise, at each rollable container holder a pair of rails corresponding to a size of rollable container to be stored at that rollable container holder may terminate and/or separate so that appropriately sized rollable containers are automatically routed to that rollable container holder.
The rollable container holders may be configured to store rollable containers in a stacked configuration, such as a helix, hexagonal, cube, or row configuration. In a helical rollable container holder, rollable containers may be inserted into a top of the helical rollable container holder and roll, using gravitational forces, into an open position within the helical rollable container holder. As more rollable containers are added, the helical rollable container holder is filled, with each rollable container rolling into the helical rollable container holder and resting against an adjacent rollable container. If a rollable container is removed from the helical rollable container holder, any containers positioned above the removed container automatically shift, under the force of gravity, so that the position of the removed rollable container is filled with the adjacent rollable container. This shift continues up the helical rollable container holder such that the open position is above the last stored rollable container.
Regardless of the configuration, when a rollable container is removed from a rollable container holder it may be positioned back onto the gravity feed conveyance system and roll to another location within the materials handling facility, again using gravitational forces.
In some implementations, the materials handling facility may also include an engagement mechanism that may be used to engage and move the rollable containers to higher locations within the materials handling facility. Such engagement mechanisms may include human operators, robotic units, pneumatic air handling, etc. Likewise, to facilitate gravitational based movement of rollable containers within a materials handling facility, the materials handling facility may be designed such that the standard flow of items through the facility is arranged so that the items typically flow downhill. For example, a receive station may be a highest altitude station within the materials handling facility and a shipping station may be a lowest altitude station in the materials handling facility. Items typically flow from receive to shipping, as discussed further below.
A packaging information system configured to facilitate picking, packing and/or shipping operations may include various components used to facilitate efficient and/or cost-effective operations in a materials handling facility. For example, in various implementations, a packaging information system may include a planning service, a product dimension estimator, and/or a rollable container selection service for selecting a rollable container into which an item is to be stored. For example, the product dimension estimator may provide information as to the size and/or shape of the item to be placed in a rollable container and the rollable container selection service may select an appropriately sized rollable container.
As used herein, the term “item package” may refer to a single item to be stored, shipped, or otherwise enclosed within a rollable container, alone, or to multiple items that have been grouped for shipping, storing or for any other operations within a materials handling facility, such as for storing together in a rollable container.
By leveraging gravitational forces to move rollable containers that contain inventory items within a materials handling facility, the power and energy requirements required for facility operations are reduced. Such reductions result in a lower cost of operation and is better for the environment.
A block diagram of a materials handling facility which, in one implementation, may be an order fulfillment facility configured to utilize various systems and methods described herein, is illustrated in
As discussed further below, in some implementations, items may be received in the materials handling facility already contained in rollable containers. In such an implementation, the transportation unit containing the rollable containers that include the items may be positioned so that the rollable containers will roll out of the transportation unit, under the force of gravity. When the rollable containers exit the transportation unit they roll onto a gravity feed conveyance system that, as discussed further below with respect to
In other implementations, as items are received at receiving operations 180, an agent, such as a human or robotic unit, may place the items into rollable containers for storage in the materials handling facility. One or more items may be placed into a rollable container. In some implementations, in which multiple items are placed into a single rollable container, it may be required that the items be of a same type (e.g., same type and size memory card, items with a common barcode or stock keeping unit (“SKU”)). Any size and/or weight item may be placed in an appropriately sized rollable container. Accordingly, items varying from less than an inch in height, width, and/or length to items having dimensions of several feet may be placed in a rollable container. Likewise, items ranging in weight from ounces to hundreds of pounds may be stored in rollable containers and moved about the materials handling facility by rolling the rollable container.
In some implementations, items stored in rollable containers may be placed in larger rollable containers. For example, small individual items may be placed in small rollable containers and those rollable containers may be placed in a larger rollable container.
Once received items are placed in a rollable container, the rollable container may be placed on a gravity feed conveyance system so that the rollable container will roll along the gravity feed conveyance system under the force of gravity and be automatically routed, sorted, and/or sequenced to a rollable container holder, as discussed below with respect to
To fulfill the orders 120, the one or more items specified in each order may be retrieved or “picked” from inventory 130 (which may also be referred to as a rollable container holder) in the order fulfillment facility, as indicated by picking operations 140. The picking may be done by an agent picking a rollable container that contains the item and placing the picked rollable container on the gravity feed conveyance system so that the rollable container rolls along the gravity feed conveyance system under the force of gravity to a sorting 150, packing 160 or shipping 170 operation. In other implementations, a rollable container may be mechanically released from a rollable container holder such that it rolls from rollable container holder, onto the gravity feed conveyance system, and rolls to the sorting 150, packing 160 or shipping 170 operations under the force of gravity. For example, as discussed below with respect to
As another example, discussed further below with respect to
In still other examples, the rollable containers may be routed along the gravity feed conveyance system directly from the inventory area 130 to the shipping operations 170. The item may be removed from the rollable container prior to shipping, or the rollable container that contains the item may be shipped. For example, if the item is being transported to another materials handling facility it may be placed on a transportation unit without being removed from the rollable container.
Note that not every fulfillment facility may include both sorting and packing stations. In certain implementations, picked items may be transferred directly to a packing station, while in other implementations picked items may be transported to a combination sort, and packing station. This may result in a stream and/or batches of picked rollable containers that includes corresponding items for multiple incomplete or complete orders being delivered to a sort and pack station for sorting and packing operations 160 into their respective item packages for packing and shipping, according to some implementations.
Because rollable containers that include items of an item package may be received at different times, sorting operations 150 and packing operations 160 may have to wait for one or more rollable containers that include items of some item packages to be delivered to the sort and pack station(s) before processing of the item package completes. Likewise, if rollable containers that include items arrive at sorting operations 150 out of the sequence specified by the stacking engine, those rollable containers may be held at sorting operations 150 until other rollable containers with items arrive before releasing the rollable containers to packing operations 160. Releasing rollable containers that include items from the sorting operations 150 in a specified sequence allows for multiple items of multiple orders to be picked and routed along the gravity feed conveyance system and under the force of gravity and delivered to sorting independent of one another without disrupting the sequence specified by the stacking engine. This is important because some rollable containers may roll along the gravity feed conveyance system faster than other rollable containers. By restoring the sequence during sorting operations 150, the rollable containers that include ordered items will be delivered to the packing operations 160 and arrive at the pack stations in, or approximately in, the sequence specified by the inventory management system.
A package routing operation 165 may sort packed orders to one of two or more shipping operations 170, from which they may be shipped to the customers 100. Depending on the specific implementation, the package routing operation 165 may be either automated or manual. The package routing operation 165 may receive an indication of the destination to which each packed shipment set should be routed. In some instances, the destination may be the final destination identified by the user or a destination at which transfer of a shipment set may occur for final delivery to the user. The package routing operation 165 may also determine a routing destination for each packed shipment set dependent on the size of a shipping package in which the shipment set is contained and/or based on whether the shipment set will be delivered by a carrier or other shipment method.
Note that a picked, packed, and shipped item package does not necessarily include all of the items ordered by the customer; a shipped package may include only a subset of the ordered items available to ship at one time from one fulfillment facility. Also note that the various operations of an order fulfillment facility may be located in one building or facility, or alternatively may be spread or subdivided across two or more buildings or facilities.
The arrangement and order of operations illustrated by
In this example, the upper portion 204 and the lower portion 202 are joined by a hinge or joint 206 that allows the upper portion 204 and the lower portion 202 to rotate with respect to one another to either open or close, thereby providing access to item(s) included in the interior 208 of the rollable container. In other implementations, the portions of the rollable container may be secured using other means. For example, or in addition to a hinge 206, the upper portion 204 and lower portion 202 of the rollable container may be joined using magnets, electromagnets, latches, hooks, by screwing the two portions together, and/or other mechanisms to secure the upper portion 204 with the lower portion 202.
The interior 208 of the rollable container may include a protective material that protects and secures the item(s) placed in the interior 208 of the rollable container 200 so the items do not move around the interior 208 of the rollable container 200 when the rollable container 200 is rolling. For example, the upper portion 204 and the lower portion 202 may each include a flexible membrane or flexible webbing formed of rubber or other flexible material that, when the upper portion and the lower portion of the rollable container 200 are closed, envelops the items placed in the interior of the rollable container 200 so they are securely positioned and contained within the interior of the rollable container 200.
In some implementations, the rollable container 200 may include an identifier 210. The identifier may be any form of identifier. For example, the identifier may be a visual identifier, an audible identifier, a radio frequency identification (“RFID”) tag, and/or any combination thereof. In implementations in which a visual identifier is utilized, the visual identifier may be a bar code, bokode, quick response (“QR”) code, illumination element that transmits a unique light pattern, a color, etc. In implementations in which the identifier is an audible identifier, the rollable container 200 may include a speaker that transmits a unique tone or series of tones that uniquely identify the rollable container. In implementations in which the identifier is a RFID tag, the rollable container may include a RFID tag, such as a passive RFID tag, or active RFID tag that can transmit a radio frequency that includes a unique identifier.
Regardless of the type of identifier utilized, items placed in the rollable container 200 may be associated with the unique identifier of the rollable container and the unique identifier of the rollable container 200 may be used to track and maintain a location within the materials handling facility of the item(s) included in the interior of the rollable container 200. Likewise, when the rollable container is stored at a position in a rollable container holder, a position identifier representative of that position may be associated with the rollable container identifier so that the location of the rollable container, and thus the contained item(s), within the materials handling facility is known.
In some implementations, an inventory management system operating on a computing system, such as the computing system discussed below with respect to
Returning to
The rollable container illustrated in
The rollable containers may be stacked by placing the rollable containers such that substantially flat surfaces of adjacent rollable containers contact one another. Because the planes formed by opposing sides substantially flat surfaces of the rollable container 210 are approximately parallel, when one substantially flat surface of the rollable container is positioned on a surface (or another rollable container) the opposing substantially flat surface will be in a position to receive another rollable container.
In ovoidal shaped rollable containers, by positioning the substantially flat surfaces toward a widest part of the ovoid, as illustrated, the rollable container is still shaped such that it will roll along the gravity feed conveyance system, with the rails of the gravity feed conveyance system positioned on the non-flat portions of the rollable container. In other implementations, the substantially flat surfaces may be at other positions on the rollable container.
As illustrated, the rollable container may have more than two substantially flat surfaces that are on opposing sides and that lie in approximately parallel planes. For example, substantially flat surface 222-1 of rollable container 220-2 has an opposing flat surface that lies in a parallel plane. In general, any number of pairs or sets of opposing flat surfaces may be included on a rollable container.
As used herein, “critical dimension” generally refers to the longest distance between the surfaces of a rollable container. If the container is a sphere, the critical dimension refers to the longest chord, or diameter of the sphere. If the rollable container is a cylinder, the critical distance is the distance between the two ends of the cylinder, often referred to as the height of the cylinder. If the container is an ovoid, the critical dimension is the longest chord of the ovoid.
The first rail 306A and the second rail 306B extend a first distance to a first rollable container holder access point 308 such that the rollable containers 316-1, 316-2 are routed along the first rail and the second rail and deposited under the force of gravity into the first rollable container holder access point 308. In some implementations, the first rail 306A and the second rail 306B may terminate at the first rollable container holder access point 308. In other implementations, the spacing between the first rail 306A and the second rail 306B may increase at the first rollable container holder access point 308 such that the spacing is greater than the critical dimension of the rollable containers 316-1, 316-2. When the spacing between the first rail 306A and the second rail 306B exceeds the critical dimension of the rollable containers 316-1, 316-2, the rollable containers 316-1, 316-2 will fall between the first rail and the second rail and into the first rollable container holder access point 308.
In this example, rollable containers 318-1 and 318-2, with critical dimensions larger than the critical dimension of the rollable containers 316-1, 316-2 may also contact and roll upon the first rail 306A and the second rail 306B. In such a configuration, the separation between the first rail 306A and the second rail 306B separates so that the rollable containers 316-1, 316-2 will pass between the first rail and the second rail and into the first rollable container holder access point 308. The spacing between first rail 306A and the second rail 306B continues to separate until the spacing exceeds the critical dimension of the rollable containers 318-1, 218-2 such that the rollable containers 318-1, 318-2 will pass between the first rail 306A and the second rail 306B and into the second rollable container holder access point 310. It will be appreciated that the separation between the rails may continue to increase to facilitate transport and sorting of rollable containers having still larger critical dimensions.
The gravity feed conveyance system 300, as illustrated, also includes a third rail 304A and a fourth rail 304B aligned substantially parallel and having a second spacing between the third rail 304A and the fourth rail 304B that is greater than the critical dimension of the rollable containers 316-1, 316-2, 318-1, 318-2 and less than a critical dimension of the rollable containers 320-1 and 320-2 so that the rollable containers 320-1 and 320-2 will contact and roll upon the third rail 304A and the fourth rail 304B under the force of gravity. The third rail 304A and the fourth rail 304B extend a distance to a third rollable container holder access point 312 such that the rollable containers 320-1, 320-2 are routed along the third rail and the fourth rail and deposited under the force of gravity into the third rollable container holder access point 312. In some implementations, as illustrated, the third rail 304A and the fourth rail 304B may terminate at the third rollable container holder access point 312. In other implementations, the spacing between the third rail 304A and the fourth rail 304B may increase at the third rollable container holder access point 312 such that the spacing is greater than the critical dimension of the rollable containers 320-1, 320-2. When the spacing between the third rail 304A and the fourth rail 304B exceeds the critical dimension of the rollable containers 320-1, 320-2, the rollable containers 320-1, 320-2 will fall between the third rail and the fourth rail and into the third rollable container holder access point 312.
The gravity feed conveyance system 300, as illustrated, also includes a fifth rail 302A and a sixth rail 302B aligned substantially parallel and having a third spacing between the fifth rail 302A and the sixth rail 302B that is greater than the critical dimension of the rollable containers 320-1, 320-2 and less than a critical dimension of the rollable containers 322 so that the rollable container 322 will contact and roll upon the fifth rail 302A and the sixth rail 302B under the force of gravity. The fifth rail 302A and the sixth rail 302B extend a distance to a fourth rollable container holder access point 314 such that the rollable container 322 is routed along the fifth rail and the sixth rail and deposited under the force of gravity into the fourth rollable container holder access point 314. In some implementations, the fifth rail 302A and the sixth rail 302B may terminate at the fourth rollable container holder access point 314. In other implementations, the spacing between the fifth rail 302A and the sixth rail 302B may increase at the fourth rollable container holder access point 314 such that the spacing is greater than the critical dimension of the rollable container 322. When the spacing between the fifth rail 302A and the sixth rail 302B exceeds the critical dimension of the rollable container 322, the rollable container 322 will fall between the fifth rail and the sixth rail and into the fourth rollable container holder access point 314.
The slope of the gravity feed conveyance system 300 may be uniform throughout the materials handling facility or may vary at different locations. In one implementation, the slope of the gravity feed conveyance system may include areas that have a slope of between approximately one degree and approximately five degrees and other areas that are approximately level so that the speed of the rollable containers will decrease as they roll across the approximately level areas.
The gravity feed conveyance system 300 may include additional or fewer rails and/or other forms of conveyance that will enable the rollable containers to roll under the force of gravity. Likewise, the gravity feed conveyance system may include turns, curves, and/or variations in slope so that rollable containers may be routed to different portions of the material handling facility. Likewise, in some implementations, segments of the gravity feed conveyance system may be controlled or adjusted by the inventory management system to guide or route the rollable containers to different portions of the gravity feed conveyance system 300. For example, the gravity feed conveyance system 300 may include divert mechanisms that are controlled by the inventory management system that may be used to divert rollable containers to different sets of rails of the gravity feed conveyance system 300.
In some implementations, rather than, or in addition to sloping the rails, the gravity feed conveyance system may be configured such that the rails are adjustable in width. By adjusting the width of the rails, rollable containers may be released through the rails at different locations along the gravity feed conveyance system by separating the rails a distance that is greater than the critical dimension of the rollable container. Likewise, by separating the rails a distance that is less than the critical distance of the rollable container, the rollable container will decline further between the rails and gain speed due to the additional gravitational forces that cause the rollable container to decline as the rails are separated. In a similar manner, by narrowing the distance between the rails, the speed of the rollable container will decrease as the rollable container moves upward with the narrowing of the rails. Accordingly, the speed of the rollable containers can be altered by spreading or narrowing the separation of the rails of the gravity feed conveyance system as the rollable container moves along the rails.
The helical rollable container holder 400 may be positioned beneath a portion of the gravity feed conveyance system discussed above with respect to
In this example, the helical rollable container holder 400 includes an inner rail 402-2 and an outer rail 402-1 that are separated a distance that is less than a critical dimension of the rollable containers 404 that the helical rollable container holder 400 is configured to store. As illustrated in
Likewise, by offsetting the height of the inner rail 402-2 and the outer rail 402-1, less force is required to move or displace a rollable container 404 out of a stored position on the helical rollable container holder 400 and into the cavity formed between the rails and the other rollable containers stored on the helical rollable container holder 400. As discussed below, in some implementations, a rollable container may be picked from the helical rollable container holder 400 by moving or pushing (displacing) the rollable container 404 from an exterior of the helical rollable container holder 400 such that the rollable container enters the cavity formed in the interior of the helical rollable container holder 400. When the rollable container 404 enters the interior cavity of the helical rollable container holder, the rollable container falls, under the force of gravity, through the cavity 406 and onto a gravity feed conveyance system positioned beneath the helical rollable container holder 400.
A position identifier for each position within the helical rollable container holder 400 is defined for the helical rollable container holder. Any type of unique identifier may be utilized. As rollable containers are added to the helical rollable container holder 400, the rollable containers roll under a force of gravity to a position within the helical rollable container holder 400. When located at a position, a rollable container identifier corresponding to the rollable container is associated with the position identifier and maintained by the inventory management system.
As illustrated by the top-down view 400B of the helical rollable container holder 400, the inner rail 402-2 and the outer rail 402-1 are wound in a helical pattern such that an interior cavity 406 is formed down the interior of the helical rollable container holder 400 that is wider than the critical dimension of a rollable container 404 stored on the helical rollable container holder 400. As such, the rollable container holder has a width or critical dimension that is at least three times the critical dimension of a stored rollable container 404. In other implementations, the width or diameter of the rollable container holder 400 may be slightly less than three times the critical dimension of a stored rollable container 404. In such a configuration, when a rollable container passes through the cavity of the rollable container holder 400, it may move along other stored rollable containers, shifting between the open spaces between those rollable containers as the rollable container traverses the cavity of the rollable container holder 400.
Referring to
Likewise, the gravity feed conveyance system may be positioned beneath each of the helical rollable container holders 400 and configured to receive a rollable container that is picked or released from the helical rollable container holder 400. For example, the gravity feed conveyance system may be positioned beneath the inner cavity 406 of each of the helical rollable container holders 400 and configured to receive a rollable container that passes through the cavity 406. Alternatively, or in addition thereto, the gravity feed conveyance system may be positioned at an outlet 408 of each helical rollable container holder and configured to receive a rollable container that is released through the outlet of the helical rollable container holder 400.
In other implementations, the helical rollable container holders 400-1, 400-2-400-N may be portable such that an agent (human and/or robotic unit) can move the helical rollable container holders 400 and any rollable containers stored thereon.
The computer-readable media may include non-transitory computer-readable storage media, which may include hard drives, floppy diskettes, optical disks, CD-ROMs, DVDs, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, flash memory, magnetic or optical cards, solid-state memory devices, or other types of storage media suitable for storing electronic instructions. In addition, in some implementations, the computer-readable media may include a transitory computer-readable signal (in compressed or uncompressed form). Examples of computer-readable signals, whether modulated using a carrier or not, include, but are not limited to, signals that a computer system hosting or running a computer program can be configured to access, including signals downloaded or uploaded through the Internet or other networks. Finally, the order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the process. Likewise, additional or fewer operations than those described may be utilized with the various implementations described herein.
The example process 500 begins by detecting a rollable container at an insertion point of the helical rollable container, as in 502. As discussed above, each rollable container may include a rollable container identifier that uniquely identifies the rollable container. A presence detection sensor, pressure sensor, RFID reader, barcode reader, bokode reader, QR code reader, a color detection sensor, and/or any other form of device may be positioned at or near the insertion point of the helical rollable container holder that detects the presence of the rollable container entering the helical rollable container holder.
Upon detection of a rollable container at an insertion point of the helical rollable container holder, a next open position within the helical rollable container holder is determined, as in 504. As discussed above, due to the helical design of the helical rollable container holder, rollable containers inserted into the helical rollable container holder will roll, under the force of gravity, down the helix until they reach the end of the helical rollable container holder or they contact and come to rest against another rollable container stored within the helical rollable container holder. Accordingly, as rollable containers are added to the helical rollable container holder, the position can be incremented each time and the next open position is associated with the rollable container detected at the insertion point of the helical rollable container holder, as in 506. In some implementations, the association between the rollable container and the inventory position within the helical rollable container holder may be maintained in a data store by the inventory management system. For example, the inventory management system may associate the rollable container identifier of the detected rollable container with the position identifier corresponding to the next open position within the helical rollable container holder and store that association in the data store.
Upon receiving the pick instruction, the position of the rollable container within the helical rollable container holder is determined, as in 604. As discussed above, an association between position identifier and rollable container identifier may be maintained in a data store by the inventory management system. Accordingly, the inventory management system may query the data store to determine the position of the rollable container that includes the ordered item.
Based on the determined position of the rollable container, instructions are sent to pick the rollable container from the position within the helical rollable container holder, as in 606. If the position of the rollable container is at a first position, (i.e., a position at the bottom of the helical rollable container holder), the pick may include the helical rollable container holder releasing the rollable container from the first position. In comparison, if the rollable container to be picked is at another position within the helical rollable container holder, an agent (e.g., human and/or robotic unit) may position itself adjacent the position of the rollable container and pick the rollable container from the position. Picking may include moving, pushing or otherwise displacing the rollable container from the position and into the cavity formed on the interior of the helical rollable container holder. When the rollable container enters the interior cavity, it falls down the cavity due to gravity and lands on a gravity feed conveyance system positioned below the cavity. Alternatively, a robotic unit may be positioned within the interior cavity of the helical rollable container holder and be configured to pick the item from the position and move the item onto the gravity feed conveyance system.
A determination is then made that the item has been picked, as in 608. It may be determined that the item has been picked by, for example, it being detected on the gravity feed conveyance system, no longer being able to detect a presence of a rollable container identifier, receiving a pick confirmation from an agent that picked the item, etc.
Once the rollable container has been picked, a position of rollable containers remaining in the helical rollable container holder is determined, as in 610. Because of the helical configuration of the helical rollable container holder, when a rollable container is picked from a position, all rollable containers at positions above the position from which the rollable container was picked move, under the force of gravity, to fill the position from which the rollable container was picked. For example, a helical rollable container holder may include ten positions numbered sequentially one through ten, the bottom position being identified as position one. If all positions are filled with rollable containers and the rollable container at position three is picked, the positions of the rollable containers previously at positions four through ten will move to positions three through nine, leaving position ten as an open position. Based on the determined position for the remaining rollable containers stored in the helical rollable container holder, the associations maintained between the rollable container identifiers and the position identifiers are updated, as in 612.
The hexagonal packed rollable container holder 700 may be positioned beneath the gravity feed conveyance system discussed above with respect to
In this example, the hexagonal packed rollable container holder 700 includes a plurality of rows 701, such as row 701-1 and row 701-2 that may be used to store rollable containers. The rows may be formed of an inner rail (not shown) and an outer rail 702 that are separated a distance that is less than a critical dimension of the rollable containers 704 that the hexagonal packed rollable container holder 700 is configured to store. In some implementations, the rails 702 may be flexible to facilitate insertion and/or removal of rollable containers 704. In other implementations, all or a portion of the inner rails and/or the outer rails between rows may be separated a distance that is equal to or greater than the critical dimension of the rollable containers 704, so that rollable containers may be moved between rails of adjacent rows.
The hexagonal packed rollable container holder 700 may include any number of rows 701 for storing rollable containers. The inner rail and the outer rail 702 are substantially parallel such that the separation between the inner rail and the outer rail 702 does not materially change. In some implementations, the inner rail and the outer rail 702 may be horizontally aligned. In other implementations, the outer rail 702 may be higher than the inner rail to aid in keeping the rollable containers positioned on the hexagonal packed rollable container holder 700.
Likewise, by offsetting the height of the inner rail and the outer rail 702, less force is required to displace a rollable container 704 out of a stored position on the hexagonal packed rollable container holder 700 and into the cavity formed between the rows and the other rollable containers stored on the hexagonal packed rollable container holder 700. As discussed below, in some implementations, a rollable container may be picked from the hexagonal packed rollable container holder 700 by displacing the rollable container 704 from an exterior of the hexagonal packed rollable container holder 700 such that the rollable container enters the cavity formed in the interior of the hexagonal packed rollable container holder 700. When the rollable container enters the cavity 706, the rollable container 704 falls, under the force of gravity, through the cavity 706 and onto a gravity feed conveyance system positioned beneath the hexagonal packed rollable container holder 700.
In the illustrated configuration, each row 701 is offset by approximately one-half a critical dimension of a rollable container 704. By offsetting the positions on adjacent rows, the density of rollable containers per hexagonal packed rollable container holder 700 is increased because the rows can be positioned closer together.
Position identifiers for each position of each row within the hexagonal packed rollable container holder 700 is defined for the hexagonal packed rollable container holder. Any type of unique identifier may be utilized. As rollable containers are added to the hexagonal packed rollable container holder 700, the rollable container identifier corresponding to a rollable container is associated with the position identifier and maintained by the inventory management system.
In some implementations, the hexagonal packed rollable container holder 700 may be positioned beneath a gravity feed conveyance system such that rollable containers of a size to be stored in the hexagonal packed rollable container holder 700 exit the gravity feed conveyance system and enter the interior cavity 706 from a top of the hexagonal packed rollable container holder 700. In such a configuration, a robotic unit may be positioned within the cavity 706 and configured to receive the rollable container and divert the rollable container into an open position within the hexagonal packed rollable container holder 700.
As illustrated by the top-down view 700B of the hexagonal packed rollable container holder 700, the inner rail 702-2 and the outer rail 702-1 are configured in a hexagonal pattern such that a cavity 706 is formed down the interior of the hexagonal packed rollable container holder 700 that is wider than the critical dimension of a rollable containers 704 stored on the hexagonal packed rollable container holder 700. As illustrated, the width or diameter of the hexagonal packed rollable container holder 700 is at least three times the critical dimension of a stored rollable container 704. In other implementations, the width or diameter of the hexagonal packed rollable container holder 700 may be slightly less than three times the critical dimension of a stored rollable container 704. In such a configuration, when a rollable container passes through the cavity of the rollable container holder 700, it may move along other stored rollable containers, shifting between the open spaces between those rollable containers as the rollable container traverses the cavity of the rollable container holder 700.
Referring to
Likewise, the gravity feed conveyance system may be positioned beneath each of the hexagonal packed rollable container holders 700 and configured to receive a rollable container that is picked from the hexagonal packed rollable container holder 700. For example the gravity feed conveyance system may be positioned beneath the inner cavity 706 of each of the hexagonal packed rollable container holders 700 and configured to receive a rollable container that passes through the cavity 706.
In other implementations, the hexagonal packed rollable container holders 700-1, 700-2-700-N may be portable such that an agent (human and/or robotic unit) can move the hexagonal packed rollable container holders 700 and any rollable containers stored thereon.
The hexagonal stacked rollable container holder 800 may be positioned beneath the gravity feed conveyance system discussed above with respect to
In this example, the hexagonal stacked rollable container holder 800 includes a plurality of rows 801, such as row 801-1 and row 801-2 that may be used to store rollable containers. The rows may be formed of an inner rail (not shown) and an outer rail 802-1 that are separated a distance that is less than a critical dimension of the rollable containers 804 that the hexagonal stacked rollable container holder 800 is configured to store.
The hexagonal stacked rollable container holder 800 may include any number of rows 801 for storing rollable containers. The inner rail and the outer rail 802 are substantially parallel such that the separation between the inner rail and the outer rail 802 does not materially change. In some implementations, the inner rail and the outer rail 802 may be horizontally aligned. In other implementations, the outer rail 802 may be higher than the inner rail to aid in keeping the rollable containers positioned on the hexagonal stacked rollable container holder.
Likewise, by offsetting the height of the inner rail and the outer rail 802, less force is required to displace a rollable container 804 out of a stored position on the hexagonal stacked rollable container holder 800) and into the cavity formed between the rows and the other rollable containers stored on the hexagonal stacked rollable container holder 800. As discussed below, in some implementations, a rollable container may be picked from the hexagonal stacked rollable container holder 800 by displacing the rollable container 804 from an exterior of the hexagonal stacked rollable container holder 800 such that the rollable container enters the cavity formed in the interior of the hexagonal stacked rollable container holder 800. When the rollable container enters the cavity 806, the rollable container 804 falls, under the force of gravity, through the cavity 806 onto a gravity feed conveyance system positioned beneath the hexagonal stacked rollable container holder 800.
In the illustrated configuration, the rows 801 of rollable containers are aligned. By aligning the rows, addressing of the positions within the hexagonal stacked rollable container holder is simplified and placing and/or picking is simplified.
Position identifiers for each position of each row within the hexagonal stacked rollable container holder 800 is defined for the hexagonal stacked rollable container holder. Any type of unique identifier may be utilized. As rollable containers are added to the hexagonal stacked rollable container holder 800, the rollable container identifier is associated with the position identifier and maintained by the inventory management system.
In some implementations, the hexagonal stacked rollable container holder 800 may be positioned beneath a gravity feed conveyance system such that rollable containers of a size to be stored in the hexagonal stacked rollable container holder 800 exit the gravity feed conveyance system and enter the interior cavity 806 from a top of the hexagonal stacked rollable container holder 800. In such a configuration, a robotic unit may be positioned within the cavity 806 and configured to receive the rollable container and divert the rollable container into an open position within the hexagonal stacked rollable container holder 800.
As illustrated by the top-down view 800B of the hexagonal stacked rollable container holder 800, the inner rail 802-2 and the outer rail 802-1 are configured in a hexagonal pattern such that an interior cavity 806 is formed along the interior of the hexagonal stacked rollable container holder 800 that is wider than the critical dimension of a rollable containers 804 stored on the hexagonal stacked rollable container holder 800. As such, a width or diameter of the hexagonal stacked rollable container holder 800 is at least three times the width of a stored rollable container 804. In other implementations, the width or diameter of the hexagonal stacked rollable container holder 800 may be slightly less than three times the critical dimension of a stored rollable container 804. In such a configuration, when a rollable container passes through the cavity of the rollable container holder 800, it may move along other stored rollable containers, shifting between the open spaces between those rollable containers as the rollable container traverses the cavity of the rollable container holder 800.
Referring to
Likewise, the gravity feed conveyance system may be positioned beneath each of the hexagonal stacked rollable container holders 800 and configured to receive a rollable container that is picked from the hexagonal stacked rollable container holder 800. For example the gravity feed conveyance system may be positioned beneath the inner cavity 806 of each of the hexagonal stacked rollable container holders 800 and configured to receive a rollable container that passes through the cavity 806.
In other implementations, the hexagonal stacked rollable container holders 800-1, 800-2-800-N may be portable such that an agent (human and/or robotic unit) can move the hexagonal stacked rollable container holders 800 and any rollable containers stored thereon.
For purposes of discussion, the support structure utilized to secure the rollable containers in the simple cube rollable container holder 900 is not included to facilitate explanation of the positioning and movement of the rollable containers 904. It will be appreciated that any type and configuration of support structure that maintains the rollable containers in the illustrated simple cube configuration and allows repositioning of the rollable containers in any of the X, Y, or Z direction may be utilized. For example, a series of rails positioned on either side of the rollable containers, similar to the configurations discussed above, may be utilized.
In a simple cube configuration, rollable containers 904 are stored in vertically stacked rows and columns that extend in the X direction and the Y direction, as illustrated by view 900A. Likewise, the vertically stacked rows and columns may extend in the Z direction such that multiple vertically stacked rows and columns (referred to herein as a row:column stack) are positioned adjacent one another and the rollable containers 904 are aligned in the Z direction.
By aligning the rollable containers 904 in each of the X, Y, and Z direction, a rollable container may be accessed in any X, Y, or Z direction. For example, rollable container 904-1 may be picked from the simple cube rollable container holder 900 by picking the rollable container 904-1 directly. As illustrated by the top-view 900B of
While the example discusses pushing or moving a rollable container out of the simple cube rollable container holder 900 by moving one or more rollable containers in the X, Y, or Z direction, in some implementations, the rollable container 904-1 may not be pushed or moved out of the simple cube rollable container holder. Rather, the rollable container 904-1 may be pushed or moved to a position in which an agent (human and/or robotic unit) may access the rollable container and pick it from the simple cube rollable container holder 900.
Likewise, rollable containers may be re-arranged or sorted by pushing or moving different rollable containers in any one or more of the X, Y, and/or Z directions such that the rollable containers are re-sequenced into a desired order. For example, an order may include multiple items, each of which are stored in a different rollable container that is located in the rollable container holder 900. The rollable containers within the rollable container holder may be moved within the rollable container holder in the X, Y, and/or Z directions until the rollable containers that include the ordered items are adjacent one another such that they can be moved or picked from the rollable container holder 900 by an agent.
For purposes of discussion, the support structure utilized to secure the rollable containers in the one-dimensional offset cube rollable container holder 1000 is not included to facilitate explanation of the positioning and movement of the rollable containers 1004. It will be appreciated that any type and configuration of support structure that maintains the rollable containers in the illustrated one-dimensional offset cube configuration and allows repositioning of the rollable containers in the Y direction may be utilized. For example, a series of rails positioned on either side of the rollable containers, similar to the configurations discussed above, may be utilized.
In a one-dimensional offset cube configuration, rollable containers 1004 are stored in vertically stacked rows and columns that extend in the X direction and the Y direction, as illustrated by view 1000A. Likewise, the vertically stacked rows and columns may extend in the Z direction such that multiple row:column stacks are positioned adjacent one another. However, in comparison to the simple cube rollable container holder 900 (
For example, rollable container 1004-1 may only be picked from the one-dimensional offset cube in two manners. First, the rollable container may be picked from the one-dimensional offset cube rollable container holder 1000 by picking the rollable container 1004-1 directly. Second, as illustrated in the top view 1000B of
Referring to the side view 1000C of
While the example discusses pushing or moving a rollable container out of the one-dimensional offset cube rollable container holder 1000 by moving one or more rollable containers in the Y direction, in some implementations, the rollable container 1004-1 may not be pushed or moved out of the one-dimensional offset cube rollable container holder 1000. Rather, the rollable container 1004-1 may be pushed or moved to a position in which an agent (human and/or robotic unit) may access the rollable container and pick it from the one-dimensional offset cube rollable container holder 1000.
For purposes of discussion, the support structure utilized to secure the rollable containers in the two-dimensional offset cube rollable container holder 1100 is not included to facilitate explanation of the positioning and movement of the rollable containers 1104. It will be appreciated that any type and configuration of support structure that maintains the rollable containers in the illustrated two-dimensional offset cube configuration may be utilized. For example, a series of rails positioned on either side of the rollable containers, similar to the configurations discussed above, may be utilized.
In a two-dimensional offset cube configuration, rollable containers 1104 are stored in vertically stacked rows and columns that extend in the X direction and the Y direction, as illustrated by view 1100A. Likewise, the vertically stacked rows and columns may extend in the Z direction such that multiple vertically stacked rows and columns are positioned adjacent one another. However, in comparison to the simple cube rollable container holder 900 (
For example, rollable container 1104-1 may only be picked from the two-dimensional offset cube directly from the position in which it is stored. As illustrated in the views 1100B. 1100C, 1100D of
In the examples discussed above with respect to
Once picked, the rollable container may be placed at another position on the rollable container holder, or routed to another location within the materials handling facility under power of the agent. Alternatively, the agent may place a picked rollable container on a gravity feed conveyance system such that the rollable container is routed to another location along the gravity feed conveyance system by rolling along the gravity feed conveyance system under gravitational forces.
Upon detection of a rollable container at a rollable container holder, an open position within the rollable container holder is determined, as in 1204. As discussed above, rollable containers may be picked and/or placed into positions within the rollable container holder and an association between the position identifier and rollable container identifiers updated and maintained by the inventory management system. If a position identifier does not include an associated rollable container identifier, the position may be determined to be an open position.
Based on the determined open position, instructions are generated and sent to an agent, such as a human and/or robotic unit, to place the rollable container at a determined open position, as in 1206. The instructions may include, for example, the rollable container identifier and a position identifier. The agent may have information indicating the physical position within the rollable container holder corresponding to the position identifier included in the instructions. In another example, the positions of the rollable container holders may be associated with physical coordinates. In such an implementation, the physical coordinates may be included in the instructions in addition to (or instead of) the position identifier.
After sending the instructions to place the rollable container at a position, it is determined that the rollable container has been placed at the position, as in 1208. For example, the agent may send a placement confirmation indicating that the rollable container has been placed at the indicated position. In another example, one or more sensors (e.g., load cells, pressure sensors, and presence detection sensors) may be located at each position within the rollable container holder and when the item is placed at the position a confirmation message may be generated and sent by the sensor. In still another example, the entire rollable container holder may be positioned on a sensor, such as a load cell, that can detect a change in a weight of the rollable container holder. When the rollable container is placed at the position, the total weight of the rollable container holder increases. Such an increase in total weight may be determinative that the rollable container has been placed at the position on the rollable container holder.
Upon determining that the rollable container has been placed at the determined position on the rollable container holder, the rollable container identifier of the rollable container is associated with the position identifier corresponding to the position at which the rollable container was placed, as in 1210. In some implementations, the association between the rollable container identifier and the position identifier is maintained in a data store by the inventory management system. When a rollable container identifier is associated with a position identifier, the position is no longer considered open.
Upon receiving the pick instruction, the position of the rollable container within a rollable container holder is determined, as in 1304. As discussed above, an association between a position identifier and a rollable container identifier may be maintained in a data store by the inventory management system. Accordingly, the inventory management system may query the data store to determine the position of the rollable container that includes the ordered item.
Based on the determined position of the rollable container, instructions are sent to pick the rollable container from the position within the rollable container holder, as in 1306. The pick instructions may be sent to an agent (e.g., human and/or robotic unit) that positions itself adjacent the position of the rollable container and picks the rollable container from the position, according to the pick instructions. Picking may include directly picking the rollable container from the position or shifting one or more rows and/or columns of rollable containers so that the rollable container to be picked is moved out of the rollable container holder or moved to a position at which it can be picked by the agent.
As discussed above, prior to and/or as part of a picking operation, the rollable containers may be re-arranged or re-sequenced within the rollable container holder. For example, different rollable containers within the rollable container holder may be moved or shifted until a sequence of rollable containers has been established according to the instructions.
Returning to
Once the rollable container has been picked, an association between the position from which the rollable container was picked and the rollable container is removed such that the position is indicated as an open position into which another rollable container may be placed, as in 1310.
In some implementations, an agent 1410, such as a robotic unit, may include a conveyance mechanism 1412 that may be positioned at ends of each horizontally attached pair of rows 1408, 1409. The agent 1410 may move the rollable containers between rows by pushing a rollable container into one row, such as row 1408, which causes a rollable container to be pushed out of the adjacent row 1409 and into the conveyance mechanism 1412. The rollable container that is pushed into the conveyance mechanism 1412 may then be routed through the conveyance mechanism 1412 and pushed into the first row 1408, causing another rollable container to exit the end of the row 1409 into the conveyance mechanism. This process may continue until the rollable container to be picked is pushed out of a row 1409 and into the conveyance mechanism 1412.
As will be appreciated, the conveyance mechanism 1412 and/or another agent may move rollable containers in either direction between rows. Likewise, while this example shows a pair of rows connected by curved end rails, in some implementations multiple rows (e.g., 3 or more) may be connected such that when a rollable container is pushed into the end of one row, the rollable containers of the connected rows shift. In such a configuration, the curved ends are placed on opposing ends of each pair of rows so that the connected rows form an S like pattern, thereby allowing the rollable containers to move between rows. In still another example, rather than connecting adjacent horizontal rows, in some implementations, adjacent vertical rows may be connected such that rollable containers may be moved between vertical rows.
Returning to
Likewise, in some implementations, rather than the ends of adjacent rows coupled with curved rails such that the rollable containers may be pushed into and exit the rows from a same end, as illustrated in
Upon detection of a rollable container at a rollable container holder, the rollable container is inserted into the open end of the row in the rollable container holder, as in 1504. As discussed above, an agent may include a conveyance mechanism that can be used to insert a rollable container into an open end of a row within the rollable container holder. In other implementations, any form of agent (human and/or robotic) may be used to insert the detected rollable container into the open end of the row of the rollable container holder.
Upon insertion of the rollable container into the open end of the rollable container holder, the rollable container identifier corresponding to the inserted rollable container is associated with the first position of the row into which it was inserted, as in 1506. In some implementations, the association between the rollable container identifier and the position identifier corresponding to the first position of the row is maintained in a data store by the inventory management system.
In addition to associating the rollable container identifier with the position identifier corresponding to the first position in the row, the associations between rollable container identifiers corresponding to rollable containers stored in the row, or a connected row, are updated to correspond to the next adjacent position to which they have been moved, as in 1508. As discussed above, when a rollable container is inserted into an open end of a row, the other rollable containers already stored in the row, or a connected row, are moved one position due to the insertion of the rollable container. Accordingly, the association between the position identifier and the rollable container identifiers for each rollable container stored in the row or a connected row is updated to correspond to the new position of the rollable container(s).
Upon receiving the pick instruction, the position of the rollable container within a rollable container holder is determined, as in 1604. As discussed above, an association between a position identifier and a rollable container identifier may be maintained in a data store by the inventory management system. Accordingly, the inventory management system may query the data store to determine the position of the rollable container that includes the ordered item.
Based on the determined position of the rollable container, a determination is made as to the number of moves needed to reposition the rollable container such that the rollable container to be picked is at the end of a row or pushed out of the end of a row, as in 1606. For example, as discussed above with respect to
Based on the position of the rollable container and the determined number of moves, pick instructions are sent that cause the rollable container to be picked from the rollable container holder, as in 1608. The pick instructions may be sent to an agent (e.g., human and/or robotic unit) that positions itself adjacent the open ends of a pair of rows that are connected at an opposing end, according to the pick instructions. Picking may include the agent inserting a first rollable container into an open end of a row such that the rollable container stored in that row and the connected rows shift, causing a rollable container to exit the adjacent, connected row. The rollable container that exits the adjacent, connected row may be received by the agent and used as the next rollable container inserted into the row. This process of inserting a rollable container into one row to cause the stored rollable containers to shift and push a rollable container out of an adjacent row continues for the corresponding number of moves indicated in the pick instructions until the rollable container to be picked is pushed out of the end of a row.
A determination is then made that the rollable container has been picked, as in 1610. It may be determined that the rollable container has been picked by, for example, it being detected on the gravity feed conveyance systems, no longer being able to detect a presence of a rollable container identifier, receiving a pick confirmation from an agent that picked the rollable container, etc. In some implementations, one or more sensors at the exit or opening of a row may detect the rollable container identifier as it is pushed out of the row to the agent, thereby indicating that the rollable container has been picked.
Upon determining that the rollable container has been picked, a position of each of the rollable containers that remain in the rollable container holder and stored on the rows in which rollable containers were moved is updated, as in 1612. For example, if three moves of pushing a rollable container into the end of a row were performed, an association between the rollable container identifiers and position identifiers is updated such that the new position of each rollable container corresponds with the position identifier of the position at which the rollable container is now positioned—which, in this example, will be three positions from where it was previously stored.
In other implementations, other forms and/or types of engagement and/or conveyance may be utilized to engage and/or move the rollable containers when they are not moving as a result of gravity. For example, the engagement mechanism may be configured to clasp, grab, push, lift, scoop, etc., a rollable container. In other implementations, if the rollable container 1704 includes a smooth surface, the engagement mechanism may be configured to be secured to the exterior of the rollable container by forming a vacuum (suction) between the exterior surface of the rollable container 1704 and the engagement mechanism. In another example, some or all of the exterior surface of the rollable container 1704 may be formed of a metallic and/or magnetic material. The engagement mechanism may include an electromagnet that when charged attracts the metallic and/or magnetic surface, thereby enabling the engagement mechanism to couple with the rollable container. As will be appreciated, any variety of engagement mechanism or conveyance mechanism may be utilized to couple with and/or move rollable containers.
In this example, the rollable container 1804 includes an upper portion 1804-1 and a lower portion 1804-2 that are joined by a hinge. The rollable container is opened by the lower portion 1804-2 rotating about the hinge such that the upper portion 1804-1 and the lower portion 1804-2 of the rollable container 1804 separate, exposing the interior 1806 of the rollable container. Likewise, by positioning the rollable container above the conveyor 1810, as the lower portion 1804-2 is opened, the item 1800 will exit the interior 1806 of the rollable container 1804 under the force of gravity and come to rest on the conveyor 1810.
As discussed above, the upper portion 1804-14 and the lower portion 1804-2 may be secured in a closed position using hooks, magnets, etc. In one implementation, if the upper portion 1804-1 and the lower portion 1804-2 are secured in a closed position using magnets, an electromagnet may be introduced that counteracts the attraction of the magnets that secure the upper portion 1804-1 and the lower portion 1804-2, thereby causing the lower portion 1804-2 to separate from the upper portion 1804-1. In other implementations, other forms of release, such as activating a latch, unscrewing the two sections of the rollable container, etc., may be utilized and the example provided in
When an item is removed from the rollable container, it may be further processed and/or packaged. For example, the conveyor 1810 may move the item 1800 to a packing station so that it can be packed with other ordered items for shipment to a customer. In another example, the conveyor 1810 may move the item directly to shipping so that it can be loaded onto a transportation unit and transported to another location.
Various operations of an inventory management system, such as those described herein, may be executed on one or more computer systems, interacting with various other devices in a materials handling facility, according to various implementations. One such computer system is illustrated by the block diagram in
In various implementations, the computer system 1900 may be a uniprocessor system including one processor 1910A, or a multiprocessor system including several processors 1910A-1910N (e.g., two, four, eight, or another suitable number). The processors 1910A-1910N may be any suitable processor capable of executing instructions. For example, in various implementations, the processors 1910A-1910N may be general-purpose or embedded processors implementing any of a variety of instruction set architectures (ISAs), such as the x86, PowerPC, SPARC, or MIPS ISAs, or any other suitable ISA. In multiprocessor systems, each of the processors 1910A-1910N may commonly, but not necessarily, implement the same ISA.
The non-transitory computer-readable storage medium 1920 may be configured to store executable instructions and/or data accessible by the one or more processors 1910A-1910N. In various implementations, the non-transitory computer-readable storage medium 1920 may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type of memory. In the illustrated implementation, program instructions and data implementing desired functions and/or processes, such as those described above, are shown stored within the non-transitory computer-readable storage medium 1920 as program instructions 1925 and data storage 1935, respectively. In other implementations, program instructions and/or data may be received, sent or stored upon different types of computer-accessible media, such as non-transitory media, or on similar media separate from the non-transitory computer-readable storage medium 1920 or the computer system 1900. Generally speaking, a non-transitory, computer-readable storage medium may include storage media or memory media such as magnetic or optical media. e.g., disk or CD/DVD-ROM coupled to the computer system 1900 via the I/O interface 1930. Program instructions and data stored via a non-transitory computer-readable medium may be transmitted by transmission media or signals such as electrical, electromagnetic, or digital signals, which may be conveyed via a communication medium such as a network and/or a wireless link, such as may be implemented via the network interface 1940.
In one implementation, the I/O interface 1930 may be configured to coordinate I/O traffic between the processors 1910A-1910N, the non-transitory computer-readable storage medium 1920, and any peripheral devices, including the network interface 1940 or other peripheral interfaces, such as input/output devices 1950. In some implementations, the I/O interface 1930 may perform any) necessary protocol, timing or other data transformations to convert data signals from one component (e.g., non-transitory computer-readable storage medium 1920) into a format suitable for use by another component (e.g., processors 1910A-1910N). In some implementations, the I/O interface 1930 may include support for devices attached through various types of peripheral buses, such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard, for example. In some implementations, the function of the I/O interface 1930 may be split into two or more separate components, such as a north bridge and a south bridge, for example. Also, in some implementations, some or all of the functionality of the I/O interface 1930, such as an interface to the non-transitory computer-readable storage medium 1920, may be incorporated directly into the processors 1910A-1910N.
The network interface 1940 may be configured to allow data to be exchanged between the computer system 1900 and other devices attached to a network, such as other computer systems, or between nodes of the computer system 1900. In various implementations, the network interface 1940 may support communication via wired or wireless general data networks, such as any suitable type of Ethernet network.
Input/output devices 1950 may, in some implementations, include one or more displays, projection devices, audio output devices, keyboards, keypads, touchpads, scanning devices, voice or optical recognition devices, or any other devices suitable for entering or retrieving data by one or more computer systems 1900. Multiple input/output devices 1950 may be present in the computer system 1900 or may be distributed on various nodes of the computer system 1900. In some implementations, similar input/output devices may be separate from the computer system 1900 and may interact with one or more nodes of the computer system 1900 through a wired or wireless connection, such as over the network interface 1940.
As shown in
Those skilled in the art will appreciate that the computing system 1900 is merely illustrative and is not intended to limit the scope of implementations. In particular, the computing system and devices may include any combination of hardware or software that can perform the indicated functions, including computers, network devices, internet appliances, wireless phones, tablets, etc. The computing system 1900 may also be connected to other devices that are not illustrated, or instead may operate as a stand-alone system. In addition, the functionality provided by the illustrated components may in some implementations be combined in fewer components or distributed in additional components. Similarly, in some implementations, the functionality of some of the illustrated components may not be provided and/or other additional functionality may be available.
Those skilled in the art will appreciate that, in some implementations, the functionality provided by the methods and systems discussed above may be provided in alternative ways, such as being split among more software modules or routines or consolidated into fewer modules or routines. Similarly, in some implementations, illustrated methods and systems may provide more or less functionality than is described, such as when other illustrated methods instead lack or include such functionality respectively, or when the amount of functionality that is provided is altered. In addition, while various operations may be illustrated as being performed in a particular manner (e.g., in serial or in parallel) and/or in a particular order, those skilled in the art will appreciate that, in other implementations, the operations may be performed in other orders and in other manners. The various methods, apparatus, and systems as illustrated in the figures and described herein represent example implementations. The methods and systems may be implemented in software, hardware, or a combination thereof in other implementations. Similarly, the order of any method may be changed and various elements may be added, reordered, combined, omitted, modified, etc., in other implementations.
From the foregoing, it will be appreciated that, although specific implementations have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the appended claims and the elements recited therein. In addition, while certain aspects are presented below in certain claim forms, the inventors contemplate the various aspects in any available claim form. For example, while only some aspects may currently be recited as being embodied in a computer-readable storage medium, other aspects may likewise be so embodied. Various modifications and changes may be made as would be obvious to a person skilled in the art having the benefit of this disclosure. It is intended to embrace all such modifications and changes and, accordingly, the above description is to be regarded in an illustrative rather than a restrictive sense.