A method for detecting memory access errors which occur while executing a computer program. Spatial and temporal attributes are provided for a data object and these attributes are associated with each pointer to that data object. On a dereference to a pointer, a memory access check is performed which determines (a) whether the dereference falls outside the address range within which valid accesses may be made to the data object, and (b) whether the dereference falls outside the time period within which valid accesses may be made to the data object. If the dereference falls outside the valid address range, a spatial error is flagged. If the dereference falls outside the valid time period, a temporal error is flagged. In addition, a method is described for converting a preexisting source-language program file into a safe program and a method is described for optimizing memory-access checks.

Conventional compute program validation techniques contemplate checking the "type" of the access requested against the "type" of the data item being accessed. (A data item is often referred to as an "object" or a "data object".) An analogy might be to describe the attempted access's type as a key, and the object's type as a lock. The computer program compiler and/or run-time support could check the lock (as defined by the object type of the data object) to prevent accesses to that data object by any attempted access whose key (as defined by the access type of the access) does not meet the requirements of that lock. For example, the C programming language defines many different object types, some examples being integer (int), floating point (float), or pointer (*). When an expression in the program attempts to access the object, the compiler checks the access type of the access against the object type of the object. An attempt to access an integer object with a floating point access should be detected as an error by the compiler, and flagged as such.
In the following discussion, a pointer is a program variable which contains the address of another variable and also possibly contains attributes describing the variable pointed to; a pointer can be used to derive an address (called a pointer value) to be used to access a data object located in computer memory. Generally, a pointer is also located in computer memory (either in storage or in a register). A pointer provides one level of indirection, in that rather than addressing the data item itself, a program can address the pointer, which in turn provides the pointer value used to address the data item.
The referent of a pointer is the variable (also called the data object or the object) whose memory address is contained in the pointer. The contents of a pointer can be copied into other pointers, and thus several different pointers to a single referent may exist at the same time.
The type of a pointer specifies certain attributes of the referent (e.g., specifying to the compiler that the referent is "integer" type as opposed "floating point" type).
A memory access is, e.g., a read or a write to a referent.
The term dereference is used as a blanket term for any indirect memory access (i.e., a memory access through use of a pointer) of a referent--either through application of the dereference operator (e.g., `*` or `->` in C) to a pointer, or through indexing an array or pointer variable (e.g., `[]` in C).
Programming errors are costly, both in terms of time and money. Memory access errors are particularly troublesome. A memory access error is any dereference of a pointer or subscripted array reference which attempts to read or write storage outside of the referent. This attempted access can either be outside of the address bounds (also called the a address space) of the referent, causing a spatial access error, or outside of the lifetime of the referent, causing a temporal access error. Indexing past the end of an array is a typical example of a spatial access error. A typical temporal access error is assigning to a heap allocation after it has been freed.
Memory access errors are possible in programming languages with arrays, pointers, local references, or explicit dynamic storage management and are an important class of errors to reliably detect. For example, in {Miller:90}, Miller et al. injected random inputs (a.k.a. "fuzz") into a number of UNIX utilities. On systems from six different vendors, nearly all of the seemingly mature programs could be coaxed into dumping core. The most prevalent errors detected were memory access errors. In {Sullivan:91}, Sullivan and Chillarege examined IBM MVS software error reports over a four year period. Nearly 50% of all reported software errors examined were due to pointer and array access errors. Furthermore, of these errors, 25% were temporal access errors.
Memory access errors are difficult to detect and fix because the effects of a memory access error may not manifest themselves except under exceptional conditions and, when they do occur, they may be difficult to reproduce. In addition, once the error is reproduced, it may be very difficult to correlate the program error to the memory access error.
Consider the following C function:
______________________________________ int FindToken(int *data, int count, int token) { int i = 0, *p = data; while ((i < count) && (*p != token)) { p++; i++; return (*p == token) ; //error: this tests beyond data if no token is found } ______________________________________
This function contains a latent memory access error in the return statement expression. In operation, the function will reference the word immediately following the array referenced by the pointer data if the array does not contain the token; if the word immediately following the army then does contain the token, the wrong value will be returned by return (*p==token);. To avoid this error, the expression return (*p==token); should be changed to return (i<count);.
This function illustrates the three difficulties in finding and fixing memory access errors. First, FindToken() will only produce an incorrect result if the word following the array referenced by data contains the same value as token (or is inaccessible storage). This event is unlikely if the word contains an arbitrary value. Second, if FindToken() creates an incorrect result, it will be difficult to recreate during debugging. The programmer will have to condition the inputs of the program such that the word following the array referenced by data once again contains the same value as token. If the value of the illegally accessed word is independent of the value of token, the probability of success will be very low. Third, correlating the visible errors of the program to the incorrect actions of FindToken() may be very difficult. This connection may be very subtle and may not be visible for a long period of time.
Debugging can be viewed as an attempt to correlate a program fault to a program error. A program error is defined as an output of a program that is incorrect with respect to the specification of that program--this effect is what the users see. The program fault, on the other hand, is the initial incorrect condition (possibly many) that ultimately caused the error condition to occur. The primary goal of any good debugging environment is to detect errors and provide a good correlation between errors and faults. It is preferable to detect memory access errors immediately, thus creating perfect correlation between the error and the fault.
Many execution environments do provide some level of protection against memory access errors. For example, in most UNIX based systems, a store to the program text will cause the operating system to terminate execution of the program (usually with a core dump). UNIX typically provides storage protection on a segment granularity--the segments are the program text, data, and stack. Other, more hostile environments such as MS-DOS, do not offer such luxuries, and stores to the program text may or may not manifest themselves as a program error. If a program error does occur, correlating it to a fault may be difficult, if not impossible.
As programs become larger and more complex, there is a need for more sophisticated and comprehensive development tools to help the programmer "debug" these programs. In particular, there is a movement in the programming community towards "safe programming" techniques, languages and tools. Unfortunately, many of these safe programming techniques sacrifice the expressiveness otherwise available to the programmer using a programming language like C or C++.
One safe programming technique is to check the "spatial validity" of a particular pointer value used to access a particular data object, e.g., checking that the access goes to an address which is within the address bounds defined for that object. Any program which incorporates such spatial validity checks is said to exhibit "spatial safety". Ideally, the tools used by the programmer would check each attempted access for spatial validity, and would detect, flag, and identify any spatial error to the programmer so the error could be corrected.
Another safe programming technique is to check the "temporal validity" of using a particular pointer value to access a particular data object, e.g., checking that the data object is indeed allocated before it is written to, initialized before it is read, and is neither read nor mitten to after it has been freed or destroyed. Any program which incorporates such temporal validity checks is said to exhibit "temporal safety". Again, ideally, the programmer's tools would detect any temporal access error, and would flag the temporal error to the programmer so it could be corrected.
There are times when a programmer would like to be notified at the moment when a data object is accessed, or informed of how many times a data object is accessed or of which pointer(s) were used to access a particular data object. One technique for providing this object-access information to the programmer is to instrument a program by adding watchpoints. Instrumenting a program inserts additional code into a program in order to perform some auxiliary task. However, providing such watchpoints to a flexible and expressive language such as C/C++ can be difficult and cumbersome, and can significantly slow the execution speed of the program.
One technique for creating a safe programming environment for C is to employ a reference-chaining technique. This technique is similar to that used by many "smart pointer" implementations {Edelson:91,Ginter:92}. The reference-chaining technique creates a reference chain for each data object in the computer system and "roots" (or otherwise associates) each reference chain with its data object. This technique then inserts, into the reference chain rooted at the referent, any pointer to that referent which is generated through the use of an explicit memory allocation (e.g., the malloc() function in the C language), a reference operator (e.g., the `&` operator in the C language), or an assignment (e.g., the ,`=` operator in the C language). When a pointer is later destroyed (e.g., through memory deallocation, assignment, or return from a procedure), this technique then removes the pointer from the reference chain.
The reference-chaining technique has a number of useful properties. First, it is possible to ensure temporal safety by destroying all pointer values on a referent's chain when a referent is freed (i.e., when the memory for that referent is deallocated)--simply by stepping down the reference chain of that referent, and assigning NULL to all pointer values. Second, if a "destructed" pointer value is the last value in the referent's reference chain, it will be as the result of a storage-leak error having occurred, which can thus be detected immediately. (A storage leak is any area in storage to which the program can no longer generate a valid pointer (generating such a pointer is also called generating a "name" for the area). Storage-leak errors occur when the last accessible valid pointer to a heap object is overwritten. Without the ability to generate a name to the heap object, the heap object cannot be freed; hence it has "leaked" out of the heap.)
Unfortunately, the reference-chaining technique cannot be made to work reliably in C. It is relatively easy for the programmer to subvert the checking mechanism through recasting and type-less calls to free(), the memory deallocation function. Detection of storage-leak errors also fails in the presence of circular references, where a chain of pointers-to-pointers eventually refers back to an earlier pointer. Additionally, the reference-chaining technique can be unreliable became it depends on tracking pointer values.
Researchers have recently proposed providing complete program safety through limiting the constructs allowed in the programming language. The main thrust of this work is to design programming languages that support garbage collection reliably and portably (i.e., in a manner in which an implementation can be re-used across several different programming languages or computer architecture platforms). For example, in "Safe:GC" {Safe:GC}, a safe subset of C++ is defined. The safe subset does not permit any invalid pointers to be created. For example, pointers cannot be created via explicit pointer arithmetic. If requested, the compiler can enforce safety within a module by ensuring that the programmer does not use any intrinsically unsafe operations. The safe subset requires that some amount of checking be performed.
In addition, languages which can easily be made totally safe have existed for a long time. For example, many FORTRAN implementations provide complete safety through range checking (e.g., {MIPS:F77}). However, as in Safe:GC, these languages tend to be less expressive than intrinsically unsafe languages such as C or C++.
A number of commercially available memory access checking tools exist for memory access checking. For instance, Hastings and Joyce's "Purify" {Purify:92} uses a safe programming technique which is particularly easy to use because it does not require program source-- all semantic changes to the program are applied to the object code. Purify supports both spatial- and temporal-access error checking to heap storage, through the use of a memory state map which is consulted at each load and each store that the program executes. Purify also provides uninitialized read detection and storage-leak error detection through a "conservative collector" {Boehm:93,Boehm:88} (described in more detail below). Certain heap spatial access errors are detected by bracketing both ends of any heap allocation with a "red zone". These zones are marked in the memory state map as inaccessible. If a load or store touches a red zone, then a memory access error is flagged. Temporal access errors are detected by setting the memory state of freed storage to "inaccessible".
Purify cannot detect all memory access errors. For example, errors caused by accessing past the end of an array into the storage region of the next variable cannot be detected, nor can errors caused by accessing storage that has been freed and then reallocated. These limitations occur because Purify does not determine the intended referent of memory accesses--it can only verify whether the accessed storage is "active". To increase the effectiveness of temporal access error checking, Purify "ages" the heap, i.e., holds freed storage in the "heap free list" longer than needed. This aging increases the storage requirements of programs that use the heap. In addition, although Purify is portable across programming languages (as long as each language is available on the given computer architecture platform for which Purify is implemented), it is not portable across platforms, and must be re-written for each platform on which it is desired.
Hastings' U.S. Pat. No. 5,193,180, issued Mar. 9, 1993 and assigned to Pure Software Inc., describes an implementation of the Purify technique. An object-code expansion program inserts new instructions and data between preexisting instructions and data of an object-code file; offsets are modified to reflect new positions of the preexisting instructions and data. The added instructions monitor substantially all memory accesses to check for the errors of writing to unallocated memory, and reading from unallocated or uninitialized memory. Dummy entries are added to the data section to aid in the detection of array-bounds violations and similar data errors. Furthermore, watchpoints can be established for more comprehensive monitoring.
Another safe programming technique is used in Steffen's "RTCC" {Steffen:92}. RTCC extends the functionality of the AT&T C language compiler "PCC" by adding spatial-error checking. RTCC attaches spatial object attributes to pointers and performs spatial access error checking. It does not, however, detect temporal access errors. In the implementation of RTCC, the issue of interfacing to library and system calls is addressed through "encapsulation"; Steffen also describes augmenting "sdb" (the UNIX system debugger) to provide users with transparent debugging support.
Another safe programming technique is used by "CodeCenter" {Kaufer:88}. CodeCenter is an interpreted C language environment. The checking provided is very rich--it detects many memory access errors, and also provides dynamic type-checking (i.e., the type of the last store to memory must match the type of subsequent loads from memory), uninitialized read detection, errant free detection, and other useful checks. (The following heap-deallocation actions are called errant frees: freeing storage which has been previously freed; freeing non-heap (global or stack) storage; freeing an invalid address (one that does not refer to valid storage); freeing heap storage using an interior pointer (a pointer that points inside the allocation, rather than to the start of the allocation).) Object attributes (namely, type and size) are attached to each data object in storage when it is initialized and, when a reference is made to storage, the base and size attributes that are associated with the referent storage are also attached to the pointer value. Using this information, CodeCenter provides complete coverage for spatial access errors. The method used for temporal access checking cannot, however, detect all attempts to access freed storage after it has been reallocated for another purpose nor can it detect errors when pointer references are made to local variables. In addition, CodeCenter has large resource requirements; since CodeCenter programs run in an interpreter, the slow execution speed may discourage its use, and in the case of long-running programs, may preclude its use entirely.
Another safe programming technique is used by "Integral C" {Ross:87}. Integral C is an integrated programming environment for the C language. The user interface is very similar to CodeCenter. Internally, however, it does not employ an interpreter. Instead, as the programmer/user updates the C code, the C code is incrementally compiled (at function granularity) into machine code. Like RTCC, Integral C attaches only base and bound attributes to pointer values, and thus it can only detect spatial access errors.
Yet another safe programming technique is used by Fischer and LeBlanc's "UW-Pascal" compiler {Fischer:80}. UW-Pascal supports both temporal and spatial access error checking, but while UW-Pascal detects all spatial access errors, certain temporal access errors may not be detected if storage is reallocated. Because UW-Pascal lacks mutable pointers (pointers which may be used as terms in arithmetic expressions, thus allowing their value to be arbitrarily manipulated by the program) and dynamically-sized arrays, however, its access checking is much easier to implement than the error checking of other techniques which handle these more expressive and flexible programming-language features.
This paragraph briefly summarizes properties of the above described commercially-available systems. The technique used in Purify operates on object-code files, performs an object-code translation, provides spatial checks limited to heap spatial access errors, provides temporal checks limited to heap temporal access errors, and has extensions that can detect errant free's, uninitialized reads, and storage-leak errors. The technique used in RTCC operates on C files, uses a safe compiler, provides spatial checks for all spatial access errors, but provides no temporal checks. The technique used in CodeCenter operates on C or C++ files, uses an interpreter, provides spatial checks for all spatial access errors, provides temporal checks for some temporal access errors, and has extensions that can detect errant free's, uninitialized reads, type errors, arithmetic errors, etc. The technique used in Integral C operates on C files, uses a safe compiler, provides spatial checks for all spatial access errors, but provides no temporal checks. The technique used in UW-Pascal operates on Pascal files, uses a safe compiler, provides spatial checks for all spatial access errors, provides temporal checks for some temporal access errors, and has extensions that can detect errant free's, union type errors, arithmetic faults, etc.
A closely related area of work, which can benefit from the safe programming technique described in the invention, is storage-leak error detection. For languages like C and C++, storage-leak error detection is commonly implemented with a "conservative collector" {Boehm:93,Boehm:88}. A conservative collector sweeps memory looking for unreferenced storage. Because it is difficult to know where all pointers are located, the collector makes the conservative assumption that all program-accessible (non-heap) storage contains pointers. It then uses a traditional mark-and-sweep collection method.
While effective, this method has some drawbacks. First, storage-leak error detection is not immediate--it is usually applied only when the programmer demands it or when the program completes execution. Thus, for it to be useful, some dynamic information (for instance, a partial call-chain) must be kept with allocations in order for the programmer to deduce the circumstances under which the storage-leak error occurred. Second, the conservative assumption (that all program-accessible (non-heap) storage contains pointers) can cause "false hits". (False hits occur when "random" non-pointer values, which seem to reference heap storage, are mistaken for pointer values.) False hits can hide an actual storage-leak error. For instance, it may appear to the conservative collector as though some random number is a pointer to an area of storage on the heap; in actuality the storage pointed to by the random number leaked from the heap when the last valid pointer to it was destroyed in error. This problem is aggravated by large storage allocations. In such allocations it is more likely that non-pointer values may randomly and inadvertently reference the allocated storage; unfortunately, it is these large storage-leak errors that the programmer would most like to find. Third, if the program hides pointers (for example, by encoding type information in the upper bits of the address in a pointer) or does not keep all pointers within the address bounds of memory allocations, then the conservative collector may not recognize a valid pointer, and thus may erroneously regard a piece of heap storage as having leaked from the heap, when actually it is still in use.
(A call-chain is the state of the stack at some point in a program's execution; it is composed of a sequence of function names; functions higher in the call-chain call (possibly indirectly) the functions lower in the call chain; neighbors in the call-chain share a direct caller-callee relationship. A partial call-chain is a subset of the current complete call-chain, usually taken from the bottom of the complete call chain; partial call-chains are usually employed to reduce storage requirements.)
Zorn and Hilfinger's "mprof" takes a notably different approach to detecting storage-leak errors {Zorn:88}. During the analyzed program's execution, mprof maintains a table of partial call-chains, with each table entry containing a count of how many malloc()'s and free()'s have occurred to storage whose call-chains terminated with that sequence. Detecting storage-leak errors then involves adjusting the appropriate counts at calls to malloc() and free(). At a malloc(), the current call-chain is used to increment the appropriate malloc() counter. At a free(), a hidden pointer in the header of the freed allocation is used to increment the corresponding free() counter. At program termination, detection of storage-leak errors involves reporting the partial call-chains whose malloc() and free() counts differ.
Unlike conservative collection, the mprof technique does not suffer from false hits; that is, a true storage-leak error will always be detected. In addition, mprof provides a wealth of other information useful for optimizing a program's memory usage. The primary disadvantage of the mprof technique (compared to conservative collection) is that storage-leak diagnostics may only be gathered after execution completes, and many programs do not deallocate storage until program termination (e.g., in C, the call to exit() will ensure that all the program's resources are deallocated/reclaimed). This behavior can yield many (arguably) false indications of storage-leak errors.
None of the above methods provide the detection of temporal and spatial errors needed in the sophisticated programming environments of today without either impacting the flexibility of the programming language or overlaying an oppressive amount of overhead. What is needed is a method of detecting memory access errors which can operate over a variety of programming languages while having minimal impact on program execution.

Method for detecting computer memory access errors


A linear voltage regulator includes a series-pass element electrically coupled between an input node and an output node, current sense circuitry configured to generate a current sense signal representing at least magnitude of current flowing through the series-pass element, and control circuitry. The control circuitry is configured to control the series-pass element according to at least (a) the current sense signal and (b) a voltage sense signal representing magnitude of an output voltage, to clamp the magnitude of the output voltage to a maximum value, where the output voltage is a voltage at the output node, such that the magnitude of the output voltage decreases with increasing magnitude of current flowing through the series-pass element.

Linear regulators are a class of voltage regulators where output voltage is controlled by varying voltage drop across a series-pass element, typically a transistor. Linear regulators have significant advantages over other types of voltage regulators in certain applications. For example, linear regulators do not generate switching noise, and linear regulators do not incur switching losses. Additionally, linear regulators do not require energy storage inductors, thereby promoting small regulator size, low regulator cost, and fast transient response. Furthermore, linear regulators can achieve high efficiency in low-current applications and/or in applications where output voltage magnitude is close to input voltage magnitude.
FIG. 1 illustrates a conventional linear regulator 100 including a transistor 102, an output capacitor 104, and control circuitry 106. Transistor 102 is electrically coupled between an input node 108 and an output node 110 to form a series-pass element. Output capacitor 104 is electrically coupled between output node 110 and a reference node 112 to help maintain regulation of an output voltage Vo during transient load events. Control circuitry 106 is configured to control transistor 102 to maintain a desired output voltage Vo. In particular, control circuitry 106 monitors output voltage Vo, and control circuitry 106 drives transistor 102 such that transistor 102 has as requisite voltage drop Vt to achieve the desired output voltage Vo. Consequently, control circuitry 106 will vary an operating point of transistor 102 according to operating conditions of linear regulator 100, to maintain regulation of output voltage Vo. For example, if magnitude of an input voltage Vi increases, control circuitry 106 will vary the operating point of transistor 102 to increase voltage drop Vt, to maintain desired output voltage Vo.

Linear voltage regulators and associated methods


A technique for discovering and identifying locations at which to deploy new Layer-2 nodes within a telecommunications network. The disclosed technique is intended to identify Layer-2 nodes at locations where they can improve service availability when deployed, especially in geographic regions that suffer frequent or simultaneous cable breaks, or both. The locations of the new Layer-2 nodes depend on the underlying Layer-0 network topology, as well as on the existing Layer-2 topology. Thus, the disclosed technique features a cross-layer approach that takes these factors into account and evaluates the locations in a way that can considerably increase the availability of one or more services offered in the telecommunications network.

FIG. 1A depicts a schematic diagram of a portion of a telecommunications system in the prior art. The depicted portion includes telecommunications network 110, which comprises: layer-0 nodes 101-1 through 101-12, layer-0 route segments 102-1 through 102-17, layer-2 nodes 103-1 through 103-3, and layer-2 bundle 104-1 through 104-2. The elements within telecommunications network 110 are interrelated as shown.
Network 110 enables devices such as user endpoints to exchange data packets with one another. In particular, network 110 constitutes a wide-area network (WAN), although it could alternatively constitute a local-area network (LAN) or other type of network. Network 110 operates on Layer-2 (L-2) Provider Backbone Bridging (PBB) technology and, having one or more Ethernet rings, can be referred to as an Ethernet transport network. The connectivity among L-2 nodes, in which an L-2 connection spanning a pair of L-2 nodes is referred to as an Ethernet bundle, are routed over underlying Layer-0 (L-0) route segments, which are optical Dense Wavelength Division Multiplexing (DWDM) segments in this case. An ITU-T G.8032 ring serves as the protection mechanism at the Ethernet layer.
Layer-0 (L-0) node 101-m, wherein m can have a value equal to 1 through 12, inclusive, is a device that interconnects two or more layer-0 route segments. Each L-0 node supports DWDM.
Layer-0 (L-0) route segment 102-n, wherein n can have a value equal to 1 through 17, inclusive, refers to the physical link or medium connecting two L-0 nodes to each other. For clarity purposes, only L-0 route 102-1 is shown, although there exists an L-0 route segment 102-n between other pairs of L-0 nodes as depicted. Each L-0 route segment supports DWDM.
Layer-2 (L-2) node 103-p, wherein p can have a value equal to 1 through 3, inclusive, is a device that provides layer-2 (i.e., data link) computer networking functionality. Each L-2 node supports the Ethernet protocol. Each L-2 node comprises an L-0 node as well. As depicted, L-2 node 103-1 comprises L-0 node 101-1, L-2 node 103-2 comprises L-0 node 101-5, and L-2 node 103-3 comprises L-0 node 101-9.
Layer-2 (L-2) bundle 104-q, wherein q can have a value equal to 1 or 2, inclusive, refers to the data link that connects two L-2 nodes to each other. As depicted, L-2 bundle 104-1 connects L-2 node 103-1 and 103-2, and L-2 bundle 104-2 connects L-2 node 103-2 and 103-3. Each L-2 bundle traverses one or more L-0 route segments between the two L-2 nodes connected by L-2 bundle 104-q.
There are situations in which the data packet routing performed within telecommunications system 100 can be disrupted. For example, and as depicted in FIG. 1B, a physical link can be cut, as represented by cable break 105. As depicted, break 105 has disrupted the L-0 route segment between L-0 nodes 101-6 and 101-7 and, consequently, has disrupted the L-2 bundle between L-2 nodes 103-2 and 103-3. Depending on various factors, such disruptions can be frequent, and multiple disruptions can occur simultaneously with one another.
Therefore, what is needed is a technique for improving service availability that avoids at least some of the disadvantages in the prior art.

System and method for discovering the locations of potential layer-2 nodes in a telecommunications network


A method for fixing a pin to a ceramic substrate includes inserting the pin into a hole through the thickness of the substrate, restraining one end of the pin that extends from one surface of the substrate, and striking the end of the pin at the opposite end of the substrate with a force sufficient to form a head on the pin and to cause permanent radial expansion of the pin against the surface of the hole in the substrate.

1. Field of the Invention
This invention relates to the field of electronic packaging, and more patricularly pertains to the process of fixing metal pins to a brittle substrate.
2. Description of the Prior Art
Integrated microelectronic circuit chips are frequently mounted on ceramic substrates that provide planar surfaces on which electrical lines are formed for interconnecting the input and output terminals of the chips and other portions of the electronic system of which they are a part. Connections are made between the various circuits with which the chips interface by copper pins, which are electrically connected to the terminals of the chips and are mechanically attached and held in position after being fixed to the ceramic substrate. Unfortunately, ceramics are brittle, frangible materials that are easily shattered when large forces, particularly abrupt tension forces, are applied in the process of fixing the pins to the substrate. In the process of joining the pin and substrate, large tensile forces necessarily result in the vicinity of the holes that are formed through the ceramic into which the pins are inserted. Therefore, it is conventional practice in the process of fixing the connecting pins to the ceramic substrate that the force which attaches the pin and forms the pin head be slowly applied and of minimum magnitude so that damage to the ceramic is avoided.
U.S. Pat. No. 3,484,937 describes a method for connecting a pin to a printed circuit board in which a hole is drilled through the thickness of the board, made of fiberglass impregnated cloth having a high tension strength and one particularly tolerant of impact force applied in the process of pinning. The pin is inserted in a hole whose diameter is slightly larger than the diameter of the pin. The ends of the pin blank are restrained to limit radial expansion while the pin is longitudinally compressed. This causes an expansion of its center portion radially outward into engagement with the surface of the hole. The extent of the compression and radial expansion of the pin depends on the particular board material being used and is such that the mechanical connection has strength adequate to assure proper retention of the pin in the hole.
Ceramic substrates are rigid and brittle materials. They fail easily by cracking along lines that run between pin holes drilled through the thickness of the material when high forces are applied to the copper pin the the process of fixing the pins to the printed circuit board. A method for fixing pins in a substrate whose holes are somewhat smaller than the pins so as to establish an interference or press fit between the pins and the holes is described in U.S. Pat. No. 3,566,464. This system is not suitable for pinning substrates of ceramic material because the end of the pin that pushes against the rim of the substrate surrounding the small diameter hole produces a force that can readily crack and damage a ceramic substrate.
Other pinning systems, particularly those in which the pins are driven at high speed to form an opening either partially or completely through the body of the substrate, are unsuitable for pinning ceramic substrates because the striking force and propelled pins produce tension forces which can easily damage or fail the body of the ceramic substrate. A high velocity pinning system of this kind is described in Canadian Pat. No. 891,180 and in the publication by H. P. Byrne, Terminal pin projector, IBM Technical Disclosure Bulletin, volume 9, number 4 (1966) page 365.
A conventional method, known as the head and bulge system, is frequently used to pin ceramic substrates. According to this method, a pin blank is inserted in a larger diameter hole formed in the substrate so that the pin extends outward on each side of the substrate. A head is formed on one side of the substrate and a bulge is formed on the pin at the opposite end. The substrate material that surrounds the hole located between the head and the bulge becomes tightly wedged between them and in this way secures the pin to the substrate. Examples of systems that employ the head and bulge method of securing pins to the substrate are described in U.S. Pat. Nos. 3,216,097; 3,257,708 and 3,768,134. These systems are not satisfactory for fixing pins to a ceramic substrate because the slowly applied force required to form the bulge and head is so large that it often causes the ceramic to fail in the region between the pin holes.
U.S. Pat. No. 3,735,466 describes a machine for connecting pins to a ceramic substrate that employs multiple individual bushings attached to a flexible pad which provides an elastic foundation of known spring constant. A heading ram is lowered into contact with the pins to form heads but the substrate is in direct contact with the flexible bushings which move parallel to the applied force and conform to the surface of the substrate, thereby supporting the substrate and reducing the magnitude of bending moments in the substrate that otherwise would cause cracking. A similar method described in the publication by R. J. Modlo et al, Low-stress pin insertion, IBM Technical Disclosure Bulletin, volume 22, number 8B, (January 1980) pages 3649-3650, eliminates bending stresses in the ceramic substrate and reduces the occurrence of cracking of the substrate by employing segmented floating rams and anvils that provide an equal load to each loading point. An equal reaction force is located directly opposite the load point in order to assure that the load applied to fix the pin to the substrate is equal at each ram. A flexible bladder is filled with an incompressible fluid and contacts the top of each pinning ram. Similarly the anvils are supported on a single fluid-filled bladder beneath the substrate.
All of the prior art systems tend to produce an undesirable space or void between the substrate hole and the pin. This void weakens the effectiveness of the interconnection between the pin and the substrate and becomes a repository for undesirable contaminants, which can adversely affect the mechanical connection between the pin and substrate and the electrical conduction properties of the pin.

Method for joining metal components to a substrate

International Business Machines Corporation


Aerosols can be created by filament stretching and breaking of Newtonian and non-Newtonian fluids by applying a strain to and stretching the fluid. The fluid is stretched along a strain pathway and forms a fluid filament between diverging surfaces. The stretched fluid filament breaks into droplets that can be harvested to form a mist or aerosol. The aerosol creation systems can include one or more pairs of counter-rotating rollers that are positioned adjacent to each other that stretch the fluid or a pair of pistons that move toward and away from each other to stretch the fluid. Some aerosol creation systems can include multiple pairs of counter-rotating rollers that are positioned in a circular, oval, or linear pattern. The aerosol creation system with multiple pairs of counter-rotating rollers can generate mist is one or more directions and can be positioned between two concentric rings or linearly, among other configurations.

Many manufacturing and industrial applications benefit from fluid atomization to create a fine vapor mist or aerosol, such as the fuel/air mixture used in combustion applications, atomized air-paint mixtures for spray painting, application of coatings to pharmaceuticals, adhesive applications, and the like. Once a component solution is made into an aerosol it can be readily processed to coat virtually any shaped surface. Alternatively, in the pharmaceutical industry, aerosols are commonly used in a process called "spray-drying" to create fine powders that serve as upstream component solutions to create active pharmaceutical ingredients.
In all known applications, creating the aerosol from a component solution is challenging. When the component solution behaves like a Newtonian fluid, the creation of a vapor or aerosol is accomplished by a number of conventional methods. One conventional method uses high velocity air flows to entrain air and liquid. A typical atomizer or aerosol involves the coaxial flow of air and component solution at large Reynolds and Weber numbers, i.e., the inertial forces dominate the viscous and surface tension forces in the fluid. Such flows are generally unstable and lead to fluid break-up by Kelvin-Helmholtz and Plateau-Rayleigh instabilities. In many instances, the flow is turbulent and chaotic, which strips and stretches the fluid parcels at high strain and strain rates, which leads to the entrainment of large amounts of air with the fluid and results in a fine mist of drops suspended in the air.
High velocity coaxial flows are effective when the component solution has Newtonian properties and behaves like a Newtonian fluid. However, many component solutions contain a variety of macromolecular and interacting solids components that lead to non-Newtonian properties, including shear-thinning and viscoelasticity. Conventional methods of atomization like high velocity coaxial flows and electrospray can be ineffective for component solutions that have non-Newtonian properties. For example, if a component solution is viscoelastic and strongly extensionally thickening, its extensional viscosity can increase by several orders of magnitude in the straining direction when the fluid is stretched, i.e., greater than 105 for some high molecular weight polymer component solutions.
During jetting, the extensional thickening of component solutions having non-Newtonian properties causes the viscous drag to overwhelm the inertial and surface tension forces, which allows the system to support large strain before breaking-up and preventing the formation of small drops. The jetting leads to the formation of long, sticky filaments, films, and tendrils that never break-up and become suspended in air. Essentially, the liquid stretches, but never breaks into droplets to form a mist or vapor.
The principal problem with coaxial flow systems to create aerosols is that the straining direction is coincident with the translation direction. The filament eventually breaks up into droplets to form a mist, but to achieve the large strain the filaments issuing from the jet must necessarily travel long distances. As the filaments travel, the filaments lose momentum and can recoil to reform large droplets. Alternatively, attempts to continually impel the filament during its trajectory require impractically long jetting to break the filaments and form droplets.
Therefore, methods and systems that create aerosols from fluids that show one or both of Newtonian and non-Newtonian properties would be beneficial in the art.

This patent is subject to a terminal disclaimer.

Methods and systems for creating aerosols


An RF ablation system comprises irrigated split tip electrode catheter, an RF generator and a signal processor. The catheter comprises four orthogonally arranged electrodes at the distal tip. The catheter is used to map the electrical activity of a heart chamber to locate site(s) of aberrant electrical pathways to be ablated. Once an ablation site has been located, the signal processor activates the RF generator to transmit a low level RF current to each electrode member of the split tip electrode. The signal processor receives signals indicative of the impedance between each electrode member and one or more surface indifferent electrodes and determines which electrode members are associated with the highest impedance. Such electrode members are those in greatest contact with the myocardium. The signal processor then automatically activates the RF generator to transmit an RF ablation current to the electrode members in contact with the myocardium to create a lesion.

The heart has a natural pacemaker and conduction system which causes the heart muscle to contract, or beat, in an orderly rhythmical manner. The normal pacing rate for an adult at rest is about 60 to 70 beats per minute. There are many physiologic abnormalities which cause one or more chambers of the heart to beat more rapidly (tachycardia or flutter) or chaotically (fibrillation). A patient cannot live with ventricular fibrillation because there would be no blood pumped through the arteries, but may live with atrial fibrillation so long as the chaotic impulses are filtered out at the AV node and do not reach the ventricals. A patient may also live with atrial flutter and various forms of tachycardia but quality of life may be considerably compromised.
Many of these arrhythmias can be treated effectively by ablation using radio-frequency (RF) energy. Other arrhythmias are less effectively treated, requiring more RF lesions for a successful outcome or resulting in no successful outcome. RF ablation is performed with a catheter having one or more electrodes which deliver the RF energy to the cardiac tissue. In operation the catheter is guided through a vein or artery into the heart chamber and positioned at one or more sites, determined by an electrophysiologist, to correct the arrhythmia. The catheter delivers energy from an external source (generator) to the tissue, generating sufficient heat to kill the tissue, which is thereafter replaced by scar tissue. In a successful ablation procedure, the lesions formed interrupt the electrical pathways that cause the arrhythmia so that heart rhythm is improved or returns to normal.
During ablation, it is important to control the temperature of the tissue, both at the tissue surface and below. If the surface temperature becomes excessive, dehydration and charring results. Charred tissue presents a dangerous situation as it may flake off resulting in blockage of a blood vessel. Excessive heating below the surface is also dangerous as it may result in a "steam pop." A "steam pop" occurs when deep tissue is heated to a temperature sufficient to boil the water of the tissue which creates a steam bubble within the tissue. Such a steam bubble erupts through the surface of the myocardium with substantial force. This eruption can typically be heard as a "pop" by the electrocardiolooist.

System and method for measuring surface temperature of tissue during ablation


A semiconductor laser includes an active layer, a first GaAs layer formed on the active layer, the first GaAs layer including a plurality of recessed portions periodically arranged, each of the recessed portions including a bottom surface of a (100) crystal surface and a slope including a (111) A crystal surface at least in parts, the recessed portion being disposed in contact with each other or with a minimal gap between each of adjacent ones of the recessed portions, the width of the bottom surface being greater than the minimal gaps, an InGaP layer formed on the recessed portion, and a second GaAs layer formed on the InGaAs layer over the recessed portion.

Known examples of semiconductor diodes for dynamic single-mode oscillation are distributed feedback (DFB) semiconductor diodes and distributed Bragg reflector (DBR) semiconductor diodes. These semiconductor diodes each include a waveguide structure containing a grating with a wavelength-selecting function. A refractive index step waveguide structure usually includes high-refractive index cladding layers and a low-refractive index waveguide layer sandwiched therebetween.
These semiconductor diodes include first cladding layers having a first conductivity type, active layers, grating layers, second cladding layers having a second conductivity type, and contact layers arranged in that order as discussed in, for example, Japanese Laid-Open Patent Publication No. 2000-357841. The grating layers each include a GaAs layer and AlGaAs layers disposed therein.
A procedure for forming a grating layer included in such a semiconductor diode is as described below. A first GaAs layer, an AlGaAs layer, and a second GaAs layer are deposited on an active layer in that order, the first GaAs layer and the AlGaAs layer being included in a lower portion of the grating layer, the second GaAs layer being included in an upper portion of the grating layer. A dielectric mask is provided on the second GaAs layer. The second GaAs layer and the AlGaAs layer are etched through the dielectric mask, whereby an irregular structure is formed. The irregular structure has recessed portions arranged in the first GaAs layer and protruding portions including portions of the AlGaAs layer and portions of the second GaAs layer. GaAs is deposited on the irregular structure such that the recessed portions of the AlGaAs layer are filled with GaAs, whereby the grating layer is formed. The upper surface of the second GaAs layer needs to be flat. This is because a flat second cladding layer is formed later.
In order to planarize the irregular structure during the formation of the grating layer, the second GaAs layer needs to be grown so as to have a large thickness. When the recessed portions are filled with GaAs, which is an As-containing material, crystals of GaAs are grown on the protruding portions; hence, the shape of the irregular structure is maintained. In order to planarize the upper surface of the grating layer, GaAs needs to be further deposited on the irregular structure after the filling of the recessed portions with GaAs until irregularities due to the irregular structure disappear. Therefore, the second GaAs layer has an increased thickness.
When the second GaAs layer has an increased thickness, the field of light guided in the active layer is attracted toward the second GaAs layer because the grating layer overlies the active layer and the second GaAs layer has a large refractive index. This reduces the effect of confining light in the active layer. A reduction in the effect of confining light in the active layer causes a reduction in effective gain and an increase in oscillation threshold current. This may deteriorate the oscillation properties.
In order to prevent the reduction of the effect of confining light in the active layer, the thickness of a re-grown layer made of GaAs, that is, it may be desirable to prevent the thickness of the second GaAs layer from increasing and it may be desirable to flatten the upper surface of the grating layer.


An array substrate for a liquid crystal display includes a substrate and first and second subpixels which are positioned on the substrate and are defined by a crossing structure of one gate line, a first data line, a second data line, a first common line, and a second common line. The first subpixel includes a first semiconductor layer, a first source electrode, a first drain electrode, and a first pixel electrode connected to the first drain electrode. The second subpixel includes a second semiconductor layer, a second source electrode, a second drain electrode, and a second pixel electrode connected to the second drain electrode. The first and second subpixels share the one gate line with each other, and the first drain electrode and the second drain electrode are exposed through one contact hole.

1. Field of the Invention
Embodiments of the invention relate to a liquid crystal display and a method for manufacturing the same, and more particularly, to an array substrate for a liquid crystal display, which has improved transmittance and a method for manufacturing the same.
2. Discussion of the Related Art
A liquid crystal display is generally driven using optical anisotropy and polarization properties of liquid crystals. Because the liquid crystals have an elongated shape, liquid crystal molecules have an orientation in the alignment. The orientation of the alignment of the liquid crystal molecules may be controlled by applying an electric field to the liquid crystals. Thus, when the orientation of the alignment of the liquid crystal molecules is adjusted, the alignment of the liquid crystal molecules may be changed. Light is refracted in the orientation of the alignment of the liquid crystal molecules by the optical anisotropy, thereby displaying image information.
An active matrix liquid crystal display (AMLCD) (hereinafter abbreviated to "liquid crystal display"), in which thin film transistors and pixel electrodes connected to the thin film transistors are arranged in a matrix form, has been now attracted much attention because of its excellent resolution and motion picture display performance. The liquid crystal display includes a color filter substrate on which common electrodes are formed, an array substrate on which the pixel electrodes are formed, and liquid crystals interposed between the color filter substrate and the array substrate. In the liquid crystal display, the common electrodes and the pixel electrodes drive the liquid crystals by a vertically applied electric field, thus providing an excellent transmittance, an excellent aperture ratio, and the like.
However, the drive of liquid crystals by the vertically applied electric field is disadvantageous in that a viewing angle is not good. Thus, an in-plane switching (IPS) liquid crystal display having the excellent viewing angle was proposed. In the in-plane switching liquid crystal display, a thin film transistor is formed on a substrate. The thin film transistor is insulated by an organic insulating layer, and then a passivation film is formed between a common electrode and a pixel electrode. Vertical and horizontal electric fields are applied between the common electrode and the pixel electrode.
FIG. 1 is a plan view of a related art array substrate for a liquid crystal display.
As shown in FIG. 1, a gate line 12 arranged in one direction and a data line 15 crossing the gate line 12 define a subpixel P. A common line 16 is positioned parallel to the gate line 12. The subpixel P includes a switching thin film transistor Tr including a gate electrode 17, a gate insulating layer (not shown), a semiconductor layer (not shown), a source electrode 19, and a drain electrode 21.
The subpixel P further includes a pixel electrode 23 of a plate shape electrically connected to the drain electrode 21 of the switching thin film transistor Tr and a common electrode 25 positioned opposite the pixel electrode 23. The common electrode 25 includes a plurality of openings 27 which are spaced apart from one another by a predetermined distance in the subpixel P and each have a bar shape.
The related art array substrate has a contact hole CH, in which the drain electrode 21 and the pixel electrode 23 are connected to each other, so as to apply a voltage from the switching thin film transistor Tr to the pixel electrode 23. However, a depth of the contact hole CH between the drain electrode 21 and the pixel electrode 23 may increase due to the presence of an organic insulating layer formed between the drain electrode 21 and the pixel electrode 23. Hence, an alignment layer formed on the entire surface of the substrate is not spread over the area where the contact hole CH is formed. Further, because the contact hole CH is formed in each subpixel P, an aperture ratio of the liquid crystal display is reduced.

Array substrate for liquid crystal display and method for manufacturing the same


A method of treating semiconductor substrate comprising the step of. after epitaxial growth of III-V compound semiconductor layers on a substrate by a liquid phase epitaxial growth method using gallium as solvent,. the substrate is treated by an etchant comprising phosphoric acid, acetic acid and nitric acid thereby selectively removing residue stains of gallium on the surface of the substrate.

1. Field of the Invention
The present invention relates to an improvement of method of treating a semiconductor substrate.
More particularly, the present invention concerns an improvement of method of removing gallium residues or stains remaining on a semiconductor substrate having epitaxial growth layers of III-V compound semiconductors formed by using gallium as a solvent.
2. Prior Art
In forming epitaxial growth layer of gallium arsenide (GaAs), gallium phosphide (GaP) or gallium aluminum arsenide (GaAlAs) on a compound semiconductor substrate, a liquid phase epitaxial growth method using gallium as a solvent is being widely used. Therefore, the liquid phase epitaxial growth method is an indispensable process in manufacturing semiconductor lasers or light emitting diodes. The substrate 1, as shown in FIG. 1 necessarily have residues 2 of small lump of gallium, which are residues of the gallium as the solvent. After the epitaxial growth process, the residue stains 2 of gallium are, large or small, formed on the substrate.
Such small residue stains of the gallium are, not only no more necessary after completion of the epitaxial growth process, but also harmful for the process thereafter. Hitherto, generally, such residue stains of gallium on the substrate have been wiped off by a small ball of surgical cotton soaked with a hot water. However, such wiping off or mechanical removing is liable to form scratches or breaking of the substrate, and use of such semiconductor substrates in manufacturing semiconductor device necessarily makes devices of poor performance characteristics or of no use. When such residue stains of gallium are of a large lump, they will be easily wiped away. However, when the residue stains are very fine, a complete wiping of them will be difficult. Such residue stains of gallium will react with the electrode metal, and hence will deteriorate accuracy of the etching of the electrode metal.
A proposal of a chemical removing of the stains of the gallium retained after the mechanical wipe away, therein the removing being made by immersing the substrate into a heated chloric acid (HCl), has been already proposed. However, because the chloric acid has a nature to etch the III--V compounds, the epitaxial growth layers have been undesirably etched, and the surfaces thereof have become rough.
Thus, hitherto, no method of selectively removing the gallium residues or stains from the surface of the semiconductor substrate has been known.

Etching of gallium stains in liquid phase epitoxy

Matsushita Electric Industrial Co., Ltd.


A thin semiconductor device package, comprising a thin substrate at least one thin die coupled with the substrate and having a perimeter dimension less than that of the substrate a mold material provided at a surface of the substrate adjacent to the perimeter of the die so that a surface of the mold material is coplanar with a surface of the die, and at least one electrically conductive pathway having at least one first terminal end configured to provide electrical continuity with the conductive element and at least one second terminal end formed at a surface of the mold material, the pathway extending from the first terminal end to the second terminal end.

Increasingly over the past decade, creating smaller and easily portable electronic devices has become a major force driving innovation in product design and technology. This trend has been frustrated to some extent by a coinciding demand for greater functionality, which may require the addition of more components into a device, or growth in the size of existing components to provide additional functions.
Semiconductor (solid state) circuit devices (referred to also as 'chips' or 'die') are an essential constituent component of most, if not all electronic devices in use today and being designed for the future. In many designs, die are attached to somewhat larger 'package substrates' which provide sufficient surface area for 'breaking out' the electrical signal from dense interconnect arrays to a number of electrical pathways, or traces, on an even larger substrate. Such package substrates are typically formed as multiple layers of glass fiber, organic resins, copper, and solder mask material. The copper is lithographically or otherwise formed into thin traces at multiple levels of the substrate. Many of the traces then spread outward through the package substrate and connect with vias to provide electrical continuity between electrical interconnects of the die and an array of, for example, solder balls on the opposite side of the substrate from the die. The solder balls provide both physical and electrical attachment to a larger substrate on which other components of the device may reside.
Package substrates, however, present numerous drawbacks detrimental to the objective of designing very small and relatively inexpensive portable electronic devices. For one, the package substrate may be the most expensive part of a package, and this cost goes up as the number of layers in the substrate increases, largely driven by the size and density of a die interconnect array. Further, as the thickness of the package substrate increases, so the overall thickness of the package increases, consuming valuable space in an electronic device, and either constraining or even increasing the minimum size that the device can be designed. Therefore, as mentioned, the complexity of a die to support increased functionality frequently drives a corresponding increase in the size and cost of the package and the overall device.
Further, the longer the electrical pathways are formed to sufficiently break out an interconnect array in a package, the more the electrical performance of the package, and therefore the device, is detrimentally impacted. Thick substrates may also hinder effective thermal dissipation from a device by retaining thermal energy close to the die that should preferably be dissipated away through a passive or active thermal device, such as a heat sink. To counter this, many current designs include a heat spreader attached to the die to more effectively draw heat away from a die. As can be expected, heat spreaders add both cost and size to device packages and electronic devices.
Some manufacturers have taken steps to reduce the size of the cores of package substrates, and coreless substrates have also been proposed. While these approaches do help to reduce the size of package substrates from 1 millimeter or more down to approximately 300 microns in some representative package substrates, they still pose a substantial impediment to further reduction of package size, as well as insufficiently resolving many of the other associated deficiencies described here. Significant challenges remain to further reducing the size and cost of highly functional portable electronic devices to keep pace with the demand for such in the market.


A method and system of controlling auto-ignition timing in an internal combustion engine cylinder in which the timing of auto-ignition in prechambers that are coupled to the cylinder is precisely controlled. The auto-ignition in the prechambers is produced by a compression stroke using pistons situated within the prechambers. Hot gas jets produced by the prechamber auto-ignitions are introduced into the charge space of the cylinder and rapidly induce a second auto-ignition of the mixture in the cylinder. By precisely controlling the timing of the auto-ignitions within the prechambers, the timing of the auto-ignition within the cylinders can, in turn, be precisely controlled.

There is an ever-greater need and demand for combustion techniques that minimize emissions through efficient burning of fuel components. One such technique is Homogeneous Charge Compression Ignition (hereinafter "HCCI") in which a well-mixed, lean mixture of fuel and air is auto-ignited, i.e., ignited without use of a spark, which usually results in a rapid combustion of fuel components. This combustion technique is potentially more efficient and environmentally-friendly than conventional spark-ignited combustion because the rapidity of the combustion prevents heat losses to the walls of the engine cylinder, approaching a constant volume combustion which is more efficient and allows for use of a higher compression ratio, and also because use of a well-mixed, lean mixture results in a decrease in the total production of pollutants, some of which are almost completely eliminated.
The practical implementation of HCCI has been somewhat hampered by the difficulty of controlling the auto-ignition under variable loading conditions. It has been found that small variations in the temperature field within the engine cylinder can produce large variations in ignition timing, and can result in misfire, in which combustion fails to occur, or other deleterious consequences which reduce engine efficiency.
In another promising technique, referred to as the Pulsed Jet Combustion method (hereinafter "PJC"), combustion is initiated in small prechambers coupled to the cylinder via small orifices. Combustion in the prechambers produces hot jets of gas which escape through the orifices into the cylinder where the jets entrain unburned gases in the fuel-air mixture in the cylinder, igniting the mixture. The action of the jets improves combustion efficiency because of the "fireball" created that rapidly spreads through the volume of the cylinder, in contrast to the thinner "flame" that is produced by spark ignition. However, current PJC techniques employ spark-ignition within the prechambers, and therefore combustion within the prechambers suffers to some degree from the uneven combustion and inefficiencies associated with spark-ignition. Additionally, the combustion produced in the cylinder using PJC is not volumetric as in HCCI, but depends upon the spread of the fireball from the prechamber, which may not be completely uniform. Therefore, combustion in the cylinder may also be somewhat uneven and some portion of the hydrocarbon fuel may remain unburned.

Control of auto-ignition timing for combustion in piston engines by prechamber compression ignition


A zipper head structure comprises a pull tab, a base and a universal joint. The base has a receiving space for receiving a zipper chain scoop. The universal joint is connected between the pull tab and the base. Through the design of the universal joint, the pull tab can rotate for 360 degrees to match the motion of the zipper, hence providing the most appropriate and labor-saving angle.

As shown in FIG. 1, a conventional zipper head comprises a pull tag 1A and a base 4A. A pivotal portion 11A is disposed at one end of the pull tag 1A. A pivotal groove 42A is disposed at the upper half of the base 4A. The pivotal portion 1A of the pull tag 1A is pivotally placed in the pivotal groove 42A of the base 4A for connecting the pull tag 1A and the base 4A.
However, the pull tag 1A of the above conventional zipper head can only be dully pulled forwards and backwards. In order that the pull tag 1A can be easily pulled forwards and backwards, the connection between the pull tag 1A and the base 4A cannot be too tight in design. Therefore, the bearable torque thereof is relatively limited.
Accordingly, the above conventional zipper head has inconvenience and drawbacks in practical use. The present invention aims to solve the problems in the prior art.


Dispersion polyols which are liquid-liquid dispersions containing a first having a substantially Polyoxypropylene internal block having an equivalent weight in excess of about 700 Da and a high oxyethylene-content external block, and a second polyol which is a substantially polyoxyethylene polyol containing minimally 50 weight percent oxyethylene moieties. The dispersion polyols are stable and exhibit broad processing latitude when preparing hypersoft polyurethane foams. The dispersion polyols are advantageously prepared in situ, preferably in the presence of a double metal cyanide oxyalkylation catalyst.

Although polyurethane foam production can be described as a mature technology, processing and performance difficulties associated with polyurethane foam continue to be addressed by the industry. Many of these difficulties arise or are exacerbated when processing and/or performance windows are narrow.
For example, the Montreal Protocol, which mandanted the change from chlorofluorocarbons and other halogenated hydrocarbon physical blowing agents to "environmentally acceptable" blowing agents, particularly to the use of water as a reactive blowing agent, created numerous problems, some of which are being addressed even today. The trend to reduced density in products such as soft cushioning foam has also required significant research to enable efficient production of high quality low density foam having the required softness and durability. Recently, hypersoft foam has been increasingly in demand, and its efficient production has required non-traditional processing improvements.
Hypersoft foam may be produced by reacting a di- or polyisocyanate, preferably toluene diisocyanate ("TDI") with a polyol component which includes a high polyoxyethylene content polyol. Thus far, hypersoft foams have also required, in addition, a conventional, high polyoxypropylene-content polyol, in order to be successfully produced. While use of these very different polyols has enabled production of hypersoft foam, the foam processing latitude is often marginal. Moreover, these polyols are not physically compatible, and their blends tend to quickly become inhomogeneous after mixing, requiring inventory of two separate polyols and their separate metering to the mixhead.
It would be desirable to provide a polyol blend which is capable of preparing hypersoft and other polyurethane foams without the necessity of inventorying several polyols for this purpose. It would be further desirable to produce polyol blends which avoid rapid separation during storage, and which offer improved processing latitude when used in preparing hypersoft polyurethane foams.

Dispersion polyols for hypersoft polyurethane foam


Identified are mutants of the promoter of the Z. mobilis glyceraldehyde-3-phosphate dehydrogenase gene, which direct improved expression levels of operably linked heterologous nucleic acids. These are high expression promoters useful for expression of chimeric genes in Zymomonas, Zymobacter, and other related bacteria.

Production of ethanol by microorganisms provides an alternative energy source to fossil fuels and is therefore an important area of current research. It is desirable that microorganisms producing ethanol, as well as other useful products, be capable of using xylose as a carbon source since xylose is the major pentose in hydrolyzed lignocellulosic materials, and therefore can provide an abundantly available, low cost carbon substrate. Zymomonas mobilis and other bacterial ethanologens which do not naturally utilize xylose may be genetically engineered for xylose utilization by introduction of genes encoding 1) xylose isomerase, which catalyses the conversion of xylose to xylulose; 2) xylulokinase, which phosphorylates xylulose to form xylulose 5-phosphate; 3) transketolase; and 4) transaldolase.
There has been success in engineering Z. mobilis strains for xylose metabolism (U.S. Pat. No. 5,514,583, U.S. Pat. No. 5,712,133, U.S. Pat. No. 6,566,107, WO 95/28476, Feldmann et al. (1992) Appl Microbiol Biotechnol 38: 354-361, Zhang et al. (1995) Science 267:240-243), as well as a Zymobacter palmae strain (Yanase et al. (2007) Appl. Environ. Microbiol. 73:2592-2599). However, typically the engineered strains do not grow and produce ethanol as well on xylose as on glucose. For this engineering, genes encoding the heterologous proteins for xylose metabolism have been expressed from promoters that are active in Z. mobilis cells, typically the promoter of the Z. mobilis glyceraldehyde-3-phosphate dehydrogenase gene or the promoter of the Z. mobilis enolase gene. Strains engineered for xylose utilization have been adapted by serial passage on xylose medium, resulting in strains with improved xylose utilization as described in U.S. Pat. No. 7,223,575 and commonly owned and co-pending U.S. Patent App. Publication No. US20080286870. However the genetic basis for the improvement had not been determined.
There remains a need for genetically engineered strains of Zymomonas, and other bacterial ethanolagens, having improved xylose utilization. Applicants have discovered mutant promoters having increased activity that can be used for expressing xylose utilization genes, which activity confers to engineered strains comprising these promoters improved xylose utilization. The promoters may be used for expression of other genes.

