Abstract:
Some embodiments of the present invention provide a system that determines a center of rotation for a component in a computer system. During operation, the system measures a first acceleration of a first location on the component and a second acceleration of a second location on the component, wherein the first location and the second location are separated by a predetermined distance. Then, the system determines the center of rotation using the first acceleration, the second acceleration, and the predetermined distance.

Description:
BACKGROUND 
       [0001]    1. Field 
         [0002]    The present invention generally relates to techniques for improving the reliability of computer systems. More specifically, the present invention relates to a method and an apparatus for determining a center of rotation for a component in a computer system. 
         [0003]    2. Related Art 
         [0004]    Components in a computer system, such as the chassis, disk drives, disk drive cages, and printed circuit boards (PCBs), can suffer damage through vibrations which can potentially lead to failure of the component or computer system. Therefore, to ensure proper mechanical design of a computer system, it is important to understand the vibration modes of components in the computer system. This allows designers to mitigate the impact of these vibrations at the design stage through design changes, vibration damping, or isolation of components. In particular, in order to design a computer system to reduce potential damage due to the rotational vibration of computer system components, knowledge of the position of the center of rotation of the components is needed. 
         [0005]    Hence, what is needed is a method and an apparatus for determining a center of rotation for a component in a computer system. 
       SUMMARY 
       [0006]    Some embodiments of the present invention provide a system that determines a center of rotation for a component in a computer system. During operation, the system measures a first acceleration of a first location on the component and a second acceleration of a second location on the component, wherein the first location and the second location are separated by a predetermined distance. Then, the center of rotation is determined using the first acceleration, the second acceleration, and the predetermined distance. 
         [0007]    Some embodiments additionally measure a third acceleration of a third location on the component and a fourth acceleration of a fourth location on the component, wherein the first location, the second location, the third location, and the fourth location are situated at predetermined locations for vertices of a tetrahedron. The center of rotation is then determined using the first acceleration, the second acceleration, the third acceleration, the fourth acceleration and the predetermined locations for the vertices of the tetrahedron. 
         [0008]    In some embodiments, measuring the first acceleration includes generating a histogram of acceleration of the first location, and determining a value of the first acceleration based on the histogram. 
         [0009]    In some embodiments, determining the center of rotation includes determining a distance between the component and the center of rotation. 
         [0010]    In some embodiments, the component includes a hard disk drive. 
         [0011]    In some embodiments, the component includes a mezzanine structure. 
         [0012]    In some embodiments, determining the center of rotation includes determining if a chassis intrusion of the computer system has occurred. 
         [0013]    In some embodiments, determining the center of rotation includes determining a state of degradation of the component in the computer system. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0014]      FIG. 1A  illustrates a system for use in determining a center of rotation for a component in a computer system in accordance with some embodiments of the present invention. 
           [0015]      FIG. 1B  illustrates a diagram depicting vectors associated with the embodiments of  FIG. 1A . 
           [0016]      FIG. 2  presents a flowchart illustrating a process for determining a center of rotation for a component in a computer system in accordance with some embodiments of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    The following description is presented to enable any person skilled in the art to make and use the disclosed embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present description. Thus, the present description is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein. 
         [0018]    The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed. 
         [0019]      FIG. 1A  illustrates a system for use in determining a center of rotation for a component in a computer system in accordance with some embodiments of the present invention. Computer system  100  includes hard disk drive  102  mounted on hard disk drive mount  104 , wherein first accelerometer  106  and second accelerometer  108  are attached to hard disk drive  102 . Additionally, center-of-rotation-determination mechanism  110  is coupled to first accelerometer  106  and second accelerometer  108 . It is noted that center of rotation  112  is the center of rotational motion that is desired to be determined. There are a number of vectors illustrated in  FIG. 1A . More specifically, vector C  114  is a vector from the location of first accelerometer  106  to center of rotation  112 , vector L  116  is a vector from the location of first accelerometer  106  to the location of second accelerometer  108 , and vector C-L  118  is a vector from the location of second accelerometer  108  to center of rotation  112 . 
         [0020]    In the embodiments of  FIG. 1A , it is assumed that the rotation measured by first accelerometer  106  and second accelerometer  108  occurs in the plane of the figure. In 2-dimensional embodiments, center of rotation  112  represents an axis of rotation perpendicular to the plane of rotation. The case of rotation in 3-dimensions will be discussed below. During rotational motion about center of rotation  112 , first accelerometer  106  moves perpendicular to vector C  114  in the plane of rotation, and second accelerometer  108  moves perpendicular to vector C-L  118  in the plane of rotation. During this process, first accelerometer  106  sends a signal to center-of-rotation-determination mechanism  110  representing the acceleration of first accelerometer  106 , and second accelerometer  108  sends a signal to center-of-rotation-determination mechanism  110  representing the acceleration of second accelerometer  108 . 
         [0021]    Embodiments of center-of-rotation-determination mechanism  110  determine the location of center of rotation  112  from the signals received from first accelerometer  106  and second accelerometer  108  using the process described below. Center-of-rotation-determination mechanism  110  includes any mechanism that can receive signals representing acceleration from first accelerometer  106  and second accelerometer  108  and determine center of rotation  112 . Center-of-rotation-determination mechanism  110  can be implemented in any combination of hardware and software. In some embodiments, center-of-rotation-determination mechanism  110  operates on computer system  100 . In other embodiments, center-of-rotation-determination mechanism  110  operates on one or more service processors. In still other embodiments, center-of-rotation-determination mechanism  110  is located inside of computer system  100 . In yet other embodiments, center-of-rotation-determination mechanism  110  operates on a separate computer system. In general, center-of-rotation-determination mechanism  110  can include any computation device now known or later developed. 
         [0022]      FIG. 1B  illustrates a diagram depicting vectors associated with the embodiments of  FIG. 1A . In  FIG. 1B , vector S 1   120  represents the displacement of first accelerometer  106  during rotational motion in the plane of rotation about center of rotation  112 , and is perpendicular to vector C  114 , resulting in the vector dot product of vector S 1   120  and vector C  114  being equal to zero. Vector S 2   122  represents the displacement of second accelerometer  108  during rotational motion in the plane about center of rotation  112 , and is perpendicular to vector C-L  118 , resulting in the vector dot product of vector S 2   122  and vector C-L  118  being equal to zero. These 2 conditions can be represented by the two vector equations below: 
         [0000]        S 1 ·C= 0  (1) 
         [0000]        S 2·( C−L )=0  (2) 
         [0023]    These two equations can be differentiated twice using the known rules of vector differentiation to obtain equations relating the unknown distance vector C  114  between first accelerometer  106  and center of rotation  112  to the acceleration from first accelerometer  106 , the acceleration from second accelerometer  108 , and the known distance vector L  116  between first accelerometer  106  and second accelerometer  108 . 
         [0024]    In the embodiments depicted in  FIG. 1A , first accelerometer  106  and second accelerometer  108  can be 2-axis accelerometers, each oriented so that the plane formed by the 2 axes measured by each accelerometer is parallel to the plane of rotation. 
         [0025]    It is noted that some embodiments of this technique can be generalized to rotation in 3-dimensions with the use of 4 3-axis accelerometers. In these embodiments, the 4 accelerometers are placed on the component on the vertices of a known tetrahedron so that the spatial relationship between the locations of the 4 accelerometers is known, and such that all four of the accelerometers are not in the same plane and no three accelerometers form a straight line. In these embodiments, when the component, and hence the accelerometers rotate in 3-dimensions about the center of rotation, the displacement of each accelerometer is perpendicular to a radial vector between the center of rotation and the accelerometer. Thus, a system of 4 equations can then be generated in which each equation sets the vector dot product of the rotational displacement of an accelerometer with the radius vector from the accelerometer to the center of rotation equal to 0. This system of equations can then be differentiated using the known rules of vector differentiation and then solved for the center of rotation using acceleration data from the 4 accelerometers and the known spatial relationship between the four accelerometers. 
         [0026]    It is noted that the acceleration of a location on the component can be the acceleration of a location on the surface of the component or inside the component. In some embodiments, the component can include but is not limited to: a hard disk drive; a CD or DVD drive; a hard disk drive mounting bracket; a hard disk drive back plane; a mezzanine board; a chassis; a chassis cover; a motherboard; a processor; a processor mount; a memory board; any other board in a computer system; or a mock-up, model, or stand-in for any component. In some embodiments, during the design phase of a computer system, the center of rotation for the component when the component is situated at the designed location is determined, and the design can be modified to mitigate the effects of the rotation on the component. In other embodiments, the component location is designed to increase the distance between the component and the center of rotation. 
         [0027]    In some embodiments, the center of rotation of a component is measured over time to determine if the center of rotation has moved with respect to the component. Motion of the center of rotation with respect to a component can be used to indicate conditions including but not limited to one or more of the following: degradation of the component or other parts of the computer system; intrusion into the chassis; faulty repair; authorized or unauthorized replacement of a component; and missing, loose, or incorrectly installed components or fasteners. 
         [0028]      FIG. 2  presents a flowchart illustrating a process for determining a center of rotation for a component in a computer system in accordance with some embodiments of the present invention. First, acceleration data for 2 locations on the component of interest is measured (step  202 ). Next, the acceleration data from each location is sifted (step  204 ). In some embodiments the acceleration data for each location is sifted for data that provides a small condition number value, and a histogram is generated from the sifted data for each location (step  204 ). The histogram is then used to determine the most probable value of the acceleration data for each location (step  206 ). Then, the center of rotation is determined using the most probable value of acceleration data for each location (step  208 ). In some embodiments, the center of rotation is determined from the acceleration data using the techniques detailed above with respect to equations 1 and 2. 
         [0029]    In some embodiments, steps  204  and  206  can be eliminated. In these embodiments, the acceleration data for each location is used to determine the center of rotation without sifting the data or generating a histogram. In some embodiments, the acceleration data is filtered before it is used to determine the center of rotation. 
         [0030]    In some embodiments, the acceleration data for the 2 locations in step  202  is 2-dimensional acceleration data in which the plane of the acceleration data for one location is parallel to the plane of the acceleration data for the other location. 
         [0031]    The process of  FIG. 2  can be generalized to 3 dimensions. To determine the center of rotation in 3-dimensions, 3-axis acceleration data for each of 4 locations on a component is measured. In these embodiments, the 4 locations on the component are on the vertices of a known tetrahedron in which the spatial relationship between the four locations is known, and such that all four of the locations are not in the same plane and no 3 locations form a straight line. In these embodiments, when the component, and hence the locations rotate about the center of rotation, the displacement of each location is perpendicular to a vector from the location to the center of rotation. Thus, a system of 4 equations can then be generated in which each equation sets the vector dot product of the rotational displacement of a location with the vector from the location to the center of rotation equal to 0. This system of equations can then be differentiated using the known rules of vector differentiation and then solved for the center of rotation using acceleration data and the 4 known locations. 
         [0032]    It is noted that any type of acceleration-measuring device can be used in embodiments of the present invention including but not limited to integrated electronics piezoelectric accelerometers, micro-electromechanical (MEMS) accelerometers, mechanical or optical accelerometers, remote sensing devices, or any other device or system that can measure acceleration of a specified location. 
         [0033]    The foregoing descriptions of embodiments have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present description to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present description. The scope of the present description is defined by the appended claims.