Method of enforcing control flow integrity (CFI) for a monolithic binary using static analysis by: marking evaluated functions as core functions by a chosen heuristic or empirically; generating a binary call graph; merging all function nodes of core functions as a node of highest privilege (set 0); merging all leaf functions in one node without privilege (set n); merging all nodes without privilege that reach functions of privilege i and setting the merged node privilege to i+1; checking if there is a node without privilege besides a trivial function; in a positive case, returning to merging all nodes without privilege and setting the merged node privilege to i+1; and in a negative case, setting the privilege of trivial functions as i+2.

In the last decade, attackers would exploit vulnerabilities by using a memory corruption and, therefore, overwriting the return address of a function in order to point it at a desired code by them. This code was in a great number of times injected in a region that was supposed to hold only data used by the program, like, for example, a vulnerable buffer (an attacker could write in it).
With the advent of the W⊕X feature, memory could only be marked as writable or executable at one time, but not both. Therefore, an attacker could overwrite the return address of a function but could no longer inject arbitrary code in a buffer in order to be executed when the return occurs because the region of memory specified for this buffer was marked as writable and non-executable.
Without code injection, the natural idea for an attacker was to use the code already available in the system because the overwriting of the return address was still possible, even with some defenses deployed against it such as the canary. This type of attack is known as Code Reuse Attack (CRA). An example of exploitation in this case would be than an attacker that could make a return address simply point to system/bin/sh. This type of specific CRA which targets mostly functions from libc is known as ret2libc. It diverts the program flow in other to call a target libc function. By restricting the control-flow of libc functions, this attack became more difficult to be deployed.
Return-oriented programming (ROP) was the next step in the exploit evolution. It is a more complex attack capable of creating a Complete Turing Set, or, in other words, perform any desired computation for the adversary (create a Turing Machine). In this scenario, first, the attacker identifies gadgets, which are often small blocks of codes that end in a return instruction. Second, the attacker builds his attack chain by choosing the proper gadgets to be used. Finally, the attacker creates the payload that will be put on the stack. In order to contain this type of attack, similar to the Ret2libc, it is necessary to enforce that the program follows its correct control-flow.
The next step in attack evolution was Jump-oriented programming (JOP). In a simple way, instead of using return instructions for diverting the program flow, JOP uses explicit jump instructions to chain the gadgets. Similar to the ROP case, the best defense against this attack is control-flow enforcement.
One important aspect is that Address Space Layout Randomization (ASLR) is a great defense tool that works against code-injections and against code reuse attacks. In its simple version, it adds a random offset to the program starting address. With this feature, it is harder for an attacker to use functions of a specific lib and to find proper executable gadgets. However, in 32-bit system, the entropy available to randomize the address space is not too high and an attacker can use a brute force search in order to reveal the target addresses. Moreover, if a single address of a global variable is discovered, then all the randomization done by the ASLR is thwarted. Besides this, even if just a local variable has its address revealed, then the attacker already has the layout of, for example, an entire lib, which makes exploitation easier. Therefore, ASLR enhances security, but it cannot be the only defense deployed against these attacks. Some other orthogonal method(s) must be used.
Theoretically, ROP/JOP and their variant can be defended by simply following the correct and expected program flow. However, correctly estimating the call graph of a program, which is necessary for the enforcement, is a known undecidable problem. Therefore, some relaxations or assumptions have to be made in order to make this problem solvable in this context.
Although, if even the correct and complete (or a good approximation) call graph was available, the control-flow enforcement would be too costly, every change in the program flow would have to be analyzed by searching in a large data structure. This approach could compromise performance, which would make the deployment of such security solution undesirable and impossible in a competitive device market such as the one of smartphones.
Concluding, a solution that enforces the program flow that is the more restrict possible regarding keeping the security of the device and, at the same time, maintaining performance at acceptable levels is essential to defend against ROP/JOP attack type.
In the current state of art, there are solutions and technologies that aim to achieve the same goal of the present invention, which is to enforce the CFI of a program.
The paper titled "ACES: Automatic Compartments for Embedded Systems" (USENIX 2018) discloses a new LLVM(Low Level Virtual Machine)-based compiler that creates compartments in a bare-metal system in order enforce their isolation based on the least privilege. It focuses on ARMv7-M devices.
In order to create the components, the Program Dependency Graph (PDG) was used. The isolation of components was done for not only transitions between them, but also for system resources access.
Although, the idea of separating the functions by sets is close to one of the invention concepts, its generation is based on the PDG instead of the call graph. Also, its policy is not made for isolating functions but system resources in general. Therefore, a more complex checking must be made in a great number of situations. With this, the overhead of the solution is considerably large, which is inadequate for systems that have strong constraints such as battery consumption.
The paper titled "DROP THE ROP Fine-grained Control-flow Integrity for the Linux Kernel" (Black Hat Asia 2017) creates a method of CFI enforcement for the Linux kernel (monolithic binary) by checking if the function prototype of the called function matches the one expected as the called party.
In order to create a more restrict CFI, a technique called Call Graph Detaching (CGD) is used. It simply avoids using direct calls to generate the allowed policy for prototypes.
The policy in this case is made focusing on function prototypes and, possibly, a search in a data structure is needed in order to check if the flow should be allowed or not. This may compromise performance as shown by the executed experiments. Also, the use of CGD is against the concept of protecting key functions because it will hide who is actually accessing them.
The ARM Pointer Authentication (described in Qualcomm website https://www.qualcomm.com/media/documents/files/whitepaper-pointer-authentication-on-armv8-3.pdf) is a method available for the ARMv8.3-A variant that aims to make it harder for an attacker to modify protected pointers. By encrypting the pointer with the QARMA cipher with the key hold in a reserved register not accessible to EL0, the pointer becomes unusable, only available for reading. With this, the control-flow is enforced by maintaining the original intended call of the pointer's content.
This method only works for execution in the user space because the register used to hold the key has to be in a higher privileged exception level. In addition, this method should be used in pointers that are not frequently used to avoid performance overheads. In addition, this is one way to keep the program flow in a non-malicious behavior. Concluding, the invention CFI enforcement approaches can work orthogonally with this mechanism in order to improve security.
Many solutions (as for example the paper titled "DROP THE ROP Fine-grained Control-flow Integrity for the Linux Kernel and Clang CFI for Indirect Calls used in Android P") enforces CFI by checking if the prototype of the called function (in execution time) matches the expected prototype. In few words, the enforcement of the present invention checks if a call to a core function is allowed or not regardless of the prototype. Therefore, both checks are different and orthogonal. Concluding, they could run in the same binary in order to check if the flow is correct.
Some solutions as the patent US 2017/0140148 A1, published on May 18, 2017, and the Return Attack Protection (RAP from PaX) works by encrypting the return address at function prologue and decrypting just before returning to the calling party. The invention method to prevent ROP in this case would occur as an additional check in order to avoid exploitation if this type of mechanism was bypassed.
Concluding, the existing technologies does not use the concept of core functions and of creating a policy in order to restrict access to them. Therefore, the invention has a significantly difference when compared with the closest technologies.

Method of enforcing control flow integrity in a monolithic binary using static analysis


A bone distractor assembly configured to distract first and second bone segments on opposite sides of a bone gap is provided. In one embodiment the distractor assembly includes a distractor having a first coupler and a second coupler, a first footplate releasably coupled to the first coupler, a second footplate releasably coupled to the second coupler, and a locking mechanism releasably coupling the first and second footplates to the first and second couplers. The first and second footplates releasably are each configured to attach to bone. The locking mechanism includes a tube, wherein removal of the tube releases the first and second footplates from the first and second couplers.

Various developmental disorders of the human skull result in craniofacial abnormalities in which certain bones fail to grow in proper proportion to other bones, or in which certain bones fuse prematurely, causing malformation of the mid-face or mandible. For example, one disorder, Pierre Robin Sequence (PRS) is a complex condition in which infants are born with a micrognathic and/or retrognathic mandible that causes glossoptosis, resulting in respiratory distress. Mandibular distraction is a treatment option, in which the mandible is advanced anteriorly, thereby pulling the tongue forward and opening up the airway.
A chief complaint among surgeons who use internal mandible distractors to treat infants with certain disorders such as PRS is that some distractors require a second surgical procedure for removal. The removal procedure is difficult for several reasons: (1) the locations of the footplates change during the course of treatment making them difficult to access through the same incision that was used for distractor implementation, and (2) soft and hard tissue grows over the bone screws during treatment making it difficult to engage the screwdriver blade into the screw recess for removal.
Distractors that use resorbable footplates have been used to avoid the second surgical procedure, however, there have been complaints with the current distractors that are used. For example, one distractor consists of a metallic drive screw with a metallic activation extension that engages two resorbable footplates, and can be detached by externally reversing the metallic drive screw at the end of the consolidation phase and removing it through the percutaneous activation port. Such a distractor has reportedly had problems with strength and bone segment stability.


A process and apparatus for gas phase polymerization of olefins in a fluidized bed reactor are disclosed. The process and apparatus employ a vertically oriented fines ejector in order to reduce fouling and reactor downtime.

In a typical gas-phase, fluidized bed olefin polymerization process, fine polymer particles are carried overhead from the reactor and are removed from the recycle gas stream using cyclone or centrifugal separators. The collected fines are drawn from the bottom of the separator using an ejector and from there are returned to the reactor. Such a system is described in U.S. Pat. No. 4,882,400; the entire content of which is hereby incorporated by reference.
Ejectors currently in use and discussed specifically in the '400 patent have a horizontal design. A horizontally oriented fines ejector is shown in FIG. 1. In a typical horizontal fines ejector 10, a gas stream 11 enters the ejector 10 horizontally as shown in FIG. 1. The gas stream 11 provides a motive force to draw fines and gas 12 from the separator (not shown), incorporating them in the gas stream 11, and conveying them 13 to the reactor (not shown) into which they are subsequently re-injected.
In a continuous gas-phase, fluidized bed polyolefin polymerization process, it is common that gas loop piping and equipment would foul to the extent that a shutdown is periodically required for cleaning. Fouling is especially severe in the horizontal fines ejector 10 as the polymer powder-laden gas stream 12 from the fines separators (not shown) is forced to change direction, typically 90°, within the ejector 10. The powder and sometimes even sheets of polymer tend to build-up in area 14 and reduce the efficiency or even plug the ejector 10.
Fouling is so severe in the conventional-design ejector that cleaning to remove polymer build-up is required on average every two months, resulting in frequent plant shutdowns, excessive cleaning expenses, and unacceptable lost production. In extreme cases, heavy fouling of ejector internals will significantly impede ejector performance and has resulted in flow blockages and unplanned reactor shutdowns.
One of the aims of this invention, therefore, is to solve the problems associated with horizontal fines ejectors and extend the time between cleanings of the ejectors.

Process and apparatus for olefin polymerization in a fluidized bed reactor


A rifle rest having a pair of frame members pivotally connected to each other in such a manner to provide a cradle portion movable between an open and closed position, and a pair of feet for supporting the rifle rest on a supporting surface. A foldable sand-filled bag is supported on the cradle portion, so that when the support feet are moved in a direction away from each other, the cradle portion and associated sand bag are moved in a closing direction to thereby grip the stock and barrel of a rifle supported on the sand bag. The support feet are provided with friction surfaces for holding the rifle rest in a supporting surface, and a handle is connected to the cradle portion to facilitate the carrying of the rifle rest.

In U.S. Pat. No. 5,233,779, there is disclosed a rifle rest wherein a pair of sand-filled canvass bags are stitched together along their center lines to thereby form a pair of upper lobes and a pair of lower lobes hingedly connected along the stitch line. When the lower lobes are moved in a direction away from each other, the upper lobes are simultaneously moved in a direction toward each other to thereby grip the stock and barrel of a rifle to be supported.
While the rifle rest disclosed in the above-noted patent has been satisfactory for its intended purpose of gripping the rifle and reducing the amount of recoil transmitted to the rifle person, the rifle rest's main disadvantage is its weight making it difficult to carry.
After considerable research and experimentation, the rifle rest of the present invention has been devised which maintains the satisfactory features of the rifle rest disclosed in the aforementioned patent while greatly reducing its weight to facilitate the carrying of the rifle rest.


In deep submicron technologies, coupling capacitance significantly dominates the total parasitic capacitance. This causes crosstalk noise to be induced on quiescent signals which could lead to catastrophic failures. A methodology is provided that is a practical approach to full-chip crosstalk noise verification. A grouping based method is described for identification of potential victims and associated aggressors, using either timing information or functional information. Potential victim signal lines are selected and pruned based on total coupling capacitance to various signal groups.

This invention relates to methods for designing and fabricating digital circuits, and in particular to simulation and analysis of the circuit design in order to detect and eliminate crosstalk induced by capacitive coupling.
Before an integrated circuit is fabricated, a trial design is first analyzed by simulating the operation of the proposed circuits that are to be included within the integrated circuit. Simulation is used to verify correct functional operation of the circuit, as well as to verify correct dynamic timing operation. When two signal lines on an integrated circuit are physically adjacent there is a capacitance between the signal lines that may cause signal interference due to signal coupling.
Signal integrity is one of the key challenges in design and test, now and beyond 100 nm technologies. Rapid technology scaling is causing increased coupling capacitances due to reduced signal to signal spacing and increased distance from the substrate. Among several types of noise, crosstalk noise introduced due to parasitic coupling is predominant in digital designs. Interconnect parasitic coupling has two effects, at least. A first effect is on the delay due to different switching patterns and this affects the performance of the chip besides potential race conditions. A second effect is induced glitches or noise that could cause functional failure by switching logic-states. In the case of designs employing dynamic logic design styles, this problem is more severe due to increased noise sensitivities of pre-charged nodes. In the case of static logic, except for asynchronous signals such as preset/clear and clock nodes, a failure could result only when data inputs connected to storage elements are latched during the active phase of the clock.
Design complexities are increasing with system on chip (SOC) designs and increased length of interconnect at full-chip level is one of the major sources of crosstalk noise problem. This refers to integration of system level functions, for example, many functions in a cellular telephone integrated into one integrated circuit (IC). Typically, SOC designs have CPU cores, memory blocks, logic blocks and possibly analog design blocks, all on one chip. Dynamic simulation of large designs with millions of parasitics is computationally prohibitive; in order reduce computational loads, static noise verification is used. Magnitude of the parasitic coupling, behavior of victim drivers during noise injection and dependency between factors like timing and parasitic coupling are some of key challenges in noise verification.
A commonly used simulator for designing integrated circuits is SPICE, which is available from the University of California at Berkeley, via the Department of Electrical Engineering and Computer Sciences. However, a SPICE simulation of all the nets in an entire chip is far too complex to be practical.
In order to perform a SPICE simulation of a circuit, all of the nodes between every component in the circuit need to be numbered. Then those nodes, the type of components at each node, and the component magnitudes are entered into the SPICE program.
If the circuit which is being simulated is an entire integrated circuit chip, then the number of nodes and corresponding components which need to be entered into the SPICE program is overwhelming. Firstly, the number of nets may be 40,000 in a current typical integrated circuit design. Secondly, for each such net, about seventy discreet components need to be entered because in the actual chip, the net components are distributed. Specifically, each signal line has capacitance which is distributed throughout the line; and each signal line also has a resistance which is distributed throughout the line. To simulate these distributed components, each signal line needs to be represented by a RC ladder circuit which has about two dozen nodes; with each node having a resistor to the next node, a capacitor to ground, and a capacitor to any adjacent signal line.
After all of the nodes and corresponding components for all the nets are entered into the SPICE program, the program operates to determine the voltages which occur on each node in sequential increments of time. Typically, about 1,000 increments of ten picoseconds each are needed to obtain the entire voltage waveform on a node in one net in an integrated circuit chip. To determine the voltages for just one time increment the SPICE program repetitively solves a matrix equation which is of the form [Y][V]=[1]. Here, Y is an n-xc3x97-n matrix, V is an nxc3x971 matrix, and I is an nxc3x971 matrix; where n is the number of nodes in the circuit. Thus, for a single victim net with twenty aggressor nets, n is (24 nodes per net)xc3x97(21 nets) or 504.
For each increment in time the SPICE program makes about five iterations before it converges on a solution. This iterative process is repeated for each of the subsequent time increments. Using a current state of the art workstation, it takes about ten minutes to perform a SPICE simulation of a single circuit which has 500 nodes and for which a solution is sought for 1,000 time increments. Such a circuit represents a typical victim net with twenty aggressor nets. Consequently, to simulate a chip which has 40,000 nets would take about 400,000 minutes, or more than 270 days to complete!
Accordingly, a primary object of the present invention is to provide a method of designing circuit chips by which the above problems are overcome.
Other objects and advantages will be apparent to those of ordinary skill in the art having reference to the following figures and specification.
Pruning to identify potential victims and associated aggressors forms a key aspect of the methodology of the present invention. In general, and in form the present invention, a method of fabricating an integrated circuit is provided which contains a plurality of signal lines in close proximity, such that capacitive coupling among the signal lines is operable to induce crosstalk on at least one of the signal lines, wherein parasitics are extracted from a trial layout of the integrated circuit, the method comprising the steps of: grouping the plurality of signal lines into a plurality of aggressor groups; pruning the plurality of signal lines to form a plurality of victim signal lines; building a minimum region network for each victim signal line of the plurality of victim signal lines comprising the respective victim signal line, aggressor signal lines associated with the respective victim signal line, and associated parasitics; and simulating the operation of each minimum region network to determine an amount of noise induced on each respective victim signal line by the aggressor signal lines associated with the respective victim signal line.
In another form of the invention, an integrated circuit is fabricated according to a modified trial layout.
In another form of the invention, a computer system is provided which as a mass storage device that holds a design program for designing an integrated circuit according to the above described method.
These and other features of the invention that will be apparent to those skilled in the art from the following detailed description of the invention, taken together with the accompanying drawings.

Method for verification of crosstalk noise in a CMOS design


Devices and methods are described for assisting an infirm or disabled person to move about without assistance, and more particularly, a vertical support structure that can be installed temporarily without modification of ceiling, walls and floors. The device is secured by pivoting a toothed cam lever against a toothed track section. Non-slip material is fixed to the ends of the device to further stabilize it and to prevent marring of the surfaces against which the device is articulated. The devices and methods provide a simple and effective approach that does not rely on significant upper body strength and that is readily adapted to different user needs and environments.

Elderly, disabled, infirm and convalescing persons often have difficulty with simple movements, such as shifting body positions, standing from a sitting position, and most importantly, getting up from supine position. Such individuals frequently need to be assisted by professionals to carry out such tasks. Facilitating secure movement in this manner prevents falls and resulting injuries. However, facilitating such movement without the need of professionals achieves the same ends, while promoting personal autonomy and decreasing the level of assistance and supervision required.
A variety of support frameworks have previously been used as support devices on hospital beds and as a means for transferring elderly, disabled, and convalescing persons into and out of bed.
Many conventional bed access devices include one or two horizontal bars that extend the length of the bed and are secured both at the head and foot ends of the bed. See e.g. U.S. Pat. No. 4,642,824 to Hodges. These overhead bars provide the patient with a handhold in order to shift himself toward the side of the bed. Such apparatus are generally satisfactory for exercise, traction and the like while the patient is on the bed. However, since the overhead bars are normally centered over the bed and spaced away from the bedside, these apparatus often do not provide sufficient assistance to the patient for getting into or out of the bed.
Although some prior assist apparatus have used an overhead cantilevered beam that extend laterally to the overhead bars, such beams have normally been used as a track for mechanical lifting devices. See e.g. U.S. Pat. No. 2,490,130 to Hollis. These devices actually hoist the patient out of the bed and carry the patient to the bedside. Such devices unfortunately depend on significant gripping capability and upper body strength.
A further limitation on prior art designs comes from the fact that these devices are typically designed for hospital use and therefore are not easily adaptable to other settings, including but not limited to private domestic settings. That is to say, such support structures are designed to be permanently installed with extensive modification of ceiling, walls and/or floors.
What is needed is a simple, effective method of assisting disabled individuals that does not rely on significant upper body strength and that is readily adapted to different user needs and environments.

Method and apparatus for assisting the disabled


A solar heliostat and system are described with various characteristics particularly suitable for concentrating systems with a relatively large number of small heliostats. Other features contribute to high performance, low cost, high durability, and high temperature operation, such as desired for high efficiency thermal power generation.

Solar boilers which are heated by concentrating the sun's rays by reflecting them from heliostats are known in the art. Central tower solar energy systems in which a plurality of heliostat mirrors reflect the sun's rays onto a solar receiver mounted atop a tower are described in U.S. Pat. Nos. 3,892,433; 3,924,604; and 4,034,735. Heliostats are described in U.S. Pat. Nos. 4,122,827; 4,209,236; 4,440,150; 4,536,847; 4,564,275; 5,929,530; and 6,959,993.

Heliostats and solar concentration systems employing heliostats


A one wheeled trailer is disclosed for use with and for pulling behind a two wheeled vehicle such as a motorcycle or motorbike. The trailer is configured to track behind the motorcycle or motorbike and to lean with the cycle as a unit so as to respond in the same manner as the motorcycle or motorbike. The trailer is supported on a single tire aligned to track behind the motorcycle tires thereby eliminating the sideways torque when the trailer hits a pothole or a curb. The trailer is designed to perform on the road and in turns the same as the motorcycle and does not limit the motorcycle from performing the way it was intended.

Motorcycles are well known and are commonly used by people who appreciate fuel economy and the sense of freedom that come with riding in the open air. Motorcycle trailers are also known, and are typically two wheeled trailers.
Because of their size and open construction, motorcycles have known drawbacks in their ability to transport luggage or other goods. Motorcycle trailers have been developed over time to address the luggage and material transport limitations of motorcycles. Such trailers find use in transporting camping gear, cooking utensils, sleeping bags, tents and the like for use in extended trips and vacations, as well as for hauling everyday items such as groceries or perhaps tools to a job site.
One limitation in known motorcycle trailers is in width of the trailer. In the late 1970's automotive manufacturers were required to increase the width of the wheelbase so reduce the chance of a roll over. If you make a two wheeled motorcycle trailer wide enough to prevent rollover, the trailer will overhang the width of the motorcycle to the extent that on corners and in heavy traffic the trailer tires extend beyond the width of the motorcycle to the point that they hit corners and other objects.
Another limitation of known two wheeled motorcycle trailers is that they are not built to lean into corners. When a motorcycle navigates a turn, the rider leans the motorcycle such that the vertical motorcycle frame remains substantially aligned with the combined force of gravity and the induced centrifugal force of the turn, as failure to do this will cause the bike or motorcycle to fall over to its side due to centrifugal force.
Another limitation of known motorcycle two wheeled trailers is that the trailers wheels are not aligned with the motorcycle wheels, which is to say the trailer wheels do not track directly behind the motorcycle wheels but are instead positioned off to the side from the path of the wheels. Thus, if the wheel on the trailer hits a pothole, curb of other obstacle, the additional drag force is applied to the motorcycle not directly in line with the wheels of the cycle, but instead off to the side of the motorcycle. As the drag force is applied off center to the motorcycle, the force induces a torque to the motorcycle which acts to induce the motorcycle to veer or turn from its directed path. In traffic or at significant speeds or on gravel or slippery pavement this can be unsafe if not fatal in certain circumstances.
The freedom of riding the motorcycle is the ability to travel with ease and agility due to the width, power and stability of the motorcycle. The performance of the motorcycle is diminished by not allowing the motorcycle to lean properly on turning a corner, for instance when pulling a two wheeled trailer which will not lean, or when using a motorcycle sidecar that prevents the motorcycle from leaning. This causes stress and removes the joy of motorcycling.
Therefore, a motorcycle trailer which will lean with the motorcycle allowing the motorcycle and trailer to respond as a unit, a trailer having a tire that will track behind the motorcycle tires thereby eliminating the sideways torque when the trailer hits debris, a pothole or a curb, a trailer than can be built to be light in weight eliminating the feeling of under power while riding the motorcycle, a trailer that is can be kept the same width as the widest part of the motorcycle thereby eliminating the problem of maneuvering through traffic with trailer hanging out past the side of the motorcycle, a trailer that will perform on the road and in turns the same as the motorcycle and will not limit the motorcycle from performing the way it was intended, such a motorcycle trailer would be useful and novel.

Leanable tracking trailer for a motorcycle


An I/O circuit between a low voltage circuit and a high voltage circuit includes a switching device, a native device and a gate control logic circuit. The switching device provides an output signal to the high voltage circuit in response to a data input signal received from the low voltage circuit. The native device passes the data input signal to control an on or off state of the switching device. The gate control logic circuit operates in an output disabled mode and an output enabled mode. In the output disabled mode, the gate control logic circuit disables the native device for preventing a leakage current passing therethrough. In the output enabled mode, the gate control logic circuit enables the native device to pass the data input signal through without a substantial voltage drop, thereby enhancing a switching speed of the switching device.

The present invention relates generally to a high voltage tolerant I/O circuit, and more particularly to an I/O circuit using a native NMOS transistor that improves the I/O circuit's performance.
As the semiconductor technology develops, an integrated circuit often contains some devices operating at a high voltage level and other devices operating at a low voltage level. The low voltage devices may not tolerate a high voltage signal. Device failures happen frequently, when the low voltage devices operate with the high voltage signal. In order to protect the low voltage devices from the high voltage signals, the integrated circuit often includes an I/O circuit as an interface between the low voltage devices and the high voltage devices. The I/O circuit allows the low voltage devices to communicate with the high voltage devices, while protecting the low voltage devices from the high voltage signals.
One conventional approach of designing the I/O circuit has been focused on the structure of individual devices in the I/O circuit. For example, the conventional approach has used a dual-oxide structure for low voltage devices interfacing with high voltage devices. The thickened oxide helps a low voltage device sustain a higher voltage. However, this approach has some problems. The dual-oxide structure complicates the manufacturing processes because its manufacturing process may not be compatible with those for manufacturing ordinary devices. This results in a longer development cycle time and additional costs.
Another conventional approach to the I/O circuit takes circuit designs into account. One type of the I/O circuit is a circuit interfacing between a high voltage circuit and a low voltage circuit. The I/O circuit is composed of low voltage devices that tolerate high voltage inputs, and output signals at a low voltage level. Such I/O circuit often operates in a three-state mode wherein the I/O circuit would be placed in one of the three states: 1) asserting a low voltage logic "1" to a pad connected to the high voltage circuit; 2) asserting a logic "0" to the pad; and 3) asserting neither "1" nor "0" to the pad so that the low voltage circuit and the high voltage circuit can operate at their own voltage levels without interference therebetween.
Switching devices are used to switch the I/O circuit among the three states. The switching devices are often a set of correlated PMOS and NMOS transistors. The performance of the I/O circuit greatly depends on the switching speed of those switching devices when the I/O circuit operates in the three state mode. The greater the switching speed, the better the performance of the I/O circuit. Conventionally, the switching speed of those switching devices are much less than satisfactory. For example, a PMOS transistor in a conventional I/O circuit requires 3.3 V to completely turn it off. Due to the I/O circuit's limits, the circuit initially charges the gate of the PMOS to a voltage level less than 3.3 V, such as 2.6 V. Then the voltage level of the gate would be slowly raised up to 3.3 V. The slow charging process results in a slow switching speed of the PMOS transistor. Many failures caused by the slow switching speed have been found when the I/O circuit operates at a clock speed higher than 100 MHz. This poses a bottleneck on the I/O circuit's performance.
What is needed is an I/O circuit that has a faster switching speed when it operates in a three state mode in order to improve its performance.