E.I. du Pont de Nemours and Company Alliance for Sustainable Energy LLC


The invention relates to a compound prepared by (i) reacting (a) at least one compound selected from diisocyanate, polyisocyanate, or mixture thereof; (b) at least one isocyanate-reactive compound selected from a fluorinated alcohol; a cyclic or acyclic sugar alcohol which is substituted with at least one —R1, —C(O)R1, —(CH2CH2O)n(CH(CH3)CH2O)mR2, —(CH2CH2O)n(CH(CH3)CH2O)mC(O)R1, or mixtures thereof; or mixtures of a fluorinated alcohol and a substituted cyclic or acyclic sugar alcohol; and (c) at least one isocyanate-reactive ethylenically unsaturated compound; wherein each n is independently 0 to 20; each m is independently 0 to 20; m+n is greater than 0; each R1 is independently a linear or branched alkyl group having 5 to 29 carbons optionally comprising at least 1 unsaturated bond; each R2 is independently —H, or a linear or branched alkyl group having 6 to 30 carbons optionally comprising at least 1 unsaturated bond, or mixtures thereof; and (ii) reacting the reaction product of step (i) with a bisulfate source.

Various compositions are known to be useful as treating agents to provide water repellency or stain release to textile substrates. Many such treating agents are fluorinated polymers and copolymers, or non-fluorinated polymers and copolymers. Non-fluorinated compounds are predominately polyacrylate-based or urethane-based copolymers.
Fluorinated and non-fluorinated surfactants are known to be useful as additives to aqueous systems including architectural coatings for reducing surface tension and/or providing cleanability.
Fluorinated copolymers provide good repellency to water and oil. Various attempts have been made to produce a non-fluorinated water repellent. Non-fluorinated copolymers are known to provide water repellency and optionally stain release to textiles, but are less effective than the fluorinated counterparts.
McBride, in U.S. Pat. No. 5,117,041, discloses sulfonated allyl end-capped propylene terephthalate polyester oligomers useful for forming soil release agents for ethylene terephthalate fibers and fabrics.

Sulfonated fluorinated, non-fluorinated or partially fluorinated urethanes


A method of separating a wafer including rows of light emitting devices is described. Dicing streets are provided on the wafer such that a respective one of the dicing streets is provided between each of the rows of light emitting devices on the wafer. The wafer is broken along a first one of the dicing streets to separate a first portion of the wafer from a remaining portion of the wafer. The first portion of the wafer includes more than one of the rows of light emitting devices. The first portion of the wafer is broken along a second one of the dicing streets to separate a second portion of the wafer from the first portion of the wafer.

Semiconductor light-emitting devices including light emitting diodes (LEDs), resonant cavity light emitting diodes (RCLEDs), vertical cavity laser diodes (VCSELs), and edge emitting lasers are among the most efficient light sources currently available. Materials systems currently of interest in the manufacture of high-brightness light emitting devices capable of operation across the visible spectrum include Group III V semiconductors, particularly binary, ternary, and quaternary alloys of gallium, aluminum, indium, and nitrogen, also referred to as III nitride materials. Typically, III nitride light emitting devices are fabricated by epitaxially growing a stack of semiconductor layers of different compositions and dopant concentrations on a sapphire, silicon carbide, III-nitride, or other suitable substrate by metal-organic chemical vapor deposition (MOCVD), molecular beam epitaxy (MBE), or other epitaxial techniques. The stack often includes one or more n-type layers doped with, for example, Si, formed over the substrate, one or more light emitting layers in an active region formed over the n-type layer or layers, and one or more p-type layers doped with, for example, Mg, formed over the active region. Electrical contacts are formed on the n- and p-type regions.
US 2011/0132885 describes singulating a wafer of semiconductor devices. Paragraph 4 teaches "a laser is often used in the process of dicing a semiconductor wafer such that individual devices (or dies) manufactured from the semiconductor wafer are separated from each other. The dies on the wafer are separated by streets and the laser may be used to cut the wafer along the streets. A laser may be used to cut all the way through the wafer, or part way through the wafer with the remaining portion of the wafer separated by breaking the wafer at the point of perforation. When manufacturing light emitting diodes (LEDs), the individual dies on the wafer correspond to the LEDs."

Separating a wafer of light emitting devices


A photography lighting fixture includes a lighting device and a shade device. The lighting device includes a housing, a lighting element disposed in the housing, and a first attaching unit connected to the housing. The shade device includes a base mount, a plurality of shade components mounted pivotally to the base mount, and a second attaching unit mounted to the base mount and detachably and rotatably attaching the first attaching unit.

1. Field of the Invention
The invention relates to a lighting fixture, more particularly to a photography lighting fixture.
2. Description of the Related Art
Referring to FIG. 1, a conventional photography lighting fixture 1 includes a housing 11, a lighting element (not shown) disposed in the housing 11, and a plurality of shade components 12 pivotally mounted to the housing 11. By pivoting the shade components 12 relative to the housing 11, light emitted from the lighting element can be directed, and the amount of the light illuminated on an object can be adjusted. However, since the shade components 12 are directly mounted to the housing 11, it is inconvenient to replace the shade components with those having a different shape. Further, the adjusting extent of the illumination area of the lighting element is limited to a relatively small range.


A variable refrigerant volume system includes: a compressor; a four-way valve; an indoor unit; a liquid tube, the first end thereof being connected to the indoor unit, the second end thereof being connected to the third valve port of the four-way valve, and a condenser being provided on the liquid tube; a low pressure air pipe, the first end thereof being connected to the indoor unit, and the second end thereof being connected to the fourth valve port of the four-way valve; a refrigerant adjustment tank, the first port thereof being connected to the liquid tube, the second port thereof being connected to the low pressure air pipe, and the third port thereof optionally communicating with the liquid tube or the low pressure air pipe.

With the constant development of the variable refrigerant volume technology, a liquid reservoir, as a device for storing a liquid phase refrigerant condensed by a condenser, is unable to meet the requirement of accuracy for controlling the variable refrigerant volume, and main current manufactures remove the liquid reservoir device on the variable refrigerant volume. Due to the characteristics of the variable refrigerant volume, an outdoor unit is always operated in a partially loaded state, and a common variable refrigerant volume allow part of the refrigerant to be accommodated in volumes of the outdoor unit functioning as a condenser and an indoor unit functioning as an evaporator. However, a heat recycling variable refrigerant volume system, as a dedicated variable refrigerant volume system, is capable of simultaneously operating in two modes, i.e., a refrigerating mode and a heating mode, and the outdoor unit may be switched flexibly to function as a condenser or an evaporator according to the system mode, thus, there may be many working situations. The working conditions of the two heat exchangers may both be disadvantageous to the storage of the refrigerant, thus, an additional refrigerant adjustment mechanism may be very necessary.
Some conventional air-conditioning apparatuses have a similar device, however, the controlling is simple and the device is not adapted to the variable refrigerant volume system. Accordingly, a refrigerant adjustment device dedicated for the heat recycling variable refrigerant volume system is required, which can be controlled flexibly according to the operating condition of the refrigerant, and further ensures the reliability of the system.

Variable refrigerant volume system and control method thereof

Gree Electric Appliances, Inc. of Zhuhai


A washing machine includes: a washing tub in which clothes are stored; and a water supply mechanism for supplying water into the washing tub through a water supply path, the water being supplied from a water supply source. The water supply mechanism includes a water supply valve for opening and closing the water supply path, a water filling case for filling water into the washing tub, and a fine bubble generation device provided between the water supply valve and the water filling case and for generating fine bubbles.

In recent years, fine bubbles (ultrafine bubbles or micro bubbles) which are formed in water and have a diameter of, for example, several tens nm to several hundreds nm have gained attention. For example, Patent Literature 1 discloses a technique of using fine bubble water for washing in which a fine bubble generation device (UFB unit) is provided in a water supply path in a washing machine to generate numerous fine bubbles, and fine bubble water including the fine bubbles is used for washing. Using such fine bubble water enables to enhance dispersibility of detergent and permeability of detergent into clothes, thus achieving excellent cleaning action.

Toshiba Lifestyle Products & Services Corporation


A touch display panel, a manufacturing method, a display device and a touch substrate are provided. The touch display panel, comprising a display region and a non-display region surrounding the display region; the display region includes a base substrate and a touch function layer arranged on the base substrate; the non-display region includes the base substrate, and a white light-shielding layer and a reflection enhancing layer which are sequentially arranged on the base substrate, and the reflection enhancing layer is configured for increasing reflectivity of the touch display panel with respect to incident rays; the touch function layer, the white light-shielding layer and the reflection enhancing layer are located on a same side of the base substrate. The touch display panel can improve brightness of appearance of a white OGS touch screen.

In recent years, touch technologies are widely applied in various kinds of multimedia electronic products, in particular portable electronic products, such as mobile phones, electronic books, tablet personal computers and the like. A touch technology as an input means can effectively replace a keyboard or a mouse; besides the advantage of convenience, the touch technology also has operation intuitiveness, and therefore the touch input manner has also become a popular human-computer interaction interface and multimedia interactive manner.
Capacitive touch display screens belong to a new generation of touch display screens appearing in the market after resistive touch display screens, and there has been a qualitative leap in performance of this new generation of market-oriented touch display screens compared with the previous generation of products, which not only makes sensitive response, but also supports multi-point touch operation, such that playability and operability of touch products are greatly improved. A current type of capacitive touch display screen mainly comprises a GLASS-GLASS (GG) type touch display screen or a One-Glass-Solution (OGS) type touch display screen. The GG type touch display screen needs two attachment processes in manufacturing, and therefore the yield in attachment is generally low, while the technology that an ITO conductive film and a sensor are directly formed on a single protective glass plate is adopted for an OGS type touch display screen, to make one sheet of glass have dual functions of protective glass and touch sensor. Thus, compared with a GG touch technology, an OGS type touch display screen technology is simple in structure and has advantages of being light, thin, good in light transmission performance and the like, and because one sheet of glass substrate and one attachment procedure are omitted, production costs is reduced, and production yield is increased. Thus, the OGS technology gradually becomes a leading technology direction of a touch industry.
The OGS type touch display screens mainly divided into white OGS type touch display screens and black OGS type touch display screens. A material of a white light-shielding layer of the white OGS type touch display screen is mainly nanometer titanium dioxide (chemical formula: TiO2), that is to say, the whiteness of appearance of the white OGS type touch display screen is increased with the help of very small nanometer TiO2 particles, such that the appearance of the white OGS type touch display screen becomes white.

Touch display panel, manufacturing method, display device and touch substrate

Hefei Xinsheng Optoelectronics Technology Co., Ltd.


A MRI array coil includes a plurality of first coils in a receive coil array and a plurality of second coils in a transmit coil array. The receive coil array and the transmit coil array are electrically disjoint.

The present invention relates to magnetic resonance imaging and, in particular, to radio frequency coils.
Radio frequency (RF) coils are used produce and/or sense the magnetic resonance (MR) signal used in magnetic resonance imaging (MRI). A main static magnetic field aligns the nuclei of interest, gradient coils provide indicia of spacial location and the transmit and receive RF coils produce the desired contrast signal.
A MR scanner with a horizontally directed main field will normally have the main field parallel with the scanner's main symmetry plane. These scanners are the original MR scanners.
A MR scanner with a vertically directed main field will normally have the main field orthogonal to the pole surface and to the main magnet's symmetry plane. These scanners are normally called open magnet MR scanners.
Signal to noise ratios (SNRs) for RF receive coils have been increased by the use of smaller receive coils. In order to preserve the desired field of view (FOV), such receive coils have been combined into a phased array of such coils. In some cases a large transmit RF coil is used for the entire FOV. In other cases, one or more of the receive coils is operated as a transceiver coil, both exciting the nuclei and sensing the resulting signal.
As main field strength has increased, it has become difficult to power a single large transmit coil for rapid imaging applications at high field strength. The alternative has been to use smaller transceiver coils as part of a coil array, but these have other problems. Because of coils being used for both transmitting and receiving, there is no means to optimize such factors as field uniformity for both transmitting and receiving. In addition, decoupling and phase correction of the coils in an array becomes more complicated and difficult.

Integrated and independently controlled transmit only and receive only coil arrays for magnetic resonance systems


Laminated glass is produced by laminating at least one film A, having a glass transition temperature TA and containing a polyvinyl acetal PA and optionally at least one plasticizer WA, and at least one film B, having a glass transition temperature TB and containing a polyvinyl acetal PB and at least one plasticizer WB, between two glass sheets, wherein, before the lamination process,                film A has a proportion of plasticizer WA of less than 24% by weight,        film B has a proportion of plasticizer WB of at least 24% by weight, and        film A has a thickness of no more than 30% of the thickness of film B.

1. Field of the Invention
Method for producing glass laminates having soundproofing properties by adhesively bonding glass sheets to at least one thin layer which has a low plasticiser content and is based on polyvinyl acetal, and to at least one further layer formed from plasticiser-containing polyvinyl acetal.
2. Background Art
The present invention relates to a method for producing laminated glass sheets by combining layers having different plasticiser content based on polyvinyl acetals having different affinity to plasticisers with subsequent migration of the plasticiser between the layers.
To produce laminated glass sheets having soundproofing or penetration-proof properties, film laminates comprising a plurality of layers based on plasticiser-containing polyvinyl acetals are known. The layers in these film laminates, depending on the field of application, have different mechanical properties. In general, a film laminate for producing soundproofing glazings thus has a middle layer that is soft compared to the outer layers. Penetration-proof film laminates may have a reversed structure.
The production of film laminates by combining PVB sub-films is known from WO 03/097347 A1, EP 0566890 B1 and EP 0508864 B1. Here, sub-films formed from identical PVB polymers containing different plasticisers are combined (WO 03/097347 A1, EP 0508864 B1) or PVB polymers having a high residual acetate content are used (EP 0566890 B1).
In these publications, the combination of a plurality of layers based on plasticiser-containing polyvinyl acetals is proposed for the production of film laminates. Since polyvinyl acetal with a high plasticiser content is very sticky and is soft (that is to say mechanically unstable), combining layers formed from this material is a difficult process. In industrial practice, the production of soundproofing film by means of co-extrusion has therefore prevailed. Here, the sticky layer with high plasticiser content, low glass transition temperature, high ductility and a mechanical damping maximum in the region of room temperature is surrounded by two layers of less sticky PVB film, such that the handling of such a tri-layer film when winding and unwinding, when placing onto glass, etc., is largely determined by the properties of the two external layers of PVB film of normal softness. By contrast, the handling of a thin PVB layer with a high plasticiser content and a glass transition temperature below 10° C. would be impossible from practical viewpoints due to its strong stickiness and excessively low tensile strength.
Co-extruded soundproofing films can be well handled and laminated between glass sheets. A significant disadvantage becomes apparent with these multi-layer products due to their highly restricted ability to be recycled. The unequal distribution of plasticiser between the film layers in contact with one another, necessary to maintain two different glass transition temperatures, requires a difference in polarity of the polyvinyl acetals used in the respective layers, said difference in polarity being set generally by different residual acetate content and/or degree of acetalisation of the polyvinyl acetal. The difference in polarity however means that the polyvinyl acetals can no longer be mixed without phase separation, which, in the case of re-extrusion, leads to milky clouding of the film thus produced.
A further disadvantage lies in the particularly high costs of the mentioned multi-layer films, obtained by co-extrusion, when these are to have further functions, which are likewise introduced into the product by special method variants. In particular, the combination with an ink ribbon additionally extruded in, or the combination with a wedge-like course of the thickness profile of the film web, or both leads to considerably increased production costs, which are passed on in the market.
The problem addressed by the present invention was therefore to provide a method, by means of which glass laminates having good acoustic properties can be obtained, without having to revert to a co-extruded multi-layer film or to a soft damping layer, which is difficult to process. A further problem was to provide cost-effective alternatives for producing glass laminates having combined properties (colour tint, with wedge-shaped thickness profile for head-up, acoustics), with which it is currently necessary to revert to costly special PVB films.

Method for producing glass laminates with sound attenuating properties


A wooden drumstick that is treated by direct heating by exposure to a flame to improve hardness characteristics by altering the state of fibers in an outer layer of the drum stick relative to inner fibers below the outer layer. A method of manufacturing a treated drumstick includes selecting a wooden starting material, forming a drumstick profile from the wooden starting material, and exposing the drumstick profile directly to a flame.

This disclosure relates to a musical instrument drumstick made of wood, and in particular a drumstick made of wood that is treated with an open flame.
Drumsticks are typically made of a hard wood, such as oak, hickory, or maple, with either a lacquer or natural finish. It well established that the removal of moisture from the wood increases the playability of the drumstick. However, the conventional drying process does not alter the fibrous makeup of the outer portion of the drumstick.
Conventionally, a solid wood dowel is kiln dried to a certain percentage of moisture and subsequently transformed into a drumstick, a finished product, through the removal of wood from the dowel. The process of indirect heating in a kiln dries the dowel substantially uniformly throughout its cross section, to moisture content typically in the range of about 6% to about 10%.