An input coordinate point on a display device is obtained from a pointing device. Based on the input coordinate point, an object is moved to a position in the virtual space, the position corresponding to the input coordinate point. Then, the display device is caused to display the virtual space on a display area. As the object moves in the virtual game world, the entire displayable area on the display area that represents the virtual world is set, only a subset of which is displayed on the display area based on the position of the object, which subset scrolls along with the movement of the object. Depending on the position on the displayed area in accordance with the movement of the object, either the displayed area moves or a position of the object relative to the displayed area moves.

Conventionally, there has been an apparatus for moving an object such as a player character, which apparatus is, for example, a personal computer, game apparatus or the like which is operated by a pointing device for inputting a coordinate point on a display screen. For example, Japanese Laid-Open Patent Publication No. 2000-181617 (hereinafter, referred to as Patent Document 1) discloses a scroll control method for performing a pointing operation, e.g., moving a cursor or scrolling a screen, based on an input of a coordinate point designated by a touch pad which is a pointing device.
However, the method disclosed by the above Patent Document 1 requires at least two areas to be used in order to perform both screen scroll and cursor control by touch operations. This increases the number of operations to be performed. Further, a scroll area is not provided in such a position, in relation to a display screen, as to allow the user to perform screen scrolling intuitively and easily. Therefore, when moving an object in accordance with a coordinate point input by using the method disclosed by the Patent Document 1, the user is not allowed to perform an intuitive operation input.
Therefore, feature of certain exemplary embodiments is to provide an information processing apparatus and a storage medium for storing an information processing program, which allow, in operations for moving an object by using coordinate point inputs provided from a pointing device, operation inputs to be performed more easily and intuitively. Another feature of certain exemplary embodiments is to provide an information processing apparatus and a storage medium storing an information processing program, which allow both a moving direction and a destination of the object to be specified by a series of operation inputs.
Certain exemplary embodiments have the following aspects to achieve the features mentioned above. Note that reference numerals, step numbers and the like indicated between parentheses are merely provided to facilitate the understanding of the certain exemplary embodiments and are not intended to be limiting in any way.
A first aspect is an information processing apparatus (1) for displaying a virtual space on a display device (12) and moving an object (PC) in the virtual space in accordance with an output from a pointing device (15), which pointing device outputs an input coordinate point (TP) based on a screen coordinate system of the display device in accordance with an operation performed by a user. The information processing apparatus comprises coordinate point obtaining means (CPU core 21 performing steps 53 and 93; hereinafter, only step numbers will be mentioned), control selection means (S52, S92), first control means (S53 to S55, S57, S58, S94, S95), second control means (S56 to S58, S96 to S98) and display control means (S59, S99). The coordinate point obtaining means obtains the input coordinate point from the pointing device. The control selection means selects, based on an operation performed by the user, either one of a first control and a second control which is different from the first control. The first control means calculates, when the control selection means has selected the first control, a movement vector (Pm, M) based on the input coordinate point and a predetermined coordinate point (Ppc, center of the screen), and moves a display area of the virtual space in accordance with the movement vector, which display area is displayed on the display device. The second control means moves, when the control selection means has selected the second control, the object to a position (Pm) in the virtual space, the position corresponding to the input coordinate point. The display control means causes the display device to display the virtual space within the display area. Here, the pointing device is an input device for designating an input position or coordinate point on a screen. Such a pointing device is realized in, e.g., a system for detecting a position on a screen which is pointed by a touch panel, mouse, track pad, track ball, a housing of a game controller, or the like.
In a second aspect based on the first aspect, the pointing device is a touch panel (15) covering a display screen of the display device. The coordinate point obtaining means obtains, as the input coordinate point, a touch coordinate point (TP) outputted from the touch panel. The control selection means selects the first control when the user is performing a touch operation on the touch panel, and selects the second control when the user is not performing a touch operation on the touch panel. When the touch panel is in a state of being touched, the first control means calculates the movement vector based on a current touch coordinate point obtained by the coordinate point obtaining means and the a predetermined coordinate point. When the touch panel is in a state of not being touched, the second control means moves the object to a position in the virtual space, the position corresponding to the touch coordinate point which the coordinate point obtaining means has obtained immediately before the touch-panel has entered the state of not being touched.
In a third aspect based on the second aspect, when the touch panel is in the state of being touched, the first control means moves the object in the virtual space in accordance with the movement vector, and then, based on a position of the object, moves the display area of the virtual space which is displayed on the display device.
In a fourth aspect based on the second aspect, the second control means further moves, based on the position of the object in the virtual space, the display area of the virtual space which is displayed on the display device.
In a fifth aspect based on the third aspect, the first control means determines, based on a position of a touch coordinate point on the display screen of the display device, a moving velocity (V) at which the object moves within the virtual space.
In a sixth aspect based on the second aspect, the movement vector is a vector from a predetermined coordinate point on the touch panel to the touch coordinate point.
In a seventh aspect based on the second aspect, the movement vector is a vector from a predetermined coordinate point in the virtual space to a coordinate point in the virtual space which coincides with the touch coordinate point.
In an eighth aspect based on the second aspect, the movement vector is a vector from a coordinate point indicating a position of the object placed in the virtual space to a coordinate point in the virtual space which coincides with the touch coordinate point.
In a ninth aspect based on the second aspect, the first control means: calculates the movement vector from a coordinate point indicating a position of the object placed in the virtual space to a coordinate point in the virtual space which coincides with the current touch coordinate point obtained by the coordinate point obtaining means; moves the object within the virtual space in accordance with the movement vector; and moves the display area of the virtual space such that the position of the object is at a center of the display area. The second control means moves the object to a position in the virtual space, which position coincides with the touch coordinate point which the coordinate point obtaining means has obtained immediately before the touch-panel has entered the state of not being touched, and moves the display area of the virtual space such that the position of the object is at the center of the display area.
An eleventh aspect is an information processing apparatus for displaying a virtual space on a display device and moving an object in the virtual space in accordance with an output from a pointing device, which pointing device outputs an input coordinate point based on a screen coordinate system of the display device in accordance with an operation performed by a user. The information processing apparatus comprises coordinate point obtaining means (S113), control selection means (S112), first control means (S114, S115), second control means (S116 to S118) and display control means (S119). The coordinate point obtaining means obtains the input coordinate point from the pointing device. The control selection means selects, based on an operation performed by the user, either one of a first control and a second control which is different from the first control. The first control means calculates, when the control selection means has selected the first control, a movement vector based on the an input coordinate point and a predetermined coordinate point, and moves the object within the virtual space in accordance with the movement vector. The second control means moves, when the control selection means has selected the second control, the object to a position in the virtual space, the position corresponding to the input coordinate point. The display control means causes the display device to display a display area of the virtual space.
In a twelfth aspect based on the eleventh aspect, the pointing device is a touch panel covering a display screen of the display device. The coordinate point obtaining means obtains, as the input coordinate point, a touch coordinate point outputted from the touch panel. The control selection means selects the first control when the user is performing a touch operation on the touch panel, and selects the second control when the user is not performing a touch operation on the touch panel. When the touch panel is in a state of being touched, the first control means calculates the movement vector based on a current touch coordinate point obtained by the coordinate point obtaining means and the predetermined coordinate point. When the touch panel is in a state of not being touched, the second control means moves the object to a position in the virtual space, the position corresponding to the touch coordinate point which the coordinate point obtaining means has obtained immediately before the touch-panel has entered the state of not being touched.
In tenth and thirteenth aspects respectively based on the first and eleventh aspects, the control selection means selects the first control when a predetermined operation signal different from the input coordinate point is being inputted, and selects the second control when the predetermined operation signal is not inputted. When the predetermined operation signal is being inputted, the first control means calculates the movement vector based on a current input coordinate point obtained by the coordinate point obtaining means and the predetermined coordinate point. When the predetermined operation signal is not inputted, the second control means moves the object to a position in the virtual space, the position corresponding to the input coordinate point which the coordinate point obtaining means has obtained immediately before the predetermined operation signal has ceased to be inputted. Here, referred to as the predetermined operation signal is a signal indicating a presence, absence or change of an input which is different from a coordinate point input. For example, either one of the first and second controls is selected based on: whether or not an operation button provided on a controller is being pressed; a change in a signal from a detection unit (such as an acceleration sensor) provided on the controller; or a change in a voice inputted to voice input means such as a microphone.
A fourteenth aspect is a storage medium storing an information processing program to be executed by a computer (21) of an information processing apparatus for displaying a virtual space on a display device and moving an object in the virtual space in accordance with an output from a pointing device, which pointing device outputs an input coordinate point based on a screen coordinate system of the display device in accordance with an operation performed by a user. The information processing program causes the computer to function as coordinate point obtaining means, control selection means, first control means, second control means and display control means. The coordinate point obtaining means obtains the input coordinate point from the pointing device. The control selection means selects, based on an operation performed by the user, either one of a first control and a second control which is different from the first control. The first control means calculates, when the control selection means has selected the first control, a movement vector based on the input coordinate point and a predetermined coordinate point, and moves a display area of the virtual space in accordance with the movement vector, which display area is displayed on the display device. The second control means moves, when the control selection means has selected the second control, the object to a position in the virtual space, the position corresponding to the input coordinate point. The display control means causes the display device to display the virtual space within the display area.
A twenty-fourth aspect is a storage medium storing an information processing program to be executed by a computer of an information processing apparatus for displaying a virtual space on a display device and moving an object in the virtual space in accordance with an output from a pointing device, which pointing device outputs an input coordinate point based on a screen coordinate system of the display device in accordance with an operation performed by a user. The information processing program causes the computer to function as coordinate point obtaining means, control selection means, first control means, second control means and display control means. The coordinate point obtaining means obtains the input coordinate point from the pointing device. The control selection means selects, based on an operation performed by the user, either one of a first control and a second control which is different from the first control. The first control means calculates, when the control selection means has selected the first control, a movement vector based on the input coordinate point and a predetermined coordinate point, and moves the object within the virtual space in accordance with the movement vector. The second control means moves, when the control selection means has selected the second control, the object to a position in the virtual space, the position corresponding to the input coordinate point. The display control means causes the display device to display a display area of the virtual space.
In fifteenth and twenty-fifth aspects respectively based on the fourteenth and twenty-fourth aspects, the pointing device is a touch panel covering a display screen of the display device. The coordinate point obtaining means obtains, as the input coordinate point, a touch coordinate point outputted from the touch panel. The control selection means selects the first control when the user is performing a touch operation on the touch panel, and selects the second control when the user is not performing a touch operation on the touch panel. When the touch panel is in a state of being touched, the first control means calculates the movement vector based on a current touch coordinate point obtained by the coordinate point obtaining means and the predetermined coordinate point. When the touch panel is in a state of not being touched, the second control means moves the object to a position in the virtual space, the position corresponding to the touch coordinate point which the coordinate point obtaining means has obtained immediately before the touch-panel has entered the state of not being touched.
In sixteenth and twenty-sixth aspects respectively based on the fifteenth and twenty-fifth aspects, when the touch panel is in the state of being touched, the first control means moves the object in the virtual space in accordance with the movement vector, and then, based on a position of the object, moves the display area of the virtual space which is displayed on the display device.
In seventeenth and twenty-seventh aspects respectively based on the fifteenth and twenty-fifth aspects, the second control means further moves, based on the position of the object in the virtual space, the display area of the virtual space, which is displayed on the display device.
In eighteenth and twenty-eighth aspects respectively based on the sixteenth and twenty-sixth aspects, the first control means determines, based on a position of a touch coordinate point on the display screen of the display device, a moving velocity at which the object moves within the virtual space.
In nineteenth and twenty-ninth aspects respectively based on the fifteenth and twenty-fifth aspects, the movement vector is a vector from a predetermined coordinate point on the touch panel to the touch coordinate point.
In twentieth and thirtieth aspects respectively based on the fifteenth and twenty-fifth aspects, the movement vector is a vector from a predetermined coordinate point in the virtual space to a coordinate point in the virtual space which coincides with the touch coordinate point.
In twenty-first and thirty-first aspects respectively based on the fifteenth and twenty-fifth aspects, the movement vector is a vector from a coordinate point indicating a position of the object placed in the virtual space to a coordinate point in the virtual space which coincides with the touch coordinate point.
In twenty-second and thirty-second aspects respectively based on the fifteenth and twenty-fifth aspects, the first control means: calculates the movement vector from a coordinate point indicating a position of the object placed in the virtual space to a coordinate point in the virtual space which coincides with the current touch coordinate point obtained by the coordinate point obtaining means; moves the object within the virtual space in accordance with the movement vector; and moves the display area of the virtual space such that the position of the object is at a center of the display area. The second control means moves the object to a position in the virtual space, which position coincides with the touch coordinate point which the coordinate point obtaining means has obtained immediately before the touch-panel has entered the state of not being touched, and moves the display area of the virtual space such that the position of the object is at the center of the display area.
In twenty-third and thirty-third aspects respectively based on the fourteenth and twenty-fourth aspects, the control selection means selects the first control when a predetermined operation signal different from the input coordinate point is being inputted, and selects the second control when the predetermined operation signal is not inputted. When the predetermined operation signal is being inputted, the first control means calculates the movement vector based on a current input coordinate point obtained by the coordinate point obtaining means and the predetermined coordinate point. When the predetermined operation signal is not inputted, the second control means moves the object to a position in the virtual space, the position corresponding to the input coordinate point which the coordinate point obtaining means has obtained immediately before the predetermined operation signal has ceased to be inputted.
According to the above first aspect, an operation for continuously moving the display area and an operation for specifying a destination of the object can be both performed by a series of operations performed by a user. In other words, the user is allowed to specify the destination of the object while changing the display area displayed on the display screen, and perform such an operation intuitively.
The above third aspect enables an operation, for moving the display area in accordance with the position of the object while continuously moving the object, to be performed in response to the touch operation performed on the touch panel.
The above fourth aspect allows an operation, for moving the display area in accordance with the position of the object while moving the object to a position at which a touch operation has been performed immediately before the touch panel has entered the state of not being touched, to be performed in response to a cessation of the touch operation on the touch panel.
According to the above fifth aspect, the moving velocity of the object changes based on a position touched by the user. For example, a game process, for causing the moving velocity which is set when an outer edge portion of the touch panel is touched to be higher than the moving velocity which is set when a position near the center of the touch panel is touched, is allowed to be performed.
According to the above sixth aspect, the object can be moved in accordance with the movement vector based on the touch panel coordinate system.
According to the above seventh aspect, the object can be moved in accordance with the movement vector based on a coordinate system set in the virtual space.
According to the above eighth aspect, in the coordinate system set in the virtual space, the object can be moved in accordance with the movement vector based on the position of the object placed in the virtual space.
The above ninth aspect enables an operation, for moving the display area in accordance with the position of the object while continuously moving the object, to be performed in response to the touch operation performed on the touch panel, and also enables an operation, for moving the display area in accordance with the position of the object while moving the object to a position at which a touch operation has been performed immediately before the touch panel has entered the state of not being touched, to be performed in response to a cessation of the touch operation on the touch panel.
According to the above eleventh aspect, an operation for continuously moving the object and an operation for specifying the destination of the object can be both performed by a series of operations performed by the user. In other words, the user is allowed to specify the destination of the object while continuously moving the object, and perform such an operation intuitively.
According to the above second and twelfth aspects, in the case where a touch panel is used as a pointing device, a plurality of operation instructions can be intuitively given by a series of touch operations from a start of a touch operation to a time point immediately after the touch panel has entered the state of not being touched.
According to the above tenth and thirteenth aspects, a plurality of operation instructions can be intuitively given based on a series of coordinate point input operations, by selecting the first control or second control in accordance with whether or not an operation signal is being inputted, for example, whether or not an operation button is being pressed.
Further, according to the storage medium storing the information processing program of certain exemplary embodiments, the same effects as those of the above-described information processing apparatus can be obtained.
These and other features, aspects and advantages of the certain exemplary embodiments described herein will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings.

Information processing apparatus and storage medium for storing information processing program


An embodiment of the invention provides a method for exploiting stateless and stateful data parallelism in a streaming application, wherein a compiler determines whether an operator of the streaming application is safe to parallelize based on a definition of the operator and an instance of the definition. The operator is not safe to parallelize when the operator has selectivity greater than 1, wherein the selectivity is the number of output tuples generated for each input tuple. Parallel regions are formed within the streaming application with the compiler when the operator is safe to parallelize. Synchronization strategies for the parallel regions are determined with the compiler, wherein the synchronization strategies are determined based on the definition of the operator and the instance of the definition. The synchronization strategies of the parallel regions are enforced with a runtime system.

The present invention is in the field of systems, methods, and computer program products for the automatic exploitation of data parallelism in streaming applications.
Stream processing is a programming paradigm that naturally exposes task and pipeline parallelism. While pipeline and task parallelism occur naturally in stream graphs, data parallelism requires intervention. In the streaming context, data parallelism involves splitting data streams and replicating operators. The parallelism obtained through replication can be more well-balanced than the parallelism that exists in a particular stream graph, and can be more easily scaled to the resources at hand. Such data parallelism allows operators to take advantage of additional cores and hosts that the task and pipeline parallelism are unable to exploit.

This patent is subject to a terminal disclaimer.

Automatic exploitation of data parallelism in streaming applications

International Business Machines Corporation


A backpack type hair dryer with a heated air bonnet includes a housing having a pair of shoulder straps positioned on a front surface for securing the housing to a wearer's back. A hot air blower assembly is mounted on the rear surface of the housing. A flexible hose is connected to the blower assembly and includes a wearable head bonnet at a distal end. Accordingly, a user can dry his or her hair while simultaneously wandering and performing other tasks.

1. Technical Field of the Invention
The present invention relates to a portable, backpack type hair dryer that allows a user to meander while the dryer is in use so that other tasks can be performed simultaneously therewith.
2. Description of the Prior Art
Most people have busy schedules and are constantly trying to maximize their available time. Few chores waste more time than hair drying, particularly as it pertains to women, or those with long hair. Many conventional hair dryers include a bonnet that rests on or immediately above the head allowing a user to read or perform similar tasks while seated. However, because the user must remain seated in order for the hair to be dried, the type of tasks that he or she can perform is limited. Accordingly, there is currently a need for a portable device that would allow a user to meander while his or her hair is being dried, allowing the user to simultaneously perform a broader range of tasks.
The present invention addresses this need by providing a backpack style hair dryer that allows a user to freely wander while the dryer is operating. Furthermore, the device includes a wearable bonnet that frees the user's hands to perform other tasks.

Backpack hair dryer with heated air bonnet


The present invention provides active fiducials for use with augmented reality client systems. A computer system, a method, and a computer program product are presented, which provide location-registered patterns for providing information regarding objects in an area. The computer system comprises a memory for storing information regarding at least one object, the information including the location of an object. A processor is connected with the memory to retrieve a portion of the information, including the location of the object, from the memory for transmission to the client system via a wireless communication module which is connected with the processor and is configured to detect a compatible client system within communication range of the wireless communication module, and if a compatible client system is detected, to transmit a portion of the information regarding the object, including the location of the object, from the computer system to the client system.

(1) Technical Field
The present invention is related to the field of augmented reality, and more particularly to objects (fiducials) used to enhance the capabilities of augmented reality systems by providing location information and additional information regarding the objects.
(2) Discussion
Registration of virtual objects to real world objects is currently one of the most difficult challenges in building effective augmented reality systems. Accurate head tracking is a key part of this problem. Video see-through augmented reality systems have been demonstrated that use a video-based tracking system to track the location, in the video, of fiducial objects of known position and use these tracker measurements to estimate head orientation and location of the user. One drawback with these systems is that the location and appearance of the fiducials must be known in advance. This limits the use of fiducial-based tracking in actual working environments.
Two examples of fiducial use with augmented reality systems are disclosed in U.S. Pat. No. 6,064,749 to Hirota et al. and U.S. Pat. No. 5,926,568 to Chaney et al. U.S. Pat. No. 6,064,749 discloses a system in which landmarks are found in input image sequences and are used as fiducials to track the camera position and orientation. However, using landmarks requires knowledge of the landmark locations. Landmark locations serve as "passive" fiducials in the sense that they do not actively provide information to the augmented reality system. Rather, their location is already known and their world space positions are precisely calibrated in the system. U.S. Pat. No. 5,926,568 is similar in the sense that it uses known landmarks, but it provides an image-based object matching technique that uses passive fiducials.
Other examples of fiducial uses with augmented reality systems are discussed in the literature. The references provided below provide a combination of patents and articles that can assist the reader in obtaining a thorough overview of the current state of the art. A few examples of systems for which references are provided include that by Kangas et al. wherein a system is described in which real objects transmit code and data via a wireless communication link. The information passed is primarily for the purpose of explaining and facilitating the use of the objects.
Starner et al. describe a system in which visual tags are used on active objects to identify, to the augmented reality system, the room in which a user resides. The user location is determined by a priori knowledge of the location of objects.
A video see-through system in which passive machine-readable tags (e.g. barcodes) are read by the augmented reality system is presented in Rekimoto. No attempt is made, however, to use the data for head tracking, and the tags themselves are not active.
Want et al. describe a system in which the user carries an active infrared device into a room. In the room, sensors detect the emanations, compute the user's location, and then relay the information to the user. The system is not intended to track the user's orientation, and there is no mention of an augmented reality application for this system.
Although fiducial objects have been used in varying capacities with augmented reality systems, none of the uses contemplate the use of fiducial objects in an active manner such that they can be discovered and used as fiducials by a video-based tracker in an augmented reality system. Thus, a need exists in the art for a type of fiducial that incorporates an object (fiducial) with an attached or embedded computer system that uses a wireless communication subsystem to broadcast geospatial location, geometry, appearance, and other data to the augmented reality system for use by the video-based tracker. Thus, it is desirable to provide a computer system for providing location-registered patterns that incorporate information regarding objects in an area.
The following references are provided to assist the reader in gaining more knowledge regarding the state of the art in this technical area.


In an analog electrical timepiece with a motor coil, when an external operating member is in a prescribed operating condition, the operating mode of the analog electrical timepiece is set to the data receive mode. Next, the analog timepiece generates a synchronization signal which is in synchronized to an external synchronization signal that is input from outside. Then, the analog electrical timepiece, when the operating mode is the data receive mode by the detection circuit, based on a synchronization signal and a data voltage signal that is a voltage signal induced around the motor coil by a data signal input from outside, generates and outputs a receive data.

1. Field of the Invention
The present invention relates to an electronic timepiece and a control method for the electrical timepiece, and in particular to an analog electronic timepiece with a drive motor and a control method thereof.
2. Description of the Related Art
The present invention relates to an electronic timepiece and a control method for the electrical timepiece, and in particular to an analog electronic timepiece with a drive motor and a control method thereof.

Electronic timepiece, control method for electronic timepiece, regulating system for electronic timepiece, and regulating method for electronic timepiece


A unique system, method, and user interface that facilitate ordering personal items based on past personal interaction between a user and the user's correspondents are provided. In particular, the system provides alternative views of information, such as messages, that is organized around people using an ordering based on the history of communication between the recipient and sender. Social metrics can be calculated based on social metadata associated with the messages, for example. Metrics can be used to configure how or which messages are viewed and their order in one or more pane views. Each pane view can present different orderings of messages—which are displayed by the recipient or sender of the message. So for instance, instead of viewing messages in chronological receipt date, they can be viewed by the message's sender and ordered by the number of messages previously sent to the user.

The volume and use of email has changed dramatically over the past decade. For many early users of email, notes and letters between friends could be sent and received rather quickly and without much cost. However, as the computer age has progressed, so too has the purpose of email. Email has become a critical communication medium for many businesses and organizations. As employees, for example, seek to separate more relevant messages from a swath of less relevant messages, they may tend to feel overwhelmed. This is due in large part to the great amounts of messages to read through in often very little time. Despite the changing use of email and the different behaviors of current email users, user interfaces to support email have remained relatively unchanged. Existing email user interfaces do not provide users with an effective means for assessing their email or other information, in general, in terms of importance, priority, or relevance, particularly when users are constrained by time.
Most people spend a considerable portion of time triaging their email. Those who receive large volumes of email are forced to triage their email more frequently and spend more time triaging throughout the day; failure to do so can result in an overwhelming feeling of information overload. While most people can tell the difference between strangers and the people they know well, unfortunately email clients as well as other client applications lack this basic capability. By way of example, most email clients provide only a limited set of tools to help people efficiently assess or handle their email using information such as who it is from, when it was received, and the subject. In particular, such clients are restricted to sorting this information in a fixed manner: ascending or descending (alphabetical or chronological) order. When receiving large volumes of email, this information does little to help users decide which emails are the most important or which should be handled first, especially when there is little time available to make these assessments. The most important emails given one's current context can be easily buried in the inbox and hard to find. This limits the email client's utility for helping users deal with the increasingly challenging task of managing growing volumes of content along with spam and related email fraud problems.

Ordering personal information using social metadata


A new and distinct Chrysanthemum plant cultivar is disclosed, characterized by having a round growth habit and ray florets that are a dark orange color. The plant naturally blooms during the first two weeks of September.

The new cultivar 'Gedi Three Pora' is a product of an induced mutation of the parent Chrysanthemum plant variety 'Gedi Two Pad' (U.S. Plant Pat. No. 14,501) using gamma ray treatment at a dose of 20 Gy. The new cultivar 'Gedi Three Pora'was discovered and selected by Dirk Pieters in September 2001 in Oostniewkerke, Belgium.
Asexual reproduction of the new cultivar 'Gedi Three Pora' by terminal cuttings and tissue culture was performed in Oxnard, Calif., and has shown that the unique features of this cultivar are stable and reproduced true to type on successive generations.

Chrysanthemum plant named ‘Gedi Three Pora’


An S-cam assembly (33) is disclosed for expanding internal shoe brakes of the type comprising a pair of pivotally mounted brake shoes (17) located within a brake drum (11), each brake shoe carrying a cam follower (31). The assembly comprises an S-cam member (35) comprising a pair of substantially identical working portions (37), each working portion defining a working surface (39) and defining a nominal lift circle having a diameter D1. Each working portion includes a ramp member (43) pivotable about a pin (47) from a retracted position (FIG. 2) in which a ramp surface (51) is disposed within the nominal lift circle. Each ramp member has an extended position (FIG. 5) in which the ramp surface is disposed outward of the nominal lift circle and in engagement with the adjacent cam follower (31) and defining a larger lift circle having a diameter D2. The substantially increased reserve lift is accomplished without increasing the minimum installation diameter of the S-cam assembly.

The present invention relates to rotary cam, expanding internal shoe drum brakes, and in particular, to an S-cam assembly having improved reserve lift capability and improved rollover protection.
Although the present invention is not strictly limited to rotary cam brakes of the S-cam type, but could be used with various other configurations of rotary cam brakes, the invention is especially advantageous when used with S-cam brakes, and will be described in connection therewith. S-cam expanding internal shoe drum brakes are well known in the prior art, as may be seen by reference to U.S. Pat. No. 4,905,800, assigned to the assignee of the present invention and incorporated herein by reference.
Although the conventional, prior art S-cam drum brakes have been commercially successful, those skilled in the art have continually attempted to increase lining wear between relinings. In general, increasing lining wear between relinings requires the use of thicker linings, which is generally satisfactory, but thicker linings require greater cam rise by the S-cam. Those skilled in the art have also attempted to improve the indication to the vehicle operator of the necessity of relining, and decrease the likelihood of cam flip (or rollover). It is believed that those skilled in the art are sufficiently familiar with cam flip, or rollover, and the causes thereof, such that no detailed explanation of the phenomenon is required. It is sufficient to note that, in the event of cam flip, or rollover, the cam would have rotated beyond its intended maximum rotary position, which would permit the brake shoes to move radially inward, out of engagement with the drum, such that no further braking action could occur.
In the above-incorporated U.S. Pat. No. 4,905,800, the working surfaces of the S-cam are provided at their ends with an extremely high rise/low mechanical advantage portion. After a substantial amount of lining wear, in order to move the brake shoes into engagement with the drum, sufficient rotation of the S-cam is necessary that the referenced high-rise, low mechanical advantage portions engage the cam followers, through which radially outward movement is imparted to the brake shoes, urging the brake shoes into engagement with the drums.
Although the improved S-cam of the referenced patent provides the vehicle operator with an indication (greater force required to rotate the S-cam), that the linings are worn, any such increase in "reserve lift" increases the overall diameter (minimum installation diameter) of the S-cam assembly. It is recognized by those skilled in the art that, in a typical installation, the amount of space between the brake shoe return spring and the inside diameter of the brake drum limits the ability to increase the reserve lift, utilizing any of the known prior art structures.


A cat track composed of several track sections when attached end-to-end in other than an endless loop has end caps to retain a ball that rolls freely in the track. Assembled, the sections may be used together with a cat scratcher and/or a cat spa or other animal toy to increase the animal's interest. The sections may be made in different shapes but are capable of being connected end-to-end to define a variety of patterns, either as an endless or open (non-continuous) track.

It is well known that cats easily get bored playing with the same toy, and one important object of this invention is to provide a track that may be assembled in many different configurations so as to provide a number of different challenges to the animal to hold its attention.
In accordance with one aspect of the invention the track when assembled in other than as an endless track, has a feature that returns a ball rolling freely in the track to a central location intermediate the track ends.
In accordance with another aspect of the invention, the track is of modular construction to enable each length of track to be disassembled for cleaning.
Yet another aspect of this invention is the ability to assemble the tracks sections with other cat toys such as a spa and scratcher to form an activity center for an animal.
The cat track of the present invention is composed of several sections that may be linear, curved or of other shapes, and the sections may all be the same or of different configurations. Each track section in accordance with one embodiment of the invention is made up of a base that includes an approximately semi-cylindrical track bottom wall and a similarly curved top wall that serves as a cover. The cover has an elongated opening that extends along a substantial portion of the track section length and is large enough to expose a ball moving in the track over a substantial length, but too small to enable the ball to escape from the track. The cover is also shorter in length than the track bottom, and when an assembled section is attached end-to-end with other track sections or track ends, the shorter covers of the adjacent sections also expose the ball, but the openings are not so large as to enable the ball to escape. The openings at each end of the track sections and in the covers enable the cat to push the ball causing it to roll in the track.
In accordance with another aspect of the invention, the assembly includes end caps that may be used with one or more track section connected end-to-end. The track end caps have tracks that are upwardly inclined from the track sections so as to cause a ball in the track that rolls into an end, to reverse direction and roll toward the other end of the track without further pushing by the animal.
In accordance with yet another aspect of the invention, the track sections may be connected to other toys as an assembly, of interest to the animal. Examples of such toys are a cat spa and scratcher.
The invention will be better understood and appreciated from the following detailed description read in connection with the accompanying drawings.


A compact Keplerian optical system includes a telescope having an image-rotator (Pechan roof prism pair), and an eyepiece and objective lens operative to form an intermediate image plane within the image-rotator, thereby decreasing the overall length. The objective lens optionally forms part of a replaceable cap, and plurality of replaceable caps may be provided, each with a different focal length to adjust for working distance. In the preferred embodiments, the eyepiece includes a singlet and a doublet lens to minimize eyestrain, and the objective lens includes a doublet and singlet field lens operative to increase depth of field and field of view. A practical implementation includes a pair of the telescopes, one for each eye of a user. Such a configuration may take the form of loupes mounted relative to eyeglass frames for surgical, medical or dental viewing applications.

To assist physicians, surgeons and dentists in observing smaller body parts, various telescopes or loupes are commercially available. These loupes are typically either of the Galilean or Keplerian design types, which may be pivotally mounted on eyeglass frames or fixed into the lens.
Keplerian optics design is typically used for higher magnification applications, and image-rotating components such as a pair of roof Pechan prisms is typically utilized to form an erect image. Such prisms are relatively heavy, and are located in the optical path in between the objective and the eyepiece.
A typical prior-art telescopic loupe based upon a Keplerian optical system is shown in FIG. 1. The objective lens shown generally at 102, the eyepiece lens is shown generally at 104, and the image-rotator (prisms) is shown generally at 106. The objective forms an image plane 110 which is outside the image-rotator 106 and the eyepiece relays the image to the entrance pupil of the eye 116. The objective 102 can be mounted on a threaded ring, so that it can be moved forward and backward to adjust for a working distance. Item 112 is a replaceable transparent protective cap, and item 114 is an optional prescription lens.
With this particular design, the distance between the cap 112 and the back of the eyepiece 104 is over 54 mm, and the distance from the eyepiece to the eye is another 16 mm, resulting in the design having a length of over 70 mm. The length and weight of the components in such a design may result in an undesirable cantilever effect, particularly when the telescopes are mounted through lenses or supported on eyeglass frames as part of a surgical/medical/dental loupe configuration.


An erosion control log and method for packing and handling erosion control logs. In one aspect, the erosion control logs are formed, stacked, compressed and prepared for delivery while retaining maximum decompressibility.

1. Technical Field of the Invention
The present invention relates generally to erosion control logs and, more specifically to the packing and handling thereof and, more particularly, but not by way of limitation, to a system and method for selectively stacking, configuring, compressing, securing and subsequently handling a plurality of erosion control logs adapted for delivery to field site, for the reduction of soil erosion.
2. History of Related Art
For many years, erosion control blankets and logs have achieved widespread commercial acceptance. Their use is worldwide. Erosion control blankets in general are discussed in co-pending U.S. patent application Ser. No. 09/648,906, assigned to the assignee of the present invention. As referenced therein, the blankets resemble a form of fibrous matting in which outer layers of netting or other material are commonly used to form an envelope or covering about a fibrous interior filler layer of the type commonly used to reduce soil erosion and runoff from erosion-prone areas such as highway embankments or water drainage ditches. They may be manufactured from a variety of materials.
Another erosion control device is the "erosion control log". Erosion control logs utilize fibers packaged within an elongate bag-type of structure for reducing hydraulic energy and filtering sediment-laden runoff. One such erosion control log is sold under the trademark Curlex® sediment log sold by the assignee of the present invention. The sediment log is manufactured from excelsior, also known as wood wool. The log is thus very porous, allowing water to pass through the wood wool, or excelsior matrix, progressively slowing velocity and filtering sediment as it passes through the log diameter. Sediment logs of this type are extremely flexible and contour to the terrain to maintain intimate contact with the subgrade. Additionally, they come with other benefits such as being lightweight, requiring no trenching, substantially eliminating disposal hassles, and being reusable while holding their shape. Such sediment logs are commonly used in place of straw and hay bail checks, which have been shown to be less than capable of prolonged use in heavy rains wherein the hay bail structurally degrades resulting in the hay fibers being washed downstream, possibly to clog various water flow outlets. This situation can exacerbate flooding issues. Similarly, silt fences, also commonly used, are prone to being knocked down when rain or strong winds are present, or when run over by vehicles. The time required to pick up lose hay fibers from hay bails and/or to remove worn out, or dysfunctional silt fences, which must be taken typically to land fills, imposes increased expense to contractors trying to meet the ever-growing number of federal, state and municipal regulations. These regulations are increasingly requiring erosion control around construction sites. Additionally, new regulations are placing limitations on dumping waste material in land fills and restricting the burning of waste materials.
Examples of other prior art structures include those shown in U.S. Pat. Nos. 5,595,458 and 6,109,835, both assigned to Grabhorn, Inc. These patents describe water permeable erosion control bags having flexible mesh walls and wood fiber fragments contained therein. U.S. Pat. No. 5,419,659 to Mercer describes a mesh structure having openings and can be used as a sack or a bag. The structure of U.S. Pat. No. 5,419,659 may be formed into a tubular biaxially stretched mesh structure closed at the top and bottom ends.
Other teachings are present in the above-referenced and following patents, and comments made herein are in no way intended to imply any limitations in the teachings thereof but only to specifically address certain aspects for purposes of describing the related art. The entirety of each of the references cited herein should be reviewed for a full understanding of the related art relative to the present invention.
Additional references to erosion control structures include that shown in U.S. Pat. No. 5,160,215 to Jensen which generally describes a ground surface erosion control device. U.S. Pat. Nos. 5,007,766, 5,584,600, 5,605,416 and 4,610,568 also describe erosion control barriers of various types and shapes. Some of the above-referenced patents describe sediment barriers for reducing the erosive energy of water flow-through on a water course such as a channel for increasing the deposition of sediments therein. The sediment barrier typically includes a plurality of individual strands interwoven and preferably crimped or otherwise distorted in an external configuration so as to provide, in certain instances, fiber-to-fiber cohesion which helps maintain the overall rate of the barrier. As referenced in U.S. Pat. No. 5,007,766, the sediment barrier of this particular design may be anchored in place on a surface or within a gully, so as to maintain the strands in upright relation to the water course.
Typical applications for such erosion control devices, particularly the sediment log sold by the assignee of the present invention, are for energy dissipation and sediment control in ditch bottoms, swales, and in waterways. The sediment log may also be used over bare soils and/or temporary and turf reinforcement blankets. A 360° protection around catch basins and drop inlet structures are also specifically referenced for the Curlex® sediment log as are uses in curb and drainage outlets. Finally, the Curlex® sediment log may be used on project ingress and egress termination points or used in place of bails, silt fences, reinforced silt fences and rock checks, or as wattles on steep slopes. Further information on the Curlex® sediment log may be found at www.curlex.com.
The innovative approach to utilizing excelsior wood fibers in a sediment log comprising an elongated tubular member has been found to be both economically viable and environmentally effective for erosion control considerations. Due to the governmental regulations requiring protective measures in the area of erosion control as referenced above, the shipment and ease of delivery of such erosion control units has become important. Due to the size and length of the sediment control logs, such as the above-referenced Curlex® sediment log, shipping and handling is of major concern for both the manufacturer and the ultimate user. When the logs are improperly packaged they can become distorted and the efficiency in use for sediment control reduced. When the logs are shipped in a elongated stack configuration, the amount of space necessary for shipment has been shown to be less than cost effective. It would be an advantage therefore to provide a system for efficient, space-saving packaging and handling sediment logs in a manner facilitating reduced distortion and ease in handling and use.

Method of and system for sedimentation retaining barrier packing and handling


User-related features of a printing system are disclosed herein. Some embodiments relate to a time-line GUI for visualizing and/or manipulating queued print jobs which may be employed. Some embodiments relate to a reversed augmented reality GUI for visualization and/or control of the printing system. In some embodiments, a display screen is mounted to a printer housing and/or able to control access to moving parts of a printing system.

Currently, lithographic printing is the process in most common use for producing newspapers and magazines. Lithographic printing involves the preparation of plates bearing the image to be printed, which plates are mounted on a plate cylinder. An ink image produced on the plate cylinder is transferred to an offset cylinder that carries a rubber blanket. From the blanket, the image is applied onto paper or any other printing medium, termed the substrate, which is fed between the offset cylinder and an impression cylinder. For a wide variety of well-known reasons, offset litho printing is suitable, and economically viable, only for long print runs.
More recently, digital printing techniques have been developed that allow a printing device to receive instructions directly from a computer without the need to prepare printing plates. Amongst these are color laser printers that use the xerographic process. Color laser printing systems using dry toners are suitable for certain applications, but they do not produce images of a photographic quality acceptable for publications such as magazines.
A process that is better suited for short run high quality digital printing is used in the HP-Indigo digital printing press. In this process, an electrostatic image is produced on an electrically charged image bearing cylinder by exposure to laser light. The electrostatic charge attracts oil-based inks to form a color ink image on the image bearing cylinder. The ink image is then transferred by way of a blanket cylinder onto the substrate.
Inkjet and bubble jet processes are commonly used in home and office printing systems. In these processes droplets of ink are sprayed onto a final substrate in an image pattern. In general, the resolution of such processes is limited due to wicking by the inks into paper substrates, unless coated paper is used.
Various printing devices have also previously been proposed that use an indirect inkjet printing process, this being a process in which an inkjet print head is used to print an image onto the surface of an intermediate transfer member, which is then used to transfer the image onto a substrate. The intermediate transfer member may be a rigid drum or a flexible belt (e.g. guided over rollers, or mounted onto a rigid drum), also herein termed a blanket.

Apparatus and methods for monitoring operation of a printing system


A circuit and method for implementing an adaptive bit-leveling function in an integrated circuit interface is disclosed. During a calibration operation, a pre-loaded data bit pattern is continuously sent from a sending device and is continuously read from an external bus by a receiving device. A programmable delay line both advances and delays each individual data bit relative to a sampling point in time, and delay counts relative to a reference point in time are recorded for different sampled data bit values, enabling a delay to be determined that best samples a data bit at its midpoint. During the advancing and delaying of a data bit, jitter on the data bit signal may cause an ambiguity in the determination of the midpoint, and solutions are disclosed for detecting jitter and for resolving a midpoint for sampling a data bit even in the presence of the jitter.

Given today's high clock rates and transmission line effects when signals must travel between integrated circuit chips, skew between different data bits in the same bus becomes a problem. As a system heats and cools during operation, and/or develops hot and cool spots, the skew between data bits can likewise change as data bit signals and strobe signals travel off chip and between chips through various system-level paths. Also, as these phenomenon dynamically change during operation, the skew between data bits can likewise change. Therefore, it would be useful to have a way to perform bit leveling from time to time during system operation, and to do so quickly, and to perform bit leveling independently for each data bit on a data bus.
One application where a dynamic bit leveling capability is especially useful for compensating for variable system-level delays is that of dynamic memory interfaces where DQ data bits can develop a skew problem with respect to the DQS strobe used to sample them. Jitter can also develop between data bits and strobes, and it would also be useful to resolve jitter issues while performing a bit-leveling function.

Circuit for dynamically adaptive bit-leveling by incremental sampling, jitter detection, and exception handling


A system and method for improving the efficiency of the transmission of updated blocks generated by logging all the block allocations and deletes as well as CPs and PCPI creation and deletion in a persistent log. The log is scanned during each update cycle (in which changes are transmitted to a destination mirror) by the storage operating system, and only changed blocks that are referenced by the file system as it existed at the end of the update cycle or referenced by PCPIs that existed at the end of the update cycle are actually sent in the transmission. This reduces the number of changes being transmitted.

A file server is a computer that provides file service relating to the organization of information on storage devices, such as disks. The file server or filer includes a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on the disks. Each "on-disk" file may be implemented as a set of data structures, e.g., disk blocks, configured to store information. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored.
A filer may be further configured to operate according to a client/server model of information delivery to thereby allow many clients to access files stored on a server, e.g., the filer. In this model, the client may comprise an application, such as a database application, executing on a computer that "connects" to the filer over a direct connection or computer network, such as a point-to-point link, shared local area network (LAN), wide area network (WAN), or virtual private network (VPN) implemented over a public network such as the Internet. Each client may request the services of the file system on the filer by issuing file system protocol messages (in the form of packets) to the filer over the network.
A common type of file system is a "write in-place" file system, an example of which is the conventional Berkeley fast file system. By "file system" it is meant generally a structuring of data and metadata on a storage device, such as disks, which permits reading/writing of data on those disks. In a write in-place file system, the locations of the data structures, such as inodes and data blocks, on disk are typically fixed. An inode is a data structure used to store information, such as metadata, about a file, whereas the data blocks are structures used to store the actual data for the file. The information contained in an inode may include, e.g., ownership of the file, access permission for the file, size of the file, file type and references to locations on disk of the data blocks for the file. The references to the locations of the file data are provided by pointers in the inode, which may further reference indirect blocks that, in turn, reference the data blocks, depending upon the quantity of data in the file. Changes to the inodes and data blocks are made "in-place" in accordance with the write in-place file system. If an update to a file extends the quantity of data for the file, an additional data block is allocated and the appropriate inode is updated to reference that data block.
Another type of file system is a write-anywhere file system that does not overwrite data on disks. If a data block on disk is retrieved (read) from disk into memory and "dirtied" with new data, the data block is stored (written) to a new location on disk to thereby optimize write performance. A write-anywhere file system may initially assume an optimal layout such that the data is substantially contiguously arranged on disks. The optimal disk layout results in efficient access operations, particularly for sequential read operations, directed to the disks. A particular example of a write-anywhere file system that is configured to operate on a filer is the Write Anywhere File Layout (WAFL™) file system available from Network Appliance, Inc. of Sunnyvale, Calif. The WAFL file system is implemented within a microkernel as part of the overall protocol stack of the filer and associated disk storage. This microkernel is supplied as part of Network Appliance's Data ONTAP™ software, residing on the filer, that processes file-service requests from network-attached clients.
As used herein, the term "storage operating system" generally refers to the computer-executable code operable on a computer that manages data access and may, in the case of a filer, implement file system semantics, such as the Data ONTAP™ storage operating system, implemented as a microkernel, and available from Network Appliance, Inc. of Sunnyvale, Calif., which implements a Write Anywhere File Layout (WAFL™) file system. The storage operating system can also be implemented as an application program operating over a general-purpose operating system, such as UNIX® or Windows NT®, or as a general-purpose operating system with configurable functionality, which is configured for storage applications as described herein.
Disk storage is typically implemented as one or more storage "volumes" that comprise physical storage disks, defining an overall logical arrangement of storage space. Currently available filer implementations can serve a large number of discrete volumes (150 or more, for example). Each volume is associated with its own file system and, for purposes hereof, volume and file system shall generally be used synonymously. The disks within a volume are typically organized as one or more groups of Redundant Array of Independent (or Inexpensive) Disks (RAID). RAID implementations enhance the reliability/integrity of data storage through the redundant writing of data "stripes" across a given number of physical disks in the RAID group, and the appropriate caching of parity information with respect to the striped data. In the example of a WAFL file system, a RAID 4 implementation is advantageously employed. This implementation specifically entails the striping of data across a group of disks, and separate parity caching within a selected disk of the RAID group. As described herein, a volume typically comprises at least one data disk and one associated parity disk (or possibly data/parity partitions in a single disk) arranged according to a RAID 4, or equivalent high-reliability, implementation.
In order to improve reliability and facilitate disaster recovery in the event of a failure of a filer, its associated disks or some portion of the storage infrastructure, it is common to "mirror" or replicate some or all of the underlying data and/or the file system that organizes the data. In one example, a mirror is established and stored at a remote site, making it more likely that recovery is possible in the event of a true disaster that may physically damage the main storage location or it's infrastructure (e.g. a flood, power outage, act of war, etc.). The mirror is updated at regular intervals, typically set by an administrator, in an effort to catch the most recent changes to the file system. One common form of update involves the use of a Snapshot™ process.
Included within the file system layer is a set of image or Snapshot™ processes (see "PCPIs" 730 in FIG. 7 below), which implement the imaging capabilities of the file system. Snapshotting is further described in TR3002 File System Design for an NFS File Server Appliance by David Hitz et al., published by Network Appliance, Inc., and in U.S. Pat. No. 5,819,292 METHOD FOR MAINTAINING CONSISTENT STATES OF A FILE SYSTEM AND FOR CREATING USER-ACCESSIBLE READ-ONLY COPIES OF A FILE SYSTEM by David Hitz et al., which are hereby incorporated by reference. The term "Snapshot" is a trademark of Network Appliance, Inc. It is used for purposes of this patent to designate a persistent consistency point (CP) image. A persistent consistency point image (PCPI) is a point-in-time representation of the storage system, and more particularly, of the active file system, stored on a storage device (e.g., on disk) or in other persistent memory and having a name or other unique identifier that distinguishes it from other PCPIs taken at other points in time. A PCPI can also include other information (metadata) about the active file system at the particular point in time for which the image is taken. Note that the terms "PCPI" and "Snapshot™" may be used interchangeably through out this patent without derogation of Network Appliance's trademark rights.
By way of background, a snapshot is a restorable version of a file system created at a predetermined point in time. PCPIs are generally created on some regular schedule. The PCPI is stored on-disk along with the active file system, and is called into the buffer cache of the filer memory as requested by the storage operating system. An exemplary file system data identifier buffer tree structure (using inodes in this example—but other forms of block and data identifiers can be employed) 100 is shown in FIG. 1. Over the exemplary tree structure may reside a file system information block (not shown). The root inode 105 contains information describing the inode file associated with a given file system. In this exemplary file system inode structure root inode 105 contains a pointer to the inode file indirect block 110. The inode file indirect block 110 contains a set of pointers to inode file and data blocks 115. The inode file data block 115 includes pointers to file and data blocks to 120A, 120B and 120C. Each of the file data blocks 120(A-C) is capable of storing, in the illustrative embodiment, 4 kilobytes (KB) of data. Note that this structure 100 is simplified, and that additional layers of data identifiers can be provided in the buffer tree between the data blocks and the root inode as appropriate.
When the file system generates a PCPI of a given file system, a PCPI inode 205 is generated as shown in FIG. 2. The PCPI inode 205 is, in essence, a duplicate copy of the root inode 105 of the data structure (file system) 100. Thus, the exemplary structure 200 includes the same inode file indirect block 110, inode file data block(s) 115 and file data blocks 120A-C as in FIG. 1. When a user modifies a file data block, the file system layer writes the new data block to disk and changes the active file system to point to the newly created block.
FIG. 3 shows an exemplary data structure structure 300 after a file data block has been modified. In this illustrative example, file data block 120C was modified to file data block 120C′. When file data block 120C is modified file data block 120C′, the contents of the modified file data block are written to a new location on disk as a function for the exemplary file system. Because of this new location, the inode file data block 315 pointing to the revised file data block 120C must be modified to reflect the new location of the file data block 120C. Similarly, the inode file indirect block 310 must be rewritten to point to the newly revised inode file and data block. Thus, after a file data block has been modified the PCPI inode 205 contains a point to the original inode file system indirect block 110 which in turn contains a link to the inode file data block 115. This inode file data block 115 contains pointers to the original file data blocks 120A, 120B and 120C. However, the newly written inode file data block 315 includes pointers to unmodified file data blocks 120A and 120B. The inode file data block 315 also contains a pointer to the modified file data block 120C′ representing the new arrangement of the active file system. A new file system root inode 305 is established representing the new structure 300. Note that metadata (not shown) stored in any Snapshotted blocks (e.g., 205, 110, and 120C) protects these blocks from being recycled or overwritten until they are released from all PCPIs. Thus, while the active file system root inode 305 points to new blocks 310, 315 and 120C′, the old blocks 205, 110, 115 and 120C are retained until the PCPI is fully released.
After a PCPI has been created and file data blocks modified, the file system layer can reconstruct or "restore" the file system inode structure as it existed at the time of the snapshot by accessing the PCPI inode. By following the pointers contained in the PCPI inode 205 through the inode file indirect block 110 and inode file data block 115 to the unmodified file data blocks 120A-C, the file system layer can reconstruct the file system as it existed at the time of creation of the snapshot.
In mirroring, the above-described PCPI is transmitted as a whole, over a network (such as the well-known Internet) to the remote storage site. Generally, a PCPI is an image (typically read-only) of a file system at a point in time, which is stored on the same primary storage device as is the active file system and is accessible by users of the active file system. Note, that by "active file system" it is meant the file system to which current input/output operations are being directed. The primary storage device, e.g., a set of disks, stores the active file system, while a secondary storage, e.g. a tape drive, may be utilized to store backups of the active file system. Once Snapshotted, the active file system is reestablished, leaving the imaged version in place for possible disaster recovery. Each time a PCPI occurs, the old active file system becomes the new PCPI, and the new active file system carries on, recording any new changes. A set number of PCPIs may be retained depending upon various time-based and other criteria. The Snapshotting process is described in further detail in U.S. patent application Ser. No. 09/932,578, entitled INSTANT SNAPSHOT by Blake Lewis et al., which is hereby incorporated by reference as though fully set forth herein.
The complete recopying of the entire file system to a remote (destination) site over a network may be quite inconvenient where the size of the file system is measured in tens or hundreds of gigabytes (even terabytes). This full-backup approach to remote data mirroring or replication may severely tax the bandwidth of the network and also the processing capabilities of both the destination and source filer. One solution has been to limit the replica to only portions of a file system volume that have experienced changes. Hence, FIG. 4 shows volume-based mirroring/replication procedure where a source file system 400 is connected to a destination storage site 402 (consisting of a server and attached storage—not shown) via a network link 404. The destination 402 receives periodic mirror/replica updates at some regular interval set by an administrator. These intervals are chosen based upon a variety of criteria including available bandwidth, importance of the data, frequency of changes and overall volume size.
In brief summary, the source creates a pair of discrete time-separated PCPIs of the volume. These can be created as part of the commit process in which data is committed to non-volatile memory in the filer or by another mechanism. The "new" PCPI 410 is a recent PCPI of the volume's active file system. The "old" PCPI 412 is an older PCPI of the volume, which should match the image of the file system mirrored/replicated on the destination mirror. Note that the file server is free to continue work on new file service requests once the new PCPI 412 is made. The new PCPI acts as a checkpoint of activity up to that time rather than an absolute representation of the then-current volume state. A differencer 420 scans the blocks 422 in the old and new PCPIs. In particular, the differencer works in a block-by-block fashion, examining the list of blocks in each PCPI to compare which blocks have been allocated. In the case of a write-anywhere system, the block is not reused as long as a PCPI references it, thus a change in data is written to a new block. Where a change is identified (denoted by a presence or absence of an 'X' designating data), a decision process 400, shown in FIG. 5, in the differencer 420 decides whether to transmit the data to the destination 402. The decision process 500 compares the old and new blocks as follows: (a) Where data is in neither an old nor new block (case 502) as in old/new block pair 430, no data is available to transfer (b) Where data is in the old block, but not the new (case 504) as in old/new block pair 432, such data has already been transferred, (and any new destination PCPI pointers will ignore it), so the new block state is not transmitted. (c) Where data is present in the both the old block and the new block (case 506) as in the old/new block pair 434, no change has occurred and the block data has already been transferred in a previous PCPI. (d) Finally, where the data is not in the old block, but is in the new block (case 508) as in old/new block pair 436, then a changed data block is transferred over the network to become part of the changed volume mirror/replica set 440 at the destination as a changed block 442. In the exemplary write-anywhere arrangement, the changed blocks are written to new, unused locations in the storage array. Once all changed blocks are written, a base file system information block, that is the root pointer of the new PCPI, is then committed to the destination. The transmitted file system information block is committed, and updates the overall destination file system by pointing to the changed block structure in the destination, and replacing the previous file system information block. The changes are at this point committed as the latest incremental update of the destination volume mirror. This file system accurately represents the "new" mirror on the source. In time a new "new" mirror is created from further incremental changes.
Approaches to volume-based remote mirroring of PCPIs are described in detail in commonly owned U.S. patent application Ser. No. 09/127,497, entitled FILE SYSTEM IMAGE TRANSFER by Steven Kleiman, et al. and U.S. patent application Ser. No. 09/426,409, entitled FILE SYSTEM IMAGE TRANSFER BETWEEN DISSIMILAR FILE SYSTEMS by Steven Kleiman, et al., both of which patents are expressly incorporated herein by reference.
This volume-based approach to incremental mirroring from a source to a remote storage destination is effective, but in some circumstances it may be desirable to replicate less than an entire volume structure. The volume-based approach typically forces an entire volume to be scanned for changes and those changes to be transmitted on a block-by-block basis. In other words, the scan focuses on blocks without regard to any underlying information about the files, inodes and data structures, which the blocks comprise. The destination is organized as a set of volumes so a direct volume-by-volume mapping is established between source and destination. Where a volume may contain a terabyte or more of information, the block-by-block approach to scanning and comparing changes may still involve significant processor overhead and associated processing time. Often, there may have been only minor changes in a sub-block beneath the root inode block being scanned. Since a list of all blocks in the volume is being examined, however, the fact that many groupings of blocks (files, inode structures, etc.) are unchanged is not considered. In addition, the increasingly large size and scope of a full volume make it highly desirable to sub-divide the data being mirrored into sub-groups such as qtrees, because some groups are more likely to undergo frequent changes, it may be desirable to update their PCPIs/Snapshots™ more often than other, less-frequently changed groups. In addition, it may be desirable to mingle original and imaged (Snapshotted) sub-groups in a single volume and migrate certain key data to remote locations without migrating an entire volume.
One such sub-organization of a volume is the well-known qtree. Qtrees, as implemented on an exemplary storage system such as described herein, are subtrees in a is volume's file system. One key feature of qtrees is that, given a particular qtree, any file or directory in the system can be quickly tested for membership in that qtree, so they serve as a good way to organize the file system into discrete data sets. The use of qtrees as a source and destination for replicated data may be desirable. An approach to remote asynchronous mirroring of a qtree is described in U.S. patent application Ser. No. 10/100,967 entitled SYSTEM AND METHOD FOR DETERMINING CHANGES IN TWO SNAPSHOTS AND FOR TRANSMITTING CHANGES TO A DESTINATION SNAPSHOT, by Michael L. Federwisch, et al., the teachings of which are expressly incorporated herein by reference.
Because the above-described mirroring approaches are asynchronous, they occur at a point in time that may occur after the actual making of the PCPI, and may occur intermittently. This alleviates undue taxing of network bandwidth, allowing the change information to be transferred to the remote destination as bandwidth is available. A series of checkpoints and other standard transmission reference points can be established in both the source and destination to ensure that, in the event of any loss of transmission of change data across the network, the mirror update procedure can be reconstructed from the last successful transmission.
The differencer scanning procedure described above is made somewhat efficient because an unchanged block implies that all blocks beneath it are unchanged and need not be scanned. However, wherever a block is changed, the given change is typically propagated along the buffer tree up to the root, and each block in the branch must be scanned. As such, it is not uncommon that, given even a relatively small number of random writes across a tree, the entire tree must be scanned for differences (i.e. perhaps as few as 1/1000th the total number of blocks). This imposes an increasingly processing large burden on the system and network as the size of volumes and related data structures increases. Currently, these volumes can approach a terabyte in size or even greater. Hence a more-efficient technique for generating a list of changed blocks for transmission to a destination mirror is desirable. This is particularly a consideration where the update interval is relatively short (one second or less, for example), requiring frequent changed block scanning and changed block transmission.

System and method for supporting asynchronous data replication with very short update intervals


An apparatus and method are provided for extending a microprocessor instruction set to allow for extended size addresses. The apparatus includes translation logic and extended execution logic. The translation logic translates an extended instruction into an associated micro instruction sequence for execution by the microprocessor, where the extended instruction has an extended prefix and an extended prefix tag. Extended prefix specifies an extended address mode for an address calculation corresponding to an operation, where the extended address mode not otherwise provided for by instructions in an existing instruction set. The extended prefix tag indicates the extended prefix, where the extended prefix tag is an otherwise architecturally specified opcode within the existing instruction set. The extended execution logic is coupled to the translation logic. The extended execution logic receives the associated micro instruction sequence, and performs the address calculation to generate an extended address according to the extended address mode.

1. Field of the Invention
This invention relates in general to the field of microelectronics, and more particularly to a technique for incorporating extended address modes into an existing microprocessor instruction set architecture.
2. Description of the Related Art
Since microprocessors were fielded in the early 1970's, their use has grown exponentially. Originally applied in the scientific and technical fields, microprocessor use has moved over time from those specialty fields into commercial consumer fields that include products such as desktop and laptop computers, video game controllers, and many other common household and business devices.
Along with this explosive growth in use, the art has experienced a corresponding technology pull that is characterized by an escalating demand for increased speed, expanded addressing capabilities, faster memory accesses, larger operand size, more types of general purpose operations (e.g., floating point, single-instruction multiple data (SIMD), conditional moves, etc.), and added special purpose operations (e.g., digital signal processing functions and other multi-media operations). This technology pull has resulted in an incredible number of advances in the art which have been incorporated in microprocessor designs such as extensive pipelining, super-scalar architectures, cache structures, out-of-order processing, burst access mechanisms, branch prediction, and speculative execution. Quite frankly, a present day microprocessor is an amazingly complex and capable machine in comparison to its 30-year-old predecessors.
But unlike many other products, there is another very important factor that has constrained, and continues to constrain, the evolution of microprocessor architecture. This factor—legacy compatibility—furthermore accounts for much of the complexity that is present in a modern microprocessor. For market-driven reasons, many producers have opted to retain all of the capabilities that are required to insure compatibility with older, so-called legacy application programs as new designs are provided which incorporate new architectural features.
Nowhere has this legacy compatibility burden been more noticeable than in the development history of x86-compatible microprocessors. It is well known that a present day virtual-mode, 32-/16-bit x86 microprocessor is still capable of executing 8-bit, real-mode, application programs which were produced during the 1980's. And those skilled in the art will also acknowledge that a significant amount of corresponding architectural "baggage" is carried along in the x86 architecture for the sole purpose of supporting compatibility with legacy applications and operating modes. Yet while in the past developers have been able to incorporate newly developed architectural features into existing instruction set architectures, the means whereby use of these features is enabled—programmable instructions—are becoming scarce. More specifically, there are no more "spare" instructions in certain instruction sets of interest that provide designers with a way to incorporate newer features into an existing architecture.
In the x86 instruction set architecture, for example, there are no remaining undefined 1-byte opcode states. All 256 opcode states in the primary 1-byte x86 opcode map are taken up with existing instructions. As a result, x86 microprocessor designers must presently make a choice to either provide new features or to retain legacy compatibility. If new programmable features are to be provided, then they must be assigned to opcode states in order for programmers to exercise those features. And if spare opcode states do not remain in an existing instruction set architecture, then some of the existing opcode states must be redefined to provide for specification of the new features. Thus, legacy compatibility is sacrificed in order to make way for new feature growth.
One area that continues to plague microprocessor designers concerns the amount of virtual memory that can be addressed by application programs. Early microprocessor designs provided for 8-bit addresses. Then, as application programs became more complex, the requirement to access larger areas of memory provided the momentum to increase the size of addresses to 16 bits, giving programmers the capability to access memory spaces up to 64 kilobytes (kB) in size. The incorporation of virtual memory techniques into the architecture of microprocessors has likewise extended the addressing boundaries experienced at the operating system level when several applications compete for memory resources. And while the amount of physical memory that can be accessed using virtual memory techniques is essentially unlimited, the amount of virtual memory that an application program can access is limited by address size, that is, the number of virtual address bits provided for by a particular microprocessor architecture.
The present state of the art in microprocessors for desktop/laptop computing applications provides for 32-bit virtual (or, linear) addresses, thus allowing programs to access up to 4 gigabytes (GB) of virtual memory space. The number of bits in a virtual address provided for in a particular microprocessor architecture is commonly referred to as an address mode. And to retain compatibility with legacy application programs, a present day desktop/laptop microprocessor provides programmers with the capability to operate in a 32-bit address mode, a 16-bit address mode, or even perhaps an 8-bit address mode.
But even at present, there are application programming areas that are disadvantageously impacted because present day microprocessors do not support extended address modes such as 64-bit data mode and 128-bit data mode. It is not uncommon to find image, signal, and multi-media applications that require access to arrays much greater than 4 GB in size. Yet, to support these extended addressing modes within an architecture that has no spare opcode values would require redefinition of existing opcodes, thereby abandoning support for legacy applications.
Therefore, what is needed is an apparatus and method that incorporate extended address modes into an existing microprocessor instruction set architecture having a completely full opcode set, where incorporation of the extended address modes additionally allows a conforming microprocessor to retain the capability to execute legacy application programs.

Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor


A refrigerated container for receiving, storing, and transporting materials without necessity of personnel contacting the materials after deposit in the container. The container is particularly adapted for use with medical wastes which may contain infectious materials. The container comprises a lower portion and a lid portion. The container lower portion includes an open-topped inner box for holding waste materials, and an open-topped insulated outer box surrounding and spaced apart from the inner box forming an annular space therebetween. The lid is releasably attached to the outer box and has doors for access into the inner box of the container. A refrigeration unit and air circulation fan are attached to the lid, and are in communication with the annular space for cooling the inner box by circularing refrigerated air through the annular space. The lower portion of the container is attached to a lifting member by a hinge and a releasable latch, such that when the latch is engaged, the container may be lifted in a horizontal position. When the latch is disengaged, the container, when lifted, will rotate about the hinge into an inverted position with the open top of the inner box facing downward.

1. Field of the Invention
The present invention relates to a refrigerated container for receiving and storing materials, such as medical wastes, at a site, such as a hospital, for a relatively extended time, then transporting the materials to a disposal facility. The container is designed such that the materials can be dumped into a disposal facility, such as an incinerator, without the necessity of personnel coming into contact with the waste materials.
2. Background of the Invention
Hospitals and medical clinics generate large quantities of waste resulting from the medical services provided. Certain categories of these wastes present a health threat to individuals and to the community if the wastes are mishandled or allowed to escape into the environment. These wastes include liquids and solids, and contain residues of drugs, infectious agents, pathogens and other dangerous materials and instrumentalities associated with disease and its treatment.
Currently, such wastes are handled in a way which presents an opportunity for individuals to come into contact with the wastes and for the wastes to come into contact with the environment before disposal in an approved manner. For example, wastes which may be dangerous are collected in receptacles, such as plastic bags, at the sites where they are generated. These bags of wastes containing substantial organic matter and having liquid as well as solid components, are then placed in leak resistant containers and stored under refrigeration until disposed of. When sufficient wastes are accumulated in storage, the wastes are transported, by means such as a refrigerated truck, to a disposal facility, such as an incinerator. At the disposal facility, the wastes are unloaded from the transport means for disposal.
Substantial opportunities exist for wastes handled in the above manner to come into harmful contact with individuals and with the environment. The bags of waste are handled several times by individuals in the process of taking the wastes to storage, loading the stored wastes into the transport means, and unloading the wastes at the disposal facility. The bags may burst in storage or during transport, allowing harmful agents such as pathogens and other infectious agents, to come into contact with those individuals handling the wastes, or allowing harmful agents to escape into the environment.

Container for storage, collection and transportation of medical waste