High voltage tolerant I/O circuit using native NMOS transistor for improved performance

Taiwan Semiconductor Manufacturing Co., Ltd.


Under the present invention, source input corresponding to a first release of Java byte code and target input corresponding to a second release of the Java byte code is received. The input is transformed into a first list containing class names associated with the first release and a second list containing class names associated with the second release. Thereafter, any classes corresponding to class names that appear on both lists (e.g., matching class names) are loaded. The methods within the matching classes are then compared to determine if any of the APIs have been modified between the two releases. After the comparison, the matching class names are removed from the lists. Any class names remaining on the first list represent APIs that have been removed from the second release, while any class names remaining on the second list represent APIs that have been added for the second release.

1. Field of the Invention
In general, the present invention provides a computer-implemented method, system and program product for comparing Application Program Interfaces (APIs) between JAVA byte code releases. Specifically, the present invention provides an accurate and efficient way to determine any API differences between two releases of JAVA byte code.
2. Related Art
As the use of the JAVA (JAVA is a trademark of Sun Microsystems in this country and/or abroad) programming language becomes more prevalent, many new software products are being developed in JAVA. In many instances, a software product will have multiple releases or versions. One major problem with having multiple releases is maintaining backward compatibility so that new releases can support the functionality of previous releases. Between two Software Development Kit (SDK) releases, the problem would be to maintain backward compatibility of Application Program Interfaces (APIs). As known, an API is the specific method by which a programmer writing an application program can make requests of an operating system or another application. In general, an API can be contrasted with a graphical user interface or a command interface (both of which are direct user interfaces) as interfaces to an operating system or a program. When developing APIs, a developer will often use a modeling tool such as the RATIONAL modeling tool (RATIONAL is a trademark of International Business Machines of Armonk, N.Y., in this country and/or abroad), which is commercially available from International Business Machines, Corp. of Armonk, N.Y. RATIONAL allows a developer to define a model using Unified Modeling Language (UML), and automatically generate APIs based thereon.
To date, many solutions have been proposed for determining the difference between two software releases. None of these proposed solutions, however, provides a way to determine the API differences between two releases of JAVA byte code. Specifically, under the JAVA programming language, JAVA code is first developed and then later compiled into binary or byte code (e.g., by a JAVA Virtual Machine), which represents the final "deliverable" to the customer. Existing solutions determine the differences between two releases using the uncompiled JAVA code. This is usually performed either by manually parsing the JAVA code, or by using a utility that references comments inserted by developers during the development process. However, manually determining the differences requires both a great deal of manpower and time. Moreover, relying on developer comments assumes that all necessary comments have been inserted. Since it is very easy for a developer to forget to insert a comment, there is a high likelihood that API differences between releases will go unnoticed. Still yet, because the uncompiled JAVA code does not represent the final "deliverable" to the customer, there is no way to ensure complete accuracy in the analysis.
In view of the foregoing, there exists a need for a computer-implemented method, system and program product for comparing Application Program Interfaces (APIs) between JAVA byte code releases. That is, a need exists for a way to determine the changes made to the APIs of two releases of JAVA byte code. To this extent, a need exists for any classes in common to both releases to be compared to determine if any APIs were modified between the two releases. Still yet, a need exists for classes added to, or removed from the second release (with respect to the first release) to be identified.

Computer-implemented method, system and program product for comparing application program interfaces (APIs) between JAVA byte code releases

International Business Machines Corporation


A magnetic head includes a slider body having a trailing surface meeting an air-bearing surface at a trailing edge and a thin-film transducer that includes a magnetic reproducing element with a magnetoresistive (MR) element disposed near the trailing edge within a gap material bounded by upper and lower shield layers. The thin-film transducer also includes a lower pole layer of a magnetic recording element disposed in a first general plane. The magnetic recording element further includes a coil having first and second turn layers disposed in second and third general planes, respectively. The magnetic head also includes resistive heating element with at least a portion of the heating element being disposed in a fourth general plane beneath both the lower pole layer and the coil but above the upper shield layer. Current flow through the heating element causes expansion of the magnetic reproducing and recording elements at the ABS.

Electronic data is commonly stored on discs of various types. Disc drives hold and rotate the disc while positioning a read/write head over the disc to read data from it or write data to it. The head typically comprises a read/write transducer formed on the trailing surface of a slider. When the disc media is rotated, a thin film of air forms between the disc and an air bearing surface (ABS) of the slider. During operation of the disc drive, the head is said to "fly" over the surface of the rotating media, with the ABS being disposed just above the disc surface. The thin film of air formed between the ABS and the disc surface is known as the air bearing. The very small separation distance between the transducer of the flying head and the surface of the disk is referred to as the "flying height." When the flying head is suspended above the recording disc in this manner, it can be moved over a desired concentric track of the disc to access data stored on that track.
The flying height of the head is a critical factor affecting the density of the magnetic data that can be stored on the disc. In recent years, the magnetic recording industry has strived to increase the data storage density by employing various techniques aimed at decreasing the average flying height of the head over the rotating magnetic media.
One prior art technique for reducing the flying height of the magnetic head is to incorporate a heating element into the slider to temporarily heat a portion of the head to cause the transducer elements to move closer to the rotating disc, thereby reducing the flying height during periods of reading and writing. This allows the flying height to be low during reading and writing, and to be high at other times to enhance the durability of the head-disk interface. The technique of reducing flying height when reading and writing, is commonly known as "dynamic flying height" (DFH) actuation. By way of example, U.S. Pat. No. 6,775,103 teaches a slider head having a patterned heating element which selectively heats the edge of the leading slider surface to cause the head to fly closer to the rotating disc. Similarly, U.S. Pat. No. 5,991,113 discloses a resistive heating element embedded within the slider body just ahead of the transducer. Application of power to the heating element causes the pole tips of the transducer to protrude toward the data recording surface relative to the air bearing surface of the slider, such that the flying height at the location of the transducer is reduced.
Magnetic recording heads that include a heater disposed in an overcoat layer for thermally expanding the surrounding layers, thereby adjusting the distance between the transducer device and the hard disc, are disclosed in U.S. Patent Application Publications US 2004/0184192 and US 2004/0130820. U.S. Patent Application Publication US 2004/0075940 teaches a heating element that is either physically located in the overcoat layer between the write transducer and a passivation layer, or between the read transducer and the slider body. Additionally, U.S. Patent Application Publication US 2003/0099054 discloses a thin-film magnetic head having a heater formed at a position opposite to the air-bearing surface with respect to the magnetic head elements.
Resistive heating elements have also been used in so-called "thermally assisted" magnetic recording (TAMR), wherein the magnetic material in the media is locally heated to near or above its Curie temperature in order to lower the coercivity of the recording media during writing. At ambient temperature, the coercivity is high enough for thermal stability of the recorded bits. A good example of a TAMR disk drive is found in U.S. Pat. No. 6,493,183, which discloses a thin-film write head having a resistive heater located in the write gap between the pole tips of the write head.
A variety of problems have plagued prior art head designs that utilize Joule heating elements for dynamically controlling the flying height of the read/write transducer. One problem has been excessive thermal stress caused by localized heating of the slider and transducer materials. Relatively high power to the heater is often required to produce sufficient pole tip protrusion. Other problems associated with thermal heating of slider heads include the difficulty in achieving an optimal transducer protrusion profile, overheating of the magnetoresistive reading element, deformation of the shape of the slider, and poor control over pole tip protrusion. For instance, designs that include a heater element disposed in the overcoat layer often suffer from disproportionate expansion of the overcoat material such that the overcoat material contacts the surface of the magnetic disc, thereby increasing the distance between the magnetic recording elements and the disc surface. Many of these problems may lead to deleterious consequences in prior art magnetic recording heads.
Another past approach involves controlling the flying height dynamically by applying a voltage between the flying head and the magnetic storage medium. The applied voltage controls the vertical movement of the head to increase or decrease the flying height by electrostatic forces. This technique is described in U.S. Pat. No. 6,529,342. One major drawback of the electrostatic force approach, however, is the inability to maintain precise control over the flying height. Another approach involves piezoelectric head-positioning techniques. Such techniques are disclosed in U.S. Pat. Nos. 6,577,466 and 5,943,189. A magnetic disk drive that incorporates a piezoelectric element with a resistive heater located between the read transducer and the slider body is described in U.S. Patent Application Publication US 2004/0165305. A drawback of such piezoelectric techniques, however, is that they are typically difficult to manufacture without thermally damaging the read transducer.
In yet another approach, U.S. Pat. No. 6,707,646 discloses a method and apparatus for dynamically controlling the flying behavior and height of a read/write head by manipulating the spring constant of the suspension. The spring constant is changed by locally varying the material temperature of the suspension arm using a small heater deposited on the surface of the suspension arm. This technique suffers from serious reliability and control problems.
Thus, there is an unsatisfied need for a solution to the problem of achieving a low flying height during reading/writing processes while avoiding or reducing the problems inherent in prior art DFH actuation approaches.

Magnetic recording head with resistive heating element located near the write coil


Usage rights for a digital work are established prior to creation of the corresponding content. The rights can be associated with the content after the content is created. A content creation, such as a video recorder or a still camera, device can store labels of the rights and can associate usage rights with content in real time as the content is created.

This invention relates generally to assignment of usage rights for digital works. In particular, this invention relates to establishing usage rights for before the content is created. Content that has not yet been created can be, for example, a live event (such as a sports event) that has not yet happened. It can also be, for example, a movie that has not yet been filmed or a book that has not yet been written. Moreover, the content in question could be, for example, a movie created many years ago. In that example this invention would pertain to the version of that movie in digital form, prepared and packaged for distribution in a manner described in this invention. Similarly, a two thousand year old book prepared as a new digital work can be content to be created in the future equally as with the case of the book that has not yet been written. Further, an item of content already in digital form can be content that has not been created where a new digital instantiation of the content is created.
One of the most important issues impeding the widespread distribution of digital works via electronic means, and the Internet in particular, is the current lack of protection of intellectual property rights of content owners during the distribution and the usage of the digital content. Efforts to resolve these issues have been termed "Intellectual Property Rights Management" ("IPRM"), "Digital Property Rights Management" ("DPRM"), "Intellectual Property Management" ("IPM"), "Rights Management" ("RM"), and "Electronic Copyright Management" ("ECM"), collectively referred to as "Digital Rights Management" ("DRM") herein.
Due to the expansion of the Internet in the recent years, and the issues relating to privacy, authentication, authorization, accounting, payment and financial clearing, rights specification, rights verification, rights enforcement, document protection, and collection of licensing fees DRM has become even more important. Because the Internet is such a widely used network whereby many computer users communicate and trade ideas and information, the freedom at which electronically published works are reproduced and distributed is widespread and commonplace.
Two basic types DRM of schemes have been employed to attempt to solve the document protection problem: secure containers and trusted systems. A "secure container" (or simply an encrypted document) offers a way to keep document contents encrypted until a set of authorization conditions are met and some copyright terms are honored (e.g., payment for use). After the various conditions and terms are verified with the document provider, the document is released to the user in clear form. Commercial products such as IBM's CRYPTOLOPES™ and InterTrust's DIGIBOXES™ fall into this category. Clearly, the secure container approach provides a solution to protecting the document during delivery over insecure channels, but does not provide any mechanism to prevent legitimate users from obtaining the clear document and then using and redistributing it in violation of content owners' intellectual property.
Cryptographic mechanisms are typically used to encrypt (or "encipher") documents that are then distributed and stored publicly, and ultimately privately deciphered by authorized users. This provides a basic form of protection during document delivery from a document distributor to an intended user over a public network, as well as during document storage on an insecure medium.
In the "trusted system" approach, the entire system is responsible for preventing unauthorized use and distribution of the document. Building a trusted system usually entails introducing new hardware such as a secure processor, secure storage and secure rendering devices. This also requires that all software applications that run on trusted systems be certified to be trusted. While building tamper-proof trusted systems is a real challenge to existing technologies, current market trends suggest that open and untrusted systems such as PC and workstations using browsers to access the Web, will be the dominant systems used to access digital works. In this sense, existing computing environments such as PCs and workstations equipped with popular operating systems (e.g., Windows™, Linux™, and UNIX) and rendering applications such as browsers are not trusted systems and cannot be made trusted without significantly altering their architectures. Of course, alteration of the architecture defeats a primary purpose of the Web, i.e. flexibility and compatibility.
U.S. Pat. Nos. 5,530,235, 5,634,012, 5,715,403, 5,638,443, and 5,629,980 introduced many basic concept of DRM. All of these patents are hereby incorporated herein by reference in their entirety. U.S. Pat. No. 5,634,012 discloses a system for controlling the distribution of digital documents. Each rendering device has a repository associated therewith. A predetermined set of usage transaction steps define a protocol used by the repositories for carrying out usage rights associated with a document. Usage rights are encapsulated with the content or otherwise associated with the digital work to travel with the content. The usage rights can permit various types of use such as, viewing only, use once, distribution, and the like. Rights can be granted based on payment or other conditions.
In conventional DRM techniques, a content owner, or other authorized party, specifies the rights after the content has been created and protects, e.g. encrypts, the content at the same time. A private key is used to encrypt the content, and a label is generated which specifies the usage rights. The rights label and the protected content are then associated and stored. A license to the content can later be generated for a user to permit the user to use or access the content. The license includes a private key which has been encrypted using a public key in known manner.
To access the content, the private key can be used to decrypt the encrypted public key, allowing the user to decrypt the content. This technique works well if the content is available at the time of the rights specification. However, this technique breaks-down if one wants to specify rights for content and issue a license for the content before the content is available. For example, a distributor of streaming video to a live future event, or of photographs to a future event, may want to begin selling licenses to the content prior to the event. Conventional DRM systems fall short of presenting processes for improving the security, user interface, organization, structure, and accuracy of the DRM system, particularly for those works that are not yet in existence.

Method and apparatus for establishing usage rights for digital content to be created in the future


The present invention provides a method for selecting a working remote radio unit for a user equipment. By comparing isolation of a current working RRU set of a user equipment with a preset isolation threshold, resource utilization and signal interference can be effectively balanced and a working remote radio unit of the user equipment can be accurately determined.

At present, long term evolution (LTE) systems generally adopt intra-frequency networking, and have severe co-channel interference. In practice, a macro diversity gain is obtained by using a method in which multiple RRUs are used to work for one user equipment, for example, multicast or a multi-remote radio unit (RRU) cell, so as to reduce the interference.
When multiple RRUs are used to work for one user equipment, if all RRUs in a cell work for the user equipment, resource utilization is rather low. Therefore, it is necessary to select several effective RRUs to work for the user equipment, that is, select a working RRU for the user equipment. In the prior art, there are mainly two methods for selecting a working RRU for a user equipment. A first method is that, according to reference signal receiving powers (RSRPs) of the user equipment received by all RRUs in a cell, RSRPs are sorted in descending order, and RRUs corresponding to the first N RSRPs are selected as working RRUs of the user equipment. A second method is that, according to RSRPs of the user equipment received by all RRUs in a cell, the RSRPs are sorted in descending order, and RRUs corresponding to N RSRPs, differences between which and a first RSRP are within a certain threshold, are selected as working RRUs of the user equipment. The foregoing two methods in the prior art both cannot achieve a good balance between resource utilization and interference cancellation, and cannot accurately determine a working RRU of a user equipment.

Method and base station for selecting working remote radio unit for user equipment


An imager device that has mitigated dark current leakage and punch-through protection. The transistor associated with the photoconversion device is formed with a single (i.e, one-sided) active area extension region on one side of the transistor gate opposite the photoconversion device, while other transistors can have normal symmetrical (i.e, two-sided) active area extension regions (e.g., lightly doped drains) with resulting high performance and short gate lengths. The asymmetrical active area extension region of the transistor associated with the photodiode can serve to reduce dark current at the photoconversion device. The punch-through problem normally cured by a lightly doped drain is fixed at the transistor associated with the photoconversion device by adding a Vt adjustment implant and/or increasing its gate length.

A CMOS imager circuit includes a focal plane array of pixel cells, each one of the cells including a photoconversion device, for example, a photogate, photoconductor, or a photodiode for accumulating photo-generated charge in a portion of the substrate. A readout circuit is connected to each pixel cell and includes at least an output transistor, which receives photogenerated charges from a doped diffusion region (an electrically active area) and produces an output signal which is periodically read-out through a pixel access transistor. The imager may optionally include a transistor for transferring charge from the photoconversion device to the diffusion region or the diffusion region may be directly connected to or part of the photoconversion device. A transistor is also typically provided for resetting the diffusion region to a predetermined charge level before it receives the photoconverted charges.
A basic, three-transistor (3T) CMOS active pixel sensor (APS) design used in many applications contains a photodiode; a reset transistor, for resetting the photodiode voltage; a source follower transistor having a gate connected to the photodiode, for producing an output signal, and a row select transistor for selectively connecting the source follower to a column line of a pixel array. In a four-transistor (4T) configuration, a transfer transistor is employed to gate charges from the photodiode to the gate of the source follower transistor.
Exemplary CMOS imaging circuits, processing steps thereof, and detailed descriptions of the functions of various CMOS elements of an imaging circuit are described, for example, in U.S. Pat. No. 6,140,630 to Rhodes, U.S. Pat. No. 6,376,868 to Rhodes, U.S. Pat. No. 6,310,366 to Rhodes et al., U.S. Pat. No. 6,326,652 to Rhodes, U.S. Pat. No. 6,204,524 to Rhodes, and U.S. Pat. No. 6,333,205 to Rhodes. The disclosures of each of the forgoing are hereby incorporated by reference herein in their entirety.
The transistors of CMOS imager circuits are typically n-channel MOSFETs. In other semiconductor technology, e.g., DRAM technology, n-channel transistors typically have LDD (lightly doped drain) implants to improve off-state leakage and punch through leakage for short gate length devices. However, when this technique is used for transistors associated with photodiodes of CMOS imager circuits such as, transfer or reset transistors, a problem is presented. The LDD implant on the photodiode side of the transistor causes high electric fields to the substrate, which results in higher imager dark current.
This problem associated with CMOS imagers is dark current generation. Pixel cells of CMOS imagers are typically electrically isolated from one another by STI (shallow trench isolation) regions, where trenches are etched into the substrate and filled with a dielectric. An LDD-type implant in the photodiode region of the pixel increases the electric field in that region, resulting in increased photodiode leakage or increased dark current. Another physical source of dark current produced by such an LDD implant would be along the transistor gate associated with the photodiode as well.
CCD imagers also include signal output circuitry, which includes at least an output transistor, a reset transistor, a floating diffusion region, a Vcc voltage source, a source follower transistor and a voltage output. This circuitry can also suffer from dark current generation and current leakage, which results in poor device performance.
A method and apparatus which mitigates the leakage and dark current problems, but which still enables effective punch-through protection would be advantageous.


An improved waveguide isolator that eliminates the transitions to air-filled waveguides between ferrite elements and absorptive load elements is described. The waveguide isolator in accordance with the invention can be implemented in variations from a single ferrite to load transformer held in close proximity to an absorptive load element to any number of ferrite elements and absorptive load elements as required to achieve the desired isolation performance or to create a switch matrix with any combination of input and output ports. The waveguide isolator in accordance with the invention eliminates the transitions between ferrite to load transformers and absorptive load elements and thus reduces component size and mass.

1. Field of the Invention
The invention relates in general to waveguide circulators for the non-reciprocal transmission of microwave energy; and more particularly to a novel system for reducing the size, mass, and insertion loss of the transition from a first circulator to either a second circulator or to a terminating load.
2. Description of the Related Art
Multi-junction waveguide ferrite circulator assemblies have a wide variety of uses in commercial and military, space and terrestrial, and low and high power applications. A waveguide circulator assembly may be implemented in a variety of applications, including but not limited to LNA redundancy switches, T/R modules, isolators for high power sources, and switch matrices. Ferrite circulators are desirable for these applications due to their high reliability, as there are no moving parts required. This is a significant advantage over mechanical switching devices. In most of the applications for multi-junction waveguide switching and non-switching circulators, small size, low mass, and low insertion loss are significant qualities, for example, in satellites where redundancy switches are desired directly behind an antenna array.
A commonly used type of waveguide circulator has three waveguide arms arranged at 120 and meeting in a common junction. This common junction is loaded with a non-reciprocal material such as ferrite. When a magnetizing field is created in this ferrite element, there will be a gyromagnetic effect that can be used as a switching action of the microwave signal from one waveguide arm to another. By reversing the direction of the magnetizing field, the direction of switching between the waveguide arms is reversed. Thus, a switching circulator is functionally equivalent to a fixed-bias circulator but has a selectable direction of circulation. RF energy can be routed with low insertion loss from one waveguide arm to either of the two outputs arms. If one of the waveguide arms is terminated in a matched load, then the circulator acts as an isolator, with high loss in one direction of propagation and low loss in the other direction. Reversing the direction of the magnetizing field will reverse the direction of high and low isolation.
For applications where additional isolation is required between waveguide ports or where additional input/output ports are required, multiple waveguide circulators and isolators are used. The most basic building blocks for multi-junction waveguide circulator networks are single circulator junctions and single load elements, both optimized for an impedance match to an air-filled waveguide interface. For the purposes of this description, the terms "air-filled," "empty," "vacuum-filled," or "unloaded" may be used interchangeably to describe a waveguide structure. The circulators and loads can be connected in various configurations as required for the desired isolation and input/output port configuration. For circulator and isolator junctions, the direction of circulation may either be fixed or switchable.
Conventional waveguide networks comprised of multiple ferrite elements typically have impedance-matching transitions between the ferrite elements. For example, conventional waveguide circulators may transition from one ferrite element to a dielectric-filled waveguide such as a quarter-wave dielectric transformer structure, to an air-filled waveguide, and then back to another dielectric-filled waveguide section and the next ferrite element. The dielectric transformers are typically used to match the lower impedance of the ferrite element to that of the air-filled waveguide. There are several disadvantages to utilizing transformers in such a manner. When dielectric transformers are used, RF losses can be introduced in various ways, such as the following: losses in the dielectric material itself, increased losses in the waveguide surfaces due to the high concentration of RF currents on the metal waveguide surfaces disposed directly above and below the dielectric transformer element, and losses in the adhesives typically used to bond the transformers to the conductive housing.
The use of dielectric transformers also takes up additional space in the waveguide structure. This increases the minimum separation distance that can be obtained in multi-junction assemblies when the input/output ports of multiple circulators are intercoupled to provide a more complex microwave switching or isolation arrangement. This can result in a multi-junction waveguide structure that is undesirably large and heavy.
Just as the standard transitional sections from one ferrite element to another occupy a significant amount of space in traditional multi-junction waveguide circulator networks, so do the transitions from a ferrite element to an absorptive load. These load elements are required to absorb the power that passes through the ferrite element in one direction when the circulator is used as an isolator. Although decreased loss is not an issue for the absorptive load design, decreased size and mass are still desirable attributes of the design.
U.S. Pat. No. 4,697,158 (the '158 patent) discloses one method for decreasing the spacing and loss between the ferrite elements by replacing the standard dielectric transformers with a reduced height waveguide transition. This method removes the transformers, but the reduced height transition is sensitive to dimensional variations, which results in a design that is expensive and difficult to manufacture and assemble. Additionally, the reduced height transition design requires the presence of a significant gap between the ferrite elements, which increases the size of the component.
In view of the problems with the conventional waveguide circulator structures disclosed above, there is a need for a multi-junction waveguide circulator structure with improvements in the critical areas of size, mass, cost, and insertion loss.


A solvent borne brushable coating composition having improved sag resistance and process for using the same are provided. The composition includes a crosslinkable component having one or more polymers having two or more crosslinkable groups a crosslinking component comprising one or more crosslinking agents having crosslinking groups; and a sag control agent of polyurea in drying oil. When a layer a pot mix resulting from mixing of the crosslinkable and crosslinking components is brush applied over a substrate, it has high sag resistance, low brush drag while providing desired coating properties, such as high gloss and rapid cure even under ambient conditions. The solvent borne brushable coating compositions is well suited for use in automotive refinish applications as well as direct-to-metal industrial applications, such as construction and transportation equipment.

Brushability is the ability of paint to be easily and uniformly applied to a surface using a paint brush. Brushability is adversely affected as a result of brushmarks (striations) that do not flow out, sagging, high brush drag that makes brushing difficult, and low brush drag that makes brushing so easy that overspreading of the paint occurs. Other defects such as cratering or uneven coating thickness can also occur. Lap marks will occur if the paint formulation or the way that it is being applied will not allow a wet edge to be maintained, i.e., there would be a difference in the gloss between dried layer and next abutting wet layer being brushed. Brush drag, a measure of the ease or difficulty of the brushing action, is a major factor in brushability. High brush drag helps produce high film thickness, but can make brushing so difficult that the painter can easily get tired of applying paint. Low brush drag means that the paint may be easy to apply, but then would result in an application thin uneven coating with poor hiding. The brushability of two-pack cure coating compositions, i.e., enamels, is even more difficult to achieve since it is difficult to control premature curing of a pot mix on paint bristles as well as different parts of bristles containing pot mix that have been exposed to the paint.
Moreover, another key aspect of brushable coating composition is its sag resistance. Layers of coating compositions over slanted or vertical substrate surfaces tend to sag when first applied. The thickness of the layer applied, component contents in the composition as well as its viscosity do affect the overall sagging of the applied layer. The lesser the sag, the better is the sag resistance of the applied layer. Thus, a need still exists for a brushable solvent borne ambient cure enamel that has low brush drag, low VOC, desired coating properties, such as gloss but one that also has improved sag resistance.
In the past, Kaolin has been used to improve the brushability of two pack coating compositions, such as enamels. However, the presence of Kaolin could affect the coating properties of a coating when exposed to environmental damage such as abrasion from dirt and grime on the road and cracking. Thus, a need exists to improve the brushablity of a coating composition having improved sag resistance of a layer resulting therefrom, especially for ambient cure automotive paint used in refinish applications.

Solvent borne coating composition having improved sag resistance and process for producing coatings therefrom


A method and system for downloading software update data for installing a revised software product on a client computer minimizes the amount of update data to be transmitted over the network by downloading only those files needed to put the client computer in the state for installing the product. In the beginning of the downloading process, the client computer obtains from a setup server an initial setup package that includes a setup program and a list of files required for installing the software product. The setup program running on the client computer then determines whether some current or earlier versions of those files required for installation already exist on the client computer, and compiles a request list of files needed for updating the client computer. The client computer sends the request list to a download server, which maintains a collection of update files and patches. In response to the request list, the download server downloads updating files to the client. Depending of the availability of the requested files or other factors, the downloaded files may or may not be exactly those requested. Using the downloaded files, the setup program updates the existing files to provide the set of installation files on the client computer. The desired revised software product is then installed on the client computer.

This invention relates generally to the installation and updating of computer software products, and more particularly to the downloading of update data needed for updating a software product or components thereof.
Most popular software products nowadays constantly go through revisions to fix xe2x80x9cbugsxe2x80x9d or add new features and functionality. To that end, each revision of a software product or component may require the addition of new files and/or the replacement of existing files with files of newer versions. Once a vendor has isolated a software product problem and created a solution for the problem, it would want to put that fix into an update and make the update widely available to the customers. Software vendors have a business incentive to distribute software updates to customers as quickly and trouble-free as possible.
The Internet provides an important channel for customers to obtain the latest updates for software products. The explosive growth of Internet usage has created a common expectation by customers that software products and updates be provided online for downloading. It is also in the interest of software vendors to promote the use of the Internet to distribute updates, because it reduces their costs and allows customers to obtain the fix for an identified problem as soon as the fix is made available for downloading. The vendor sites on the Internet can be designed to make it very simple to discover and locate update files for an application. The technical aspects of file download have mostly disappeared from the user""s view, and are now typically handled by the operating system.
In a conventional approach, a software vendor constructs a software update as a xe2x80x9cpackagexe2x80x9d for download. This package is typically a self-extracting executable file with the setup program and each of the product""s updated files embedded and compressed to make the package smaller. The size of the package is generally the sum of the compressed sizes of each changed file, plus the size of the extraction code itself. Upon execution, the package extracts each of the contained files to a temporary location, then starts the setup program to install each file to a proper location in the system""s directory. Files that are shipped in a compressed form are decompressed as they are installed. Any existing file of the same name in the same location would simply be overwritten by the replacement file.
Even though the Internet makes wide and quick distribution of software updates possible, the limited bandwidth of network transmission has caused problems. The sheer sizes of common software applications have caused the download sizes of updates to become unreasonable large. Usually a multitude of fixes for a variety of problems of a product will be grouped into an update. If a vendor updates a software product on a regular basis, the download size of the update package will continue to grow, because the vendor cannot omit files under the assumption that the user already has those files from earlier updates. Because the update package combines a number of whole files, it may be quite large even when the files are compressed. Sometimes, even on the fastest modem connections, several hours are needed to obtain the update for a single product.
The time-consuming aspect of the conventional downloading process is, of course, undesirable. In some cases, customers pay long-distance or connection time charges during these file downloads. Any reductions in connection time will reduce the direct monetary cost for these customers. The vendors typically also have some distinguishable costs relating to the sizes of downloads they provide, so reducing the sizes may give them direct monetary benefits as well. Reducing the sizes of downloads will increase their available network bandwidth, allowing them to serve more customers with existing network server equipment.
The long time it takes to download a large update also makes the downloading process more vulnerable to various network connection problems. There are a number of reasons why an Internet session might be disconnected prematurely, including telephone line noise, call-waiting signals, and unintentional commands. Some Internet service providers enforce a connection time limit, limiting the amount of time the user can be on-line in a single session. If the user is downloading a large file when the network connection is cut off, they may have to start over. Most common operating systems and file transfer protocols do not allow the file transfer to be resumed, so any interim progress would be lost, and the transfer would have to be restarted. The opportunities for failure are so numerous that many users find it nearly impossible to obtain the update online. If the size of an update package is too large, they may never be able to completely download it.
Another significant drawback of the conventional update downloading approach is that it can be fairly inefficient. Many downloaded files are actually never used for updating the software product. Larger software applications frequently have a wide variety of installation options, and very few customers will actually use all of these options. Some examples include spell checkers, document templates, and assistance features for the visually impaired. Another example of common installation option relates to drivers for printers. Most users will need only one or two printer drivers out of a collection of hundreds. Since the vendor has no way of knowing in advance which options will be needed, it would normally include the fixes for all product options in the update package. At setup time, the setup program will recognize that certain files do not need to be installed, so some of the data that was downloaded will be discarded. Since some software products, such as the spell checker, share files with other products, it is possible that the customer will already have installed one or more of the updated files on the system. Again, some of what was downloaded (the spell-checker, in this case) will be discarded.
More recently, vendors have begun to utilize binary patching techniques to update older versions of files into their new forms. The changes needed to modify an existing file into a new form are detailed in a xe2x80x9cpatch.xe2x80x9d Usually, itemizing the changes needed to alter an existing file will take significantly less space than the entire new file would. Data compression techniques will frequently reduce executable files by a ratio of about 3:1, proportional to the original file size. In comparison, the latest file patching techniques achieve ratios more closely proportional to the size of the changed contents, and patching xe2x80x9ccompressionxe2x80x9d ratios between 10:1 and 100:1 are common.
To utilize patching for software updates, the vendor must be aware of which versions of files have already been distributed. Most patching tools will accept multiple xe2x80x9coldxe2x80x9d file versions as input, and produce a patch that is usable on any of those versions processed. The patch, however, cannot be used to convert a version that is not included in the input for generating the patch. The patch produced for multiple older versions will be larger than a patch prepared for only one of the older versions.
A download package that exploits patching is typically an executable file with the setup program and a patch for each of the product""s updated files embedded. The size of the update file to be downloaded is generally the sum of the sizes of each patch file plus the size of the extraction code itself. Upon execution on a customer""s computer, the setup program reconstitutes each of the updated files by combining the existing files on the customer""s computer with the corresponding patch data. The included setup program then installs each reconstituted file to the proper locations in the system""s directory structure. Patches, of course, cannot not be used to update files that have not been previously shipped to the customer or somehow are not found on the customer""s system, and the full copies (which may or may not be compressed) of such files have to be downloaded. An update package containing mostly patches and few or no complete files can potentially be significantly smaller than a package with most full files. A patch package may thus require considerably less time to download as compared to conventional update packages.
The patching download approach, however, still has many of the other deficiencies of a full download. Moreover, it introduces a few new, and much more serious, opportunities for failure. The additional risks in patching download come from the need to try to anticipate, at the time the package is constructed, which versions of which files will be present on a customer""s system. If the vendor has shipped multiple versions, interim releases, test fixes, or previous update packages, then every revision of an existing file should be considered in preparing a patch. If the customer""s system contains a version of a file that was overlooked by the vendor (for example, an update that was subsequently produced for another problem), the customer will discover only after downloading the package that one or more of the patches cannot be applied. If the vendor has not included any provision to deal with this scenario, the customer may end up running an untested combination of programs. For an operating system update, the user may not even be able to restart their machine to try another update. For many customers, this risk may outweigh any benefit of implementing the update.
Thus, supplying every prior revision of each file of the software product to the patch generator appears crucial to avoid the patch-mismatching problem. Careful tracking procedures can be used to make sure no revisions are missed from the from the update package. The size benefit of a patch download, however, can dissipate quickly if the vendor attempts to include patching data for all earlier versions of the files of the software product. Each additional prior version supplied to the patch generator will cause the patch size to increase. For instance, an operating system may have thirty major service packs and a thousand minor updates supplied over its lifetime. The patching package may become so large that it would be better to ship that full file in compressed form instead, thus defeating the purpose of using binary patching in the first place.
The patch download approach, like the full-file download approach, is also not satisfactory in terms of efficiency and reliability. When a patch file contains change information for multiple revisions, it will be larger than it would be for any one of those revisions. The difference in size is recognized as additional downloaded data that will be discarded. Patches for options that might not be installed and patches for shared files that might already be installed must be supplied. The downloading of a patching package is also subjected to all the connection problems experienced by the full-file download approach. In short, a patching download has many of the deficiencies of a full download, except possibly the reduced download size. The added possibility of errors due to file-patch mismatch, however, may make this approach unacceptable to many users.
Thus, there is a great need for a more efficient and robust way to download update data for installing a revised software product.
In view of the foregoing, the present invention provides a method and system of downloading update data for installing a software product on a client computer that minimizes the amount of data to be downloaded by downloading only those files needed to update the client computer. In the beginning of the downloading process, the client computer obtains from a setup server an initial setup package, which includes a setup program and a list of files required for installing the software product on the client computer. The setup program running on the client computer determines whether some current or earlier versions of those files required for installation already exist on the client computer, and compiles a download request with a list of files needed for updating the client to provide the required installation files. The download request is automatically sent to a second server (which may be the same as the setup server) that stores a collection of update data, such as files and patches. The second server, in response to the request, prepares update files corresponding to the requested files and downloads them to the client. The downloaded files may or may not be exactly the requested files. Using the downloaded files, the setup program updates the existing files to create the set of installation files for the revised software product on the client computer. The revised software product is then installed on the client computer.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments, which proceeds with reference to the accompanying figures.

Method and system for downloading updates for software installation


A method and an apparatus for programming data, and a method and an apparatus for setting a data programming mode used for the same are provided. The method for programming data in a non-volatile memory device includes determining a programming mode to be used for data programming among at least two programming modes prescribing different verify voltages for cells to be programmed, based on set mode information, and programming data according to the determined programming mode. Consequently, the loss of programmed data is prevented through an SMD reflow process.

Recently, non-volatile memory devices are used to store data, in electronic devices such as a mobile phone, a camera and a tablet. The term "non-volatile memory device" refers to a memory device which maintains data recorded in a cell of the memory device even when power is not supplied to it.
When data is stored in the non-volatile memory device, in other words, when data is programmed, the non-volatile memory device applies a high voltage between a control gate and a substrate, and traps electrons in a floating gate, thereby differentiating a program cell to differ from an erase cell. The term "program cell" refers to a cell in which electrons are trapped in a floating gate. In contrast, the term "erase cell" refers to a cell in which electrons are not trapped in a floating gate.

Method and apparatus for surface mounting a non-volatile memory device


The aspiration catheters, systems and methods include a catheter having an elongated body with a cross-section having a flat side and a curve near the distal end. The first side of the cross-section can contact a first side of a delivery lumen in a first orientation, and a second side of the cross-section contacts the first side of the delivery lumen in a second orientation rotated 180° from the first orientation. The curve can be directed 90° relative to a normal of the flat side. The systems and methods can utilize two catheters, and a key joint formed with the two catheters which can rotationally fix the catheters with respect to each other, and the first and second catheters each include at least one pre-formed curve near the distal end. The two catheters can be moved proximally and distally for positioning in the right and left bronchi.

Suction catheters are used to remove respiratory secretions and other material from airways, and in general for treating or preventing a number of respiratory conditions. For example, when patients develop pneumonia or bronchitis they cough to clear the airways. If, however, the pneumonia worsens enough to require intubation with an endotracheal tube and placement on a ventilator (breathing machine), patients are unable to cough (due to sedation and the mechanical impediment of the endotracheal tube), and so suction catheters are passed into the endotracheal tube to clear the infected mucous and thus improve the ability to breathe and to help treat the infection. Suction catheters may also be used in patients without pneumonia to prevent the occurrence of pneumonia or other respiratory complications. However, the right bronchus (airway) is straighter and of greater diameter, so that suction catheters passed into the trachea go into the right bronchus more than 98% of the time. This anatomic fact is well known by all physicians (pulmonologists, surgeons and anesthesiologists) who manage the airway.
The current suction catheters are passed blindly into the trachea and cannot be directed into either side. They are connected to the endotracheal tube, and kept on the patient's bed inside a sleeve that is not sterilized, and allow the bacteria to grow and accumulate. Thus, the catheters become contaminated, contaminate the sleeve, and re-introduce the same bacteria back into the patient's airway when suctioning is repeated. Thus, it re-introduces the problem that it is designed to eradicate: infected secretions.
Because usually only the right lung is cleared of secretions, the left lung becomes a reservoir of infection, even if the right lung is the source of infection, as secretions from either lung move or contaminate the opposite lung. If the right lung is the source of the pneumonia, for example, this reservoir may be limited. However, if the left lung is the source, it will never be cleared by standard suctioning, and often requires bronchoscopy. This failure to clear the lung prolongs time on the ventilator, prolongs the recovery time from pneumonia, and increases the risk of developing resistant infections and of dying from pneumonia.
Together, pneumonia and influenza represented a cost to the U.S. economy in 2005 of $40.2 billion, $6 billion due to indirect mortality I costs and $34.2 billion in direct II costs, according to the American Lung Association. According to preliminary mortality data from 2011 from the CDC, age-adjusted death rates decreased significantly from 2010 to 2011 for 5 of the 15 leading causes of death (heart diseases, Malignant neoplasms, Cerebrovascular disease, Alzheimer's disease, and kidney diseases). However, the age-adjusted death rate increased for six leading causes of death: Chronic lower respiratory diseases, Diabetes mellitus, Influenza and pneumonia, Chronic liver disease and cirrhosis, Parkinson's disease, and Pneumonitis due to solids and liquids. Three of these causes (chronic lower respiratory disease, influenza and pneumonia, and pneumonitis) are all variants of pneumonia. These data demonstrate that pneumonia is an already dangerous disease that is becoming more deadly.
There exists a need for improved treatment and prevention of pneumonia and other respiratory conditions and complications.

Aspiration catheters, systems, and methods


Lead-free primary explosives of the formula (cat)Y[MII(T)X(H2O)6-X]Z, where T is 5-nitrotetrazolate, and syntheses thereof are described. Substantially stoichiometric equivalents of the reactants lead to high yields of pure compositions thereby avoiding dangerous purification steps.

Primary explosives are used in small quantities to generate a detonation wave when subjected to a flame, heat, impact, electric spark, or friction. Detonation of the primary explosive initiates the secondary booster, main-charge explosive, or propellant.
Toxic mercury fulminate, lead azide, and lead styphnate are three common primary explosives, but their deleterious environmental impacts and effects on human health have made their replacement essential. Countless numbers of energetic compounds have been designed and screened as possible primaries, including organic compounds, organic salts, zwitterions, simple organic salts, coordination complexes, and metastable interstitial composites, but none have simultaneously met the six criteria for green primaries: (i) insensitive to moisture and light; (ii) sensitive to initiation but not too sensitive to handle and transport; (iii) thermally stable to at least 200° C.; (iv) chemically stable for extended periods; (v) devoid of toxic metals such as lead, mercury, silver, barium, or antimony; and (vi) free of perchlorate. Thus, a need remains for environmentally friendly, or green, primary explosives.

This patent is subject to a terminal disclaimer.


A substrate supporting member, and a substrate processing apparatus including the substrate supporting member are provided. The substrate supporting member for mounting and supporting a substrate on a substrate supporting surface thereof, and controlling a temperature of the substrate by thermal transfer between the substrate and the substrate supporting surface, wherein the substrate supporting surface is smaller than the substrate, and includes a central region, an intermediate region, and a peripheral region. A thermal conductivity between the substrate and the peripheral region is greater than that between the substrate and the central region which is greater than that between the substrate and the intermediate region located between the central region and the peripheral region.

In a manufacturing process of semiconductor devices, e.g., an etching process or a film forming process is performed by using a plasma.
The plasma processing using the plasma is generally performed by a plasma processing apparatus. The plasma processing apparatus includes, in a processing chamber, an upper electrode to which a high frequency power for generating the plasma is applied, a susceptor for supporting a substrate, and the like. Further, an inside of the processing chamber is depressurized to a predetermined pressure, and a processing gas is supplied into the processing chamber, and then, the high frequency power for generating the plasma is applied to the upper electrode to etch a film on the substrate by the plasma generated in the processing chamber.
Even when the plasma processing is performed under a high temperature condition to generate the plasma, it is required to constantly maintain a process condition in which the substrate is processed, e.g., a temperature of the substrate. On this account, the susceptor for supporting the substrate is temperature controlled, for example, by being provided with a circulating coolant to control the temperature of the substrate.
In case a top surface of the susceptor is smaller than that of the substrate, a peripheral portion of the substrate is outwardly extended beyond the top surface of the susceptor (for example, Japanese Patent Laid-open Application No. H11-121600). Consequently, it is prevented that the top surface of the susceptor is exposed to the upper electrode side to be etched by the plasma or the like during the etching process.
However, in case the peripheral portion of the substrate is extended beyond the susceptor as described above, during the process, a large amount of heat is applied to the peripheral portion of the substrate, and the peripheral portion of the substrate is not cooled sufficiently. On this account, the temperature of the substrate mounted on the susceptor becomes higher as a position on the substrate approaches the peripheral portion of the substrate, and thus, the in-surface temperature is not maintained uniformly. In case the temperature of the substrate surface is not uniform, for example, an in-surface etching uniformity is deteriorated, and thus, for example, a size of a line width of a central portion of the substrate becomes different from that of the peripheral portion.

Substrate supporting member and substrate processing apparatus