A technique is provided for reducing the number of write barriers executed in mutator code without compromising garbage collector performance. Advantageously, a compiler generates two forms of a mutator code—a first version with write barriers and a second version substantially without write barriers. In operation, the first version of the code may be accessed by a vtable in a “mature” near-class and the second version may be accessed by a vtable in a “nascent” near-class. According to the invention, mapping of functionally equivalent points in the first and second versions of the mutator code may be facilitated by an associated pcmap. Further, each of the first and second versions may also be associated with a respective nr_map that facilitates mapping functionally equivalent points within different branches of guard code sequences corresponding to reference-writes to non-receiver objects.

In the field of computer systems, considerable effort has been expended on the task of allocating memory to data objects. For the purposes of this discussion, the term object refers to a data structure represented in a computer system's memory. Other terms sometimes used for the same concept are record and structure. An object may be identified by a reference, a relatively small amount of information that can be used to access the object. A reference can be represented as a "pointer" or a "machine address," which may require, for instance, only sixteen, thirty-two, or sixty-four bits of information, although there are other ways to represent a reference.
In some systems, which are usually known as "object oriented," objects may have associated methods, which are routines that can be invoked by reference to the object. They also may belong to a class, which is an organizational entity that may contain method code or other information shared by all objects belonging to that class. In the discussion that follows, though, the term object will not be limited to such structures; it will additionally include structures with which methods and classes are not associated.
FIG. 1 illustrates an exemplary object 100 comprising a plurality of fields 120 that may store, e.g., data or pointers. Typically, the object is an instance of a class, and at least one of its object fields is a class field dedicated to storing a class pointer 110 that references a class definition 150. The class definition includes, inter alia, the set of methods accessible through the object (via pointer 110) as well as other information such as verification information (e.g., hash values of one or more of the methods), debugging information, line numbers corresponding to the methods, data members, etc. While only a single object is shown in FIG. 1, the class definition may instead be referenced by a plurality of objects.
A class definition often comprises a subset of information that is accessed more frequently than the rest of its contents. This subset of information may be grouped and stored in a near-class definition. The remaining contents of the class definition may be stored in a corresponding far-class definition. FIG. 2 illustrates a typical arrangement for partitioning a class definition into near-class and far-class definitions. Specifically, an object 100 may store a class pointer 110 that addresses a frequently accessed near-class 300. The near-class, in turn, includes a far-class pointer 310 that references the contents of a less frequently accessed far-class 200.
FIG. 3 illustrates the exemplary near-class definition 300 in more detail. The near-class comprises a plurality of fields that store, among other things, a far-class pointer 310, a reference map pointer 320, and a vtable 330. As noted, the far-class pointer addresses a corresponding far-class definition that stores information not frequently accessed. The reference map pointer 320 addresses a data structure (not shown) that stores relative offsets of references within objects belonging to the class with which the near-class 300 is associated. Illustratively, the vtable 330 includes pointers, such as pointers 332–336, corresponding to a set of frequently accessed methods (1 through N).
The invention to be described below is applicable to systems that allocate memory to objects dynamically. Not all systems employ dynamic allocation. In some computer languages, source programs can be so written that all objects to which the program's variables refer are bound to storage locations at compile time. This storage-allocation approach, sometimes referred to as "static allocation," is the policy traditionally used by the Fortran programming language, for example.
Even for compilers that are thought of as allocating objects only statically, of course, there is often a certain level of abstraction to this binding of objects to storage locations. Consider the typical computer system 400 depicted in FIG. 4, for example. Data, and instructions for operating on them, that a microprocessor 410 uses may reside in on-board cache memory or be received from further cache memory 420, possibly through the mediation of a cache controller 430. That controller 430 can in turn receive such data from system read/write memory ("RAM") 440 through a RAM controller 450 or from various peripheral devices through a system bus 460. Additionally, instructions and data may be received from other computer systems via a communication interface 480. The memory space made available to an application program may be "virtual" in the sense that it may actually be considerably larger than RAM 440 provides. So the RAM contents will be swapped to and from a system disk 470.
Additionally, the actual physical operations performed to access some of the most-recently visited parts of the process's address space often will actually be performed in the cache 420 or in a cache on board microprocessor 410 rather than on the RAM 440, with which those caches swap data and instructions just as RAM 440 and system disk 470 do with each other.
A further level of abstraction results from the fact that an application will often be run as one of many processes operating concurrently with the support of an underlying operating system. As part of that system's memory management, the application's memory space may be moved among different actual physical locations many times in order to allow different processes to employ shared physical memory devices. That is, the location specified in the application's machine code may actually result in different physical locations at different times because the operating system adds different offsets to the machine-language-specified location.
The use of static memory allocation in writing certain long-lived applications makes it difficult to restrict storage requirements to the available memory space. Abiding by space limitations is easier when the platform provides for dynamic memory allocation, i.e., when memory space to be allocated to a given object is determined only at run time.
Dynamic allocation has a number of advantages, among which is that the run-time system is able to adapt allocation to run-time conditions. For example, the programmer can specify that space should be allocated for a given object only in response to a particular run-time condition. The C-language library function malloc( ) is often used for this purpose. Conversely, the programmer can specify conditions under which memory previously allocated to a given object can be reclaimed for reuse. The C-language library function free( ) results in such memory reclamation. Because dynamic allocation provides for memory reuse, it facilitates generation of large or long-lived applications, which over the course of their lifetimes may employ objects whose total memory requirements would greatly exceed the available memory resources if they were bound to memory locations statically.
Particularly for long-lived applications, though, allocation and reclamation of dynamic memory must be performed carefully. If the application fails to reclaim unused memory—or, worse, loses track of the address of a dynamically allocated segment of memory—its memory requirements will grow over time to exceed the system's available memory. This kind of error is known as a "memory leak." Another kind of error occurs when an application reclaims memory for reuse even though it still maintains a reference to that memory. If the reclaimed memory is reallocated for a different purpose, the application may inadvertently manipulate the same memory in multiple inconsistent ways. This kind of error is known as a "dangling reference."
A way of reducing the likelihood of such leaks and related errors is to provide memory-space reclamation in a more automatic manner. Techniques used by systems that reclaim memory space automatically are commonly referred to as garbage collection. Garbage collectors operate by reclaiming space that they no longer consider "reachable." Statically allocated objects represented by a program's global variables are normally considered reachable throughout a program's life. Such objects are not ordinarily stored in the garbage collector's managed memory space, but they may contain references to dynamically allocated objects that are, and such objects are considered reachable. Clearly, an object referred to in the processor's call stack is reachable, as is an object referred to by register contents. And an object referred to by any reachable object is also reachable. As used herein, a call stack is a data structure that corresponds to a process or thread and stores state information, such as local variables, register contents and program counter values, associated with nested routines within the process or thread. A call stack is usually thought of as divided into stack frames associated with respective calls of the nested routines.
The use of garbage collectors is advantageous because, whereas a programmer working on a particular sequence of code can perform his task creditably in most respects with only local knowledge of the application at any given time, memory allocation and reclamation require a global knowledge of the program. Specifically, a programmer dealing with a given sequence of code does tend to know whether some portion of memory is still in use for that sequence of code, but it is considerably more difficult for him to know what the rest of the application is doing with that memory. By tracing references from some conservative notion of a root set, e.g., global variables, registers, and the call stack, automatic garbage collectors obtain global knowledge in a methodical way. By using a garbage collector, the programmer is relieved of the need to worry about the application's global state and can concentrate on local-state issues, which are more manageable. The result is applications that are more robust, having no dangling references and fewer memory leaks.
Garbage collection mechanisms can be implemented by various parts and levels of a computing system. One approach is simply to provide them as part of a batch compiler's output. Consider FIG. 5's simple batch-compiler operation, for example. A computer system executes in accordance with compiler object code and therefore acts as a compiler 500. The compiler object code is typically stored on a medium such as FIG. 4's system disk 470 or some other machine-readable medium, and it is loaded into RAM 440 to configure the computer system to act as a compiler. In some cases, though, the compiler object code's persistent storage may instead be provided in a server system remote from the machine that performs the compiling. The electrical signals that carry the digital data by which the computer systems exchange that code are examples of the kinds of electromagnetic signals by which the computer instructions can be communicated. Others include radio waves, microwaves, and both visible and invisible light.
The input to the compiler is the application source code, and the end product of the compiler process is application object code. This object code defines an application 510, which typically operates on input such as mouse clicks, etc., to generate a display or some other type of output. This object code implements the relationship that the programmer intends to specify by his application source code. In one approach to garbage collection, the compiler 500, without the programmer's explicit direction, additionally generates code that automatically reclaims unreachable memory space.
Even in this simple case, though, there is a sense in which the application does not itself provide the entire garbage collector. Specifically, the application will typically call upon the underlying operating system's memory-allocation functions. And the operating system may in turn take advantage of various hardware that lends itself particularly to use in garbage collection. So even a very simple system may disperse the garbage collection mechanism over a number of computer system layers.
To get some sense of the variety of system components that can be used to implement garbage collection, consider FIG. 6's example of a more complex way in which various levels of source code can result in the machine instructions that a processor executes. In the FIG. 6 arrangement, the human applications programmer produces source code 610 written in a high-level language. A compiler 620 typically converts that code into "class files." These files include routines written in instructions, called "byte codes" 630, for a "virtual machine" that various processors can be configured to emulate. This conversion into byte codes is almost always separated in time from those codes' execution, so FIG. 6 divides the sequence into a "compile-time environment" 600 separate from a "run-time environment" 640, in which execution occurs. One example of a high-level language for which compilers are available to produce such virtual-machine instructions is the Java™ programming language. (Java is a trademark or registered trademark of Sun Microsystems, Inc., in the United States and other countries.)
Most typically, the class files' byte-code routines are executed by a processor under control of a virtual-machine process 650. That process emulates a virtual machine from whose instruction set the byte codes are drawn. As is true of the compiler 620, the virtual-machine process 650 may be specified by code stored on a local disk or some other machine-readable medium from which it is read into FIG. 4's RAM 440 to configure the computer system to implement the garbage collector and otherwise act as a virtual machine. Again, though, that code's persistent storage may instead be provided by a server system remote from the processor that implements the virtual machine, in which case the code would be transmitted, e.g., electrically or optically to the virtual-machine-implementing processor.
In some implementations, much of the virtual machine's action in executing these byte codes is most like what those skilled in the art refer to as "interpreting," so FIG. 6 depicts the virtual machine as including an "interpreter" 660 for that purpose. In addition to or instead of running an interpreter, many virtual-machine implementations actually compile the byte codes concurrently with the resultant object code's execution, so FIG. 6 depicts the virtual machine as additionally including a "just-in-time" compiler 670. The arrangement of FIG. 6 differs from FIG. 5 in that the compiler 620 for converting the human programmer's code does not contribute to providing the garbage collection function; that results largely from the virtual machine 650's operation.
Those skilled in that art will recognize that both of these organizations are merely exemplary, and many modern systems employ hybrid mechanisms, which partake of the characteristics of traditional compilers and traditional interpreters both. The invention to be described below is applicable independently of whether a batch compiler, a just-in-time compiler, an interpreter, or some hybrid is employed to process source code. In the remainder of this application, therefore, we will use the term compiler to refer to any such mechanism, even if it is what would more typically be called an interpreter.
Now, some of the functionality that source-language constructs specify can be quite complicated, requiring many machine-language instructions for their implementation. One quite-common example is a source-language instruction that calls for 64-bit arithmetic on a 32-bit machine. More germane to the present invention is the operation of dynamically allocating space to a new object; this may require determining whether enough free memory space is available to contain the new object and reclaiming space if there is not.
In such situations, the compiler may produce "inline" code to accomplish these operations. That is, all object-code instructions for carrying out a given source-code-prescribed operation will be repeated each time the source code calls for the operation. But inlining runs the risk that "code bloat" will result if the operation is invoked at many source-code locations.
The natural way of avoiding this result is instead to provide the operation's implementation as a procedure, i.e., a single code sequence that can be called from any location in the program. In the case of compilers, a collection of procedures for implementing many types of source-code-specified operations is called a runtime system for the language. The compiler and its runtime system are designed together so that the compiler "knows" what runtime-system procedures are available in the target computer system and can cause desired operations simply by including calls to procedures that the target system already contains. To represent this fact, FIG. 6 includes block 680 to show that the compiler's output makes calls to the runtime system as well as to the operating system 690, which consists of procedures that are similarly system resident but are not compiler-dependent.
Although the FIG. 6 arrangement is a popular one, it is by no means universal, and many further implementation types can be expected. Proposals have even been made to implement the virtual machine 650's behavior in a hardware processor, in which case the hardware itself would provide some or all of the garbage collection function. In short, garbage collectors can be implemented in a wide range of combinations of hardware and/or software.
By implementing garbage collection, a computer system can greatly reduce the occurrence of memory leaks and other software deficiencies in which human programming frequently results. But it can also have significant adverse performance effects if it is not implemented carefully. To distinguish the part of the program that does "useful" work from that which does the garbage collection, the term mutator is sometimes used in discussions of these effects; from the collector's point of view, what the mutator does is mutate active data structures' connectivity.
Some garbage collection approaches rely heavily on interleaving garbage collection steps among mutator steps. In one type of garbage collection approach, for instance, the mutator operation of writing a reference is followed immediately by garbage collector steps used to maintain a reference count in that object's header, and code for subsequent new-object storage includes steps for finding space occupied by objects whose reference count has fallen to zero. Obviously, such an approach can slow mutator operation significantly.
Other approaches therefore interleave very few garbage collector-related instructions into the main mutator process but instead interrupt it from time to time to perform garbage collection intervals, in which the garbage collector finds unreachable objects and reclaims their memory space for reuse. Such an approach will be assumed in discussing FIG. 7's depiction of a simple garbage collection operation. Within the memory space allocated to a given application is a part 720 managed by automatic garbage collection. As used hereafter, all dynamically allocated memory associated with a process or thread will be referred to as its heap. During the course of the application's execution, space is allocated for various objects 702, 704, 706, 708, and 710. Typically, the mutator allocates space within the heap by invoking the garbage collector, which at some level manages access to the heap. Basically, the mutator asks the garbage collector for a pointer to a heap region where it can safely place the object's data. The garbage collector keeps track of the fact that the thus-allocated region is occupied. It will refrain from allocating that region in response to any other request until it determines that the mutator no longer needs the region allocated to that object.
Garbage collectors vary as to which objects they consider reachable and unreachable. For the present discussion, though, an object will be considered "reachable" if it is referred to, as object 702 is, by a reference in a root set 700. The root set consists of reference values stored in the mutator's threads' call stacks, the central processing unit (CPU) registers, and global variables outside the garbage collected heap. An object is also reachable if it is referred to, as object 706 is, by another reachable object (in this case, object 702). Objects that are not reachable can no longer affect the program, so it is safe to re-allocate the memory spaces that they occupy.
A typical approach to garbage collection is therefore to identify all reachable objects and reclaim any previously allocated memory that the reachable objects do not occupy. A typical garbage collector may identify reachable objects by tracing references from the root set 700. For the sake of simplicity, FIG. 7 depicts only one reference from the root set 700 into the heap 720. (Those skilled in the art will recognize that there are many ways to identify references, or at least data contents that may be references.) The collector notes that the root set points to object 702, which is therefore reachable, and that reachable object 702 points to object 706, which therefore is also reachable. But those reachable objects point to no other objects, so objects 704, 708, and 710 are all unreachable, and their memory space may be reclaimed.
To avoid excessive heap fragmentation, some garbage collectors additionally relocate reachable objects. FIG. 8 shows a typical approach for this "copying" type of garbage collection. The heap is partitioned into two halves, hereafter called "semi-spaces." For one garbage collection cycle, all objects are allocated in one semi-space 810, leaving the other semi-space 820 free. When the garbage collection cycle occurs, objects identified as reachable are "evacuated" to the other semi-space 820, so all of semi-space 810 is then considered free. Once the garbage collection cycle has occurred, all new objects are allocated in the lower semi-space 820 until yet another garbage collection cycle occurs, at which time the reachable objects are evacuated back to the upper semi-space 810.
Although this relocation requires the extra steps of copying the reachable objects and updating references to them, it tends to be quite efficient, since most new objects quickly become unreachable, so most of the current semi-space is actually garbage. That is, only a relatively few, reachable objects need to be relocated, after which the entire semi-space contains only garbage and can be pronounced free for reallocation.
Now, a collection cycle can involve following all reference chains from the basic root set—i.e., from inherently reachable locations such as the call stacks, class statics and other global variables, and registers—and reclaiming all space occupied by objects not encountered in the process. And the simplest way of performing such a cycle is to interrupt the mutator to provide a collector interval in which the entire cycle is performed before the mutator resumes. For certain types of applications, this approach to collection-cycle scheduling is acceptable and, in fact, highly efficient.
For many interactive and real-time applications, though, this approach is not acceptable. The delay in mutator operation that the collection cycle's execution causes can be annoying to a user and can prevent a real-time application from responding to its environment with the required speed. In some applications, choosing collection times opportunistically can reduce this effect. For example, a garbage-collection cycle may be performed at a natural stopping point in the application, such as when the mutator awaits user input.
So it may often be true that the garbage-collection operation's effect on performance can depend less on the total collection time than on when collections actually occur. But another factor that often is even more determinative is the duration of any single collection interval, i.e., how long the mutator must remain quiescent at any one time. In an interactive system, for instance, a user may never notice hundred-millisecond interruptions for garbage collection, whereas most users would find interruptions lasting for two seconds to be annoying.
The cycle may therefore be divided up among a plurality of collector intervals. When a collection cycle is divided up among a plurality of collection intervals, it is only after a number of intervals that the collector will have followed all reference chains and be able to identify as garbage any objects not thereby reached. This approach is more complex than completing the cycle in a single collection interval; the mutator will usually modify references between collection intervals, so the collector must repeatedly update its view of the reference graph in the midst of the collection cycle. To make such updates practical, the mutator must communicate with the collector to let it know what reference changes are made between intervals.
An even more complex approach, which some systems use to eliminate discrete pauses or maximize resource-use efficiency, is to execute the mutator and collector in concurrent execution threads. Most systems that use this approach use it for most but not all of the collection cycle; the mutator is usually interrupted for a short collector interval, in which a part of the collector cycle takes place without mutation.
Independent of whether the collection cycle is performed concurrently with mutator operation, is completed in a single interval, or extends over multiple intervals is the question of whether the cycle is complete, as has tacitly been assumed so far, or is instead "incremental." In incremental collection, a collection cycle constitutes only an increment of collection: the collector does not follow all reference chains from the basic root set completely. Instead, it concentrates on only a portion, or collection set, of the heap. Specifically, it identifies every collection-set object referred to by a reference chain that extends into the collection set from outside of it, and it reclaims the collection-set space not occupied by such objects, possibly after evacuating them from the collection set.
By thus culling objects referenced by reference chains that do not necessarily originate in the basic root set, the collector can be thought of as expanding the root set to include as roots some locations that may not be reachable. Although incremental collection thereby leaves "floating garbage," it can result in relatively low pause times even if entire collection increments are completed during respective single collection intervals.
Most collectors that employ incremental collection operate in "generations" although this is not necessary in principle. Different portions, or generations, of the heap are subject to different collection policies. New objects are allocated in a "young" generation, and older objects are "promoted" from younger generations to older or more "mature" generations. Collecting the younger generations more frequently than the others yields greater efficiency because the younger generations tend to accumulate garbage faster; newly allocated objects tend to "die," while older objects tend to "survive."
But generational collection greatly increases what is effectively the root set for a given generation. Consider FIG. 9, which depicts a heap as organized into three generations 920, 940, and 960. Assume that generation 940 is to be collected. The process for this individual generation may be more or less the same as that described in connection with FIGS. 7 and 8 for the entire heap, with one major exception. In the case of a single generation, the root set must be considered to include not only the call stack, registers, and global variables represented by set 900 but also objects in the other generations 920 and 960, which themselves may contain references to objects in generation 940. So pointers must be traced not only from the basic root set 900 but also from objects within the other generations.
One could perform this tracing by simply inspecting all references in all other generations at the beginning of every collection interval, and it turns out that this approach is actually feasible in some situations. But it takes too long in other situations, so workers in this field have employed a number of approaches to expediting reference tracing. One approach is to include so-called write barriers in the mutator process. A write barrier is code added to a write operation in the mutator code to record information from which the garbage collector can determine where references were written or may have been since the last collection interval. The write-barrier code may communicate this information directly to the collector or indirectly through other runtime processes. A list of modified references can then be maintained by taking such a list as it existed at the end of the previous collection interval and updating it by inspecting only locations identified by the write barriers as possibly modified since the last collection interval.
One of the many write-barrier implementations commonly used by workers in this art employs what has been referred to as the "card table." FIG. 9 depicts the various generations as being divided into smaller sections, known for this purpose as "cards." Card tables 910, 930, and 950 associated with respective generations contain an entry for each of their cards. When the mutator writes a reference in a card, it makes an appropriate entry in the card-table location associated with that card (or, say, with the card in which the object containing the reference begins). Most write-barrier implementations simply make a Boolean entry indicating that the write operation has been performed, although some may be more elaborate. For example, assume reference 924 on card 922 is modified ("dirtied") by the mutator, so a Boolean entry in corresponding card-table entry 905 may be set accordingly. The mutator having thus left a record of where new or modified references may be, the collector may scan the card-table to identify those cards that were marked as having been modified since the last collection interval, and the collector can scan only those identified cards for modified references.
Of course, there are other write-barrier approaches, such as simply having the write barrier add to a list of addresses where references were written. Also, although there is no reason in principle to favor any particular number of generations, and although FIG. 9 shows three, most generational garbage collectors have only two generations, of which one is the young generation and the other is the mature generation. Moreover, although FIG. 9 shows the generations as being of the same size, a more-typical configuration is for the young generation to be considerably smaller. Further, each generation may be dispersed over various address ranges of memory instead of comprising a contiguous block of memory as shown in FIG. 9. Finally, although we assumed for the sake of simplicity that collection during a given interval was limited to only one generation, a more-typical approach is actually to collect the whole young generation at every interval but to collect the mature one less frequently.
Some collectors collect the entire young generation in every interval and may thereafter collect the mature generation collection in the same interval. It may therefore take relatively little time to scan all young-generation objects remaining after young-generation collection to find references into the mature generation. Even when such collectors do use card tables, therefore, they often do not use them for finding young-generation references that refer to mature-generation objects. On the other hand, laboriously scanning the entire mature generation for references to young-generation (or mature-generation) objects would ordinarily take too long, so write barriers are typically used to set card-table entries associated with the mature generation to thereby limit the amount of memory the collector searches for modified mature-generation references.
Write barrier code is often inserted into mutator code in close proximity to a corresponding mutator instruction that modifies a reference. In an imprecise card-marking scheme, the write barrier code marks the card-table entry that corresponds to the card in which the modified object begins. In a precise card-marking scheme, the write barrier marks the card-table entry that corresponds to the card in which the modified field is located. FIG. 10 illustrates exemplary write barrier code for precise card-marking that corresponds to a mutator instruction that modifies a reference.
FIG. 10's line N+1 contains an assembly instruction (STW) for storing a word-length value into an object reference field located at an offset C from the object's starting address, while lines N+3 through N+5 illustrate the assembly instruction's corresponding write-barrier code. In this example, the write barrier adds three instructions not originally present in the mutator code: ADD, Shift Right Logical (SRL) and Store Byte (STB) instructions. Specifically, the instruction at line N+3 stores the address of the modified object field in a "working" register, and the instruction at line N+4 divides this address by the card size to determine how many cards into the mature generation the modified field is located. Here, we have assumed the card size is a power of 2 in bytes. Lastly, the instruction at line N+5 marks a card-table entry with a binary "0" corresponding to the card in the mature generation that stores the modified object field. As described, each card-table entry is assumed to have a length of one byte.
As seen with regards to FIG. 10, the inclusion of write barriers after modifying object references increases the amount of mutator code, e.g., by three instructions per reference modification. Clearly, this overhead may significantly increase the mutator's execution time, especially when the mutator code modifies references frequently. So adding write barriers to increase the garbage collector's efficiency tends to compromise the mutator's.

Specializing write-barriers for objects in a garbage collected heap


A display apparatus displaying gray scale by using a subfield method has a main path, a sub path, a switch circuit, a motion region detection circuit, a first judging circuit, a level detection circuit, a motion detection correction circuit, and a second judging circuit. The switch circuit outputs a first image signal generated by the main path or a second image signal generated by the sub path by switching therebetween, and the first judging circuit outputs a first motion signal in accordance with an output of the motion region detection circuit. The motion detection correction circuit receives the first motion signal and a level signal, and outputs a second motion signal in accordance with the level signal, and the second judging circuit receives the second motion signal and the level signal, and outputs a switching control signal to the switch circuit.

1. Field of the Invention
The present invention relates to a display apparatus and a display driving method and, more particularly, to a display apparatus and a display driving method suitable for driving a plasma display panel (PDP).
2. Description of the Related Art
With the recent trend toward larger-screen displays, the need for thin display apparatuses has been increasing, and various types of thin display apparatus have been commercially implemented. Examples include matrix panels that display images by directly using digital signals, such as PDPs and other gas discharge display panels, digital micromirror devices (DMDs), EL display devices, fluorescent display tubes, and liquid crystal display devices. Among such thin display devices, gas discharge display panels are considered to be the most promising candidate for large-area, direct-view HDTV (high-definition television) display devices, because of the simple production process which facilitates fabrication of larger-area displays, a self-luminescent property which ensures good display quality, and a high response speed.
A plasma display apparatus that utilizes a surface discharge has a structure such that a pair of electrodes are formed on the inner surface of a front glass substrate and a rare gas is filled therein. When a voltage is applied between the electrodes, a surface discharge occurs at the surface of a protective layer and a dielectric layer formed on the electrode surface, resulting in the emission of ultraviolet light. The inner surface of a rear glass substrate is coated with phosphors of three primary colors, red (R), green (G), and blue (B), which when excited by the ultraviolet light, produce visible light to achieve a color display.
In the plasma display apparatus, each field (frame) is divided into a plurality of weighted subfields (SFs: light emission blocks) each comprising a plurality of sustain discharge pulses (sustain pulses), and a gray scale display is achieved by combining these subfields. In a display apparatus that achieves a gray scale display by combining a plurality of such weighted subfields, a phenomenon can occur in which an unnatural color contour, which normally should not exist, appears on the surface of a moving image due to the persistence of human vision, etc. This phenomenon is generally known as a "moving image false contour" or a "moving image pseudo contour". In particular, when a person in a displayed image moves, a green or red color band occurs, for example, on the contour of the person's face or other flesh-colored portions, and this greatly degrades the picture quality.
In the prior art, techniques for improving the picture quality by reducing the moving image false contour phenomenon have been proposed in Japanese Patent No. 3322809 (Japanese Unexamined Patent Publication (Kokai) No. 10-31455: JPP'455) and Japanese Unexamined Patent Publication (Kokai) No. 11-85101 (JPP'101).
The prior art and its associated problems will be described in detail later with reference to accompanying drawings.

Display apparatus and display driving method for effectively eliminating the occurrence of a moving image false contour


A vehicle article may have cross bars that may be nestably secured together on a trunk lid of a vehicle when not in use, and yet quickly and easily attached to elements mounted in roof ditches on the roof of the vehicle when needed for use. In another embodiment the vehicle article carrier includes a pair of pivotally secured support rails that are supported from frame or body structure of the vehicle below and adjacent the rear bumper of the vehicle. The support rails may be pivoted into stowed positions when not needed to hide them from view, and then quickly and easily pivoted out when needed for use. Attachments such as a cargo box or a bicycle carrier may be easily secured to the support rails.

The statements in this section merely provide background information related to the present disclosure and may not constitute prior art.
Vehicle article carriers are used with motor vehicles to support variously sized articles thereon. Such carriers may be used with sedans, SUVs, mini-vans, hatchbacks, etc. When used with sedans, the vehicle article carrier is typically positioned over the roof of the vehicle. Typically a pair of side rails of the vehicle article carrier is permanently secured to the vehicle roof to run parallel to one another and along the major longitudinal axis of the vehicle. Typically a pair of cross bars is then mounted on side rails to extend perpendicular to the major longitudinal axis of the vehicle. In many instances the cross bars may be removed from the side rails when use of the vehicle article carrier is not needed, but this leaves the side rails mounted on top of the vehicle. Moreover, when the cross bars are removed while the vehicle owner is away from his/her home, then the cross bars must be stored inside the vehicle or in the trunk of the vehicle. As the cross bars may be typically between three to five feet or so in overall length, this can take up valuable space within the interior of the vehicle or within its trunk.
In other instances the size or shape of the article or cargo that the vehicle owner needs to transport on the vehicle article carrier may make it difficult for the owner to position the article or cargo on the vehicle's roof, or may require two individuals to lift and position the cargo over the roof of the vehicle. In such instances a roof mounted vehicle article carrier may be of limited use to the vehicle owner. Presently there are cargo supporting platforms that may be inserted into a receiver of a hitch mounted on a vehicle. Such platforms thus are supported from the receiver and project outwardly from, and below, the rear bumper of the vehicle. Since they positioned relatively close to ground, this can make it considerably easier for the user to load heavy or large cumbersome items, which might otherwise require two individuals (or possibly the use of a ladder) if the cargo needed to be lifted over the roof and positioned on a conventional roof-mounted article carrier system. However, hitch-mounted cargo platforms are relatively heavy and are impractical to leave attached to the hitch of the vehicle full time. Such platforms can also impede use of the trunk because the user is not able to stand directly behind the rear bumper when loading items into the trunk or unloading items from the trunk. Still further, such cargo platforms can take up considerable storage space when not in use, and may occupy a good amount of the available space in the trunk of a vehicle when not in use. And whether one attempts to store them in the trunk of the vehicle or in one's garage, the weight of such platforms can make handling them (i.e., removal or attachment to the vehicle) difficult or cumbersome, or in some cases impossible for smaller individuals, females or individuals with a disability.


An information processing apparatus includes: a memory; and a processor coupled to the memory and configured to: acquire feature points from a shot image; calculate, from each of the acquired feature points, with preset conditions, a plurality of context feature amounts that has a success-or-failure vector of a single-attribute; and extract, from among the acquired feature points, feature points of which a product of the plurality of context feature amounts is equal to or greater than a preset threshold.

There has been a self-position estimation technique of estimating the position of oneself on a map, as a technique of achieving autonomous movement such as automatic drive, and travel control of a robot. Map information for self-position estimation retains feature points of a scenic image on a map in order to make association with an input of a sensor such as a camera installed in a device that moves autonomously.
Related art is disclosed in International Publication Pamphlet No. WO 2012/46671, Japanese Laid-open Patent Publication No. 2012-185011, Japanese Laid-open Patent Publication No. 2011-215053, Japanese Laid-open Patent Publication No. 2011-215974, and Japanese Laid-open Patent Publication No. 2015-108604.

Information processing system, computer-readable recording medium recording feature-point extraction program, and feature-point extraction method


An image forming apparatus includes an image forming unit; an intermediate transfer member; a secondary transfer member to form a secondary transfer nip with the intermediate transfer member and the secondary transfer member; a biasing mechanism to bias the secondary transfer member toward the intermediate transfer member; a cam member rotatable between a first position, at which a predetermined space is formed in the secondary transfer nip, and a second position, at which the secondary transfer member and the intermediate transfer member contact each other; and a contact-separation controller configured to put the cam member in the first position before entry of the recording medium into the secondary transfer nip, rotate the cam member toward the second position when the recording medium enters the secondary transfer nip, and change a start timing of rotation of the cam member in accordance with a thickness of the recording medium.

1. Technical Field
Exemplary aspects of the present disclosure generally relate to an image forming apparatus including an intermediate transfer member.
2. Related Art
Image forming apparatuses using electrophotography and employing intermediate transfer are well known. In such image forming apparatuses using an intermediate transfer method, for example, multiple toner images are sequentially formed on an image carrier such as a photoreceptor drum. The multiple toner images are then sequentially superimposed on each other in a primary transfer to a rotationally moving intermediate transfer member. A composite toner image formed of the multiple toner images on the intermediate transfer member is transferred in a secondary transfer to a recording sheet such as a transfer paper that is a recording medium.
Image forming apparatuses using the intermediate transfer method have certain advantages, such as being easy to downsize and little restriction on the type of recording medium used. Thus, these image forming apparatuses are frequently used for color image forming apparatus.
There are image forming apparatuses using a type of intermediate transfer method that includes a secondary transfer roller forming a secondary transfer nip with the intermediate transfer member, and a mechanism for contacting and separating the secondary transfer roller to and from the intermediate transfer member.
For example, a related art describes an image forming apparatus including a secondary transfer opposing roller provided opposite the secondary transfer roller to support an intermediate transfer belt serving as the intermediate transfer member from the back, and a cam member provided on the same axis of the secondary transfer opposing roller to contact a follower (a free rotation roller) provided on the same axis of the secondary transfer roller.
In the above-described image forming apparatus, a protruding portion of the cam member contacts the free rotation roller before the recording sheet enters the secondary transfer nip. By the contact of the protruding portion of the cam member to the free rotation roller of the secondary transfer roller, the secondary transfer roller that is pressed toward the intermediate transfer belt is separated from the intermediate transfer belt. As a result, a space is formed in the secondary transfer nip between the secondary transfer roller and the intermediate transfer belt and is maintained. Just before the recording sheet enters the secondary transfer nip, the cam member is rotated to a position at which the protruding portion of the cam member does not contact the free rotation roller of the secondary transfer roller.
As a result, generation of a load change is prevented due to the slight space in the secondary transfer nip when a front end of the recording sheet enters the secondary transfer nip. The space is eliminated immediately after the recording sheet enters the secondary transfer nip. Accordingly, the recording sheet is reliably sandwiched in the secondary transfer nip, and reliable secondary transfer of a toner image is realized. The above configuration is particularly effective in a case in which the recording sheet that is being passed through is relatively thick (hereinafter referred to as thick recording sheet). The generation of load change and vibration due to the impact of the recording sheet striking the intermediate transfer belt and the secondary transfer roller when the front end of the thick recording sheet enters is reduced and hence a good toner image is produced.
However, in conventional image apparatuses with the intermediate transfer method that includes the above-described mechanism, a start timing of the rotation of the cam member in a direction in which the protruding portion of the cam member does not contact the free rotation roller (eliminates the space in the secondary transfer nip) is constant upon the entry of the recording sheet into the secondary transfer nip.
Accordingly, if the cam member starts to rotate to provide an appropriate space for the thick recording sheet upon entry into the secondary transfer nip, the space upon entry into the secondary transfer nip is too large when the recording sheet is relatively thin (hereinafter referred to as thin recording sheet) or is a normal sheet of paper. Thus, when the separation of the secondary transfer roller and the intermediate transfer belt is cancelled, a return shock occurs to both the secondary transfer roller and the intermediate transfer belt. The return shock generates load change and vibration, resulting in image failure.

Image forming apparatus including a cam member to separate a transfer member


A curtain air bag module (100) comprising and air bag (102) having at least one inflatable region with internally configured internal tethers and a deflector or ramp locatable above a B-pillar trim part and loosely mounted to the vehicle and to the trim part.

The present invention generally relates to inflatable restraints for motor vehicles and more specifically to a curtain air bag installed along the roof rail of a vehicle.
Reference is briefly made to FIG. 1, which illustrates a prior art curtain air bag module 20 installed along the roof rail 22 of a passenger compartment 23 of a vehicle 24. In typical curtain air bag installations the air bag extends from the A-pillar 30 across the B-pillar 32 to the C-pillar 34 of the vehicle. Generally, the air bag module 20 comprises a rectangular or oblong air bag 40 folded or rolled into a cylindrical configuration. While in this compact configuration, the air bag is slid into a cover that can take many shapes; one such cover is a long cylindrical, perforated or breakable covering or sleeve, which maintains the air bag in its folded or rolled condition.
The air bag will generally include an inlet 42 in communication with an inflator 44. The inflator may be directly connected to the inlet or inserted within a housing for an indirect connection. In other installations the inlet is formed by an opening in an inflatable portion of the air bag and the inflator is inserted directly therein. The inflator is appropriately fastened, using one or more fasteners or brackets 46, to the appropriate vehicle structure. As illustrated in FIG. 1, the inflator is mounted in the C-pillar; however, the inflator 44 can be mounted proximate the B or A-pillars. Further, as known in the art, the lower corners of the air bag are often secured to adjacent corresponding pillars by a strap, which is often called a tether. One forward strap 48 is shown in FIG. 1 in its stored configuration along the A-pillar. The various components shown in FIG. 1 are covered by one or more trim pieces hiding them in normal use. As mentioned, the air bag module is typically secured to the roof rail by a plurality of fasteners, which secure the inflator and also secure the air bag. The module may also include a deflector or ramp 50 located proximate the B-pillar, which urges the air bag as it inflates to move away from the B-pillar.
It is an object of the present invention to provide an improved curtain air bag module.
Accordingly the invention comprises: an improved deflector or ramp that is not fixedly fastened to the vehicle, B-pillar or to the B-pillar trim. The improved ramp is used in conjunction with and forms a part of a curtain air bag module comprising an air bag having at least one inflatable region. The air bag generally may include a distribution tube located proximate a top portion of the at least one inflatable region of the air bag, the tube having a first end adapted to receive inflation gas, the distribution tube including at least one set of openings operatively associated with the inflatable region for communication of inflation gas to these regions. The air bag further includes a plurality of tabs, which extend through an optional, hollow tubular covering placed about the air bag. These tabs are secured proximate the roof rail of the vehicle. In the illustrated embodiment, the air bag includes two major inflatable regions positioned laterally of each other with added passages interconnecting the major inflatable regions. One of the tabs, upon extending through the cover, also extends through the deflector or ramp.
Many other objects and purposes of the invention will be clear from the following detailed description of the drawings.


The present invention relates to an optimized method of addressing liquid-crystal screens. In accordance with the invention, the matrix addressing method, periodically scanning each line with a signal of voltage V.sub.A (t) as a function of time, is characterized in that each period of this signal consists of a plateau up to T.sub.F then a curve which may be a straight-line portion of slope .alpha. between T.sub.F and T.sub.F'. Application to liquid-crystal screens.

A liquid-crystal screen consists of a set of image elements ("pixels", standing for picture element), each formed by an electrode and by a counter electrode framing the liquid crystal, the value of the field between these electrodes altering the optical properties of the liquid crystal. The voltage at the terminals of the electrodes of the pixels is delivered via addressing columns by peripheral circuits ("drivers") by virtue of the control transistors of these pixels, the conducting or non-conducting state of these transistors being determined by selection lines coming from other line drivers.
FIG. 1 represents a selection line Lj of a liquid-crystal screen with m lines and n columns, controlling the transistors T1 to Tn of the pixels P1 to Pn. This line is connected to a line driver which delivers, at A, the square selection signal V.sub.A (t) as represented in FIG. 2. The signal V.sub.A (t) causes the transistors T1 to Tn of the line L.sub.j to conduct, and thus allows the electrodes of the pixels P.sub.i to be polarized by the video signal coming from the columns C.sub.1 to C.sub.n. The capacitances C.sub.c1 represent the capacitive couplings between the line L.sub.j and the counter electrode CE through the liquid crystal. This line L.sub.j, the end of which is floating, constitutes a delay line which causes distortion of the selection signal at point B by comparison with point A; this signal V.sub.B (t) at point B is represented in FIG. 2. This is visible particularly when it is desired to display a uniform image and when the same voltage is applied to all the columns C.sub.1 to C.sub.n of the screen. At the instant t.sub.F, the voltage at the terminals of the capacitances C.sub.p formed by the electrodes of the pixels P.sub.i and the counter electrode CE is the same. However, after the instant t.sub.F this is no longer the case due to the difference between the shapes of the signals V.sub.A (t) and V.sub.B (t).
This is because, at point A, the voltage drop is very fast, the transistor T.sub.1 is therefore turned off immediately after t.sub.F. Moreover, a stray capacitance C.sub.p exists between the line L.sub.j and the pixels P.sub.i. The voltage drop .DELTA.V.sub.G at point A thus, by capacitive coupling, causes a voltage drop on the pixel which is: EQU .DELTA.V.sub.1 =C.sub.p /C.sub.pi .times..DELTA.V.sub.G
If V.sub.1 is the voltage supplied to the pixel P.sub.1 by the column C.sub.1, the voltage drop .DELTA.V.sub.1 on the pixel at the instant when the transistor T.sub.1 ceases to conduct is illustrated by FIG. 3a, V.sub.ce being the voltage on the counter electrode.
At point B, the phenomenon of capacitive coupling is identical, but in this case the transistor T.sub.n continues to conduct as long as the voltage V.sub.B (t) is greater than V.sub.1 +V.sub.t, where V.sub.t is the threshold voltage of the transistor. The coupling .DELTA.V.sub.n between the line L.sub.j and the last pixel P.sub.n is therefore weaker than .DELTA.V.sub.1, since, as long as the transistor T.sub.n is conducting, the voltage at the terminals of the pixels remains equal to the voltage delivered by the column C.sub.n. The capacitive coupling thus causes a voltage drop for the pixel P.sub.n : EQU .DELTA.v.sub.n =C.sub.p /C.sub.pi .times..DELTA.V',
.DELTA.V' being the voltage drop at point B.
The voltage which allows the pixels to alter the optical properties of the liquid crystal is therefore V.sub.pix1 =V.sub.1 -V.sub.ce in the case of the pixel P.sub.1 and V.sub.pixn =V.sub.n -V.sub.ce in the case of the pixel P.sub.n, V.sub.pix1 being different from V.sub.pixn. It is this which is represented in FIG. 3b. The grey level is therefore not the same at the start and at the end of line. This problem called "horizontal shading" is particularly important in the case of large-size screens.
One solution frequently used, and described in the document SID 94 Digest, page 263, consists in using a counter-pulse to reduce this effect. This solution is expensive since it requires more complicated drivers to be produced.
Another solution frequently used consists in reducing the resistivity of the lines. However, this implies increasing the thickness of the metal used to produce the line, which renders the process more expensive and more difficult to keep control of.
The present invention proposes a simple and effective solution to this problem of "horizontal shading".

Optimized method of addressing a liquid-crystal screen and device for implementing it


An optical disk drive apparatus includes a magnet-optic optical disk, laser generator, optical system, first and second photodetectors, data detecting and amplifying device connected to the photodetectors and a laser generator control device. The photodetectors each have first and second detecting sections receiving leading and trailing light beam segments, respectively, and each photodetector producing a magnitude proportional output signal. The control device includes a mode setting device for operating in a read only mode using both first and second sections and a read while performing a write mode using only the second sections.

Magneto-optical recording typically requires three disk revolutions to write new information on the disk. The first revolution is used to erase the media, the second, to write the information and the third, to read and verify that the write operation successfully recorded the data.
Various attempts have been made to reduce the overhead associated with an extra disk revolution for the read verify operation. U.S. Pat. No. 4,583,210, relates to an optical disk system where information is read back immediately after it is written. Two separate laser generators are provided; one for writing data and one for reading the data back.
U.S. Pat. No. 4,949,311, relates to an optical disk system with a single laser source to write on an optical disk and obtain a direct read-after-write. In order to accomplish the write and the read, a grate is used to split the laser beam into two beams. The first beam is focused onto the recording surface to generate a write spot, and the second beam is focused onto the recording surface to read back what has been written. The read spot is positioned some distance behind the write spot on the moving magnetic media; in essence, this approach involves the use of two laser beams although only one laser source.
Optical disk media is reactive to bursts of light such as can be produced by the rapid switching of a semiconductor laser. In order to write data on optical media, laser power is controlled to a fairly high power level in order that the media is heated and altered in accordance with an input data stream. In reading the data back, the laser power level is controlled to a lower level so that the media is not altered by the laser beam, but the reflected light indicates the presence or absence of media alterations in accordance with the recorded input data stream.
One type of erasable optical media is magneto-optic (MO) media, which is not permanently altered when data is written. In MO media, the magnetic orientation of the reactive material is altered in the writing process, and in the reading process the magnetic orientation is sensed. In writing data, the orientation of magnetic domains within a written mark on the media may take a north pole orientation to indicate a "0" digit, for example, while the magnetic orientation of the domain within a mark to indicate a "1" digit takes a south pole orientation. In the erasing process, the magnetic orientation is ordered such that the entire media takes the same orientation, for example, a north pole or "0" orientation.
When reading data from an MO optical disk, the remanent magnetization of one or the other polarity causes an angular displacement in the linear polarization of a reflected light beam according to the Kerr effect. The direction of angular displacement is dependent upon the north pole or south pole orientation of the media. When the reflected beam is split into its P and S polarization components, direction of the angular displacement of the light beam can be detected to produce an MO data signal in accordance with the recorded data.
In thermo-magnetic recording, a laser beam is focused to a spot on the surface of the optical disk. Heating of the reactive material of the disk results in a temporary softening of the remanent magnetization quality of the magnetic medium, so that through the application of an external magnetic field, the direction of magnetization can be set to either a north or a south polarity within the heated material. When the laser spot is removed, the medium cools so that the magnetic domains under the spot take either a north or a south polarity depending upon the direction of the external magnetic field applied during the heating process.
In order to write a succession of marks on MO media, the MO disk is moved at a constant velocity under the focused laser spot. During writing of a mark, the laser is energized to a relatively high level often accomplished through short, high power pulses interspersed with relatively long periods at the low power read level.

Split detector system for direct read-while-write operation on magneto-optic media


A method and resulting structure for reducing refraction and reflection occurring at the interface between adjacent layers of different materials in a semiconductor device, assembly or laminate during an alignment step in a semiconductor device fabrication process. The method comprises forming a planar-surfaced layer of material, having a first index of refraction, over a substrate of the semiconductor device, assembly or laminate. A corrective layer is formed over the planar-surfaced layer and a second layer, having a second index of refraction, is then formed over the corrective layer. The corrective layer is composed of a material having an intermediate index of refraction between the first index of refraction and the second index of refraction. The method can also be modified to include one or more layers of materials and/or intermediate refraction layers interposed between or above any of the aforementioned adjacent layers. The aforementioned method and resulting structures can be further modified by forming an additional layer of material, having the requisite intermediate index of refraction, over an uppermost layer to further reduce reflection occurring at the interface between the uppermost layer and air. The invention is also directed to semiconductor devices, assemblies or laminates formed through the aforementioned methods and incorporating the aforementioned structures.

1. Field of the Invention
The present invention relates generally to a method for improving the signal strength of light reflected from a buried topographical grating in a semiconductor device or assembly and the resulting semiconductor devices formed thereby. More specifically, the invention relates to an improved method for reducing reflection caused by differences in the refractive index at the interfaces of adjacent layers of two or more layers overlying a topographical substrate grating in a semiconductor device by inserting therebetween a layer of material having a refractive index intermediate the refractive indexes of the previously-adjacent layers of materials to provide greater signal strength to the grating and back to a detector of the stepper.
2. State of the Art
Increased integration and density of modern semiconductor integrated circuits require increasing the accuracy of alignment-based operations and patterning processes. Specifically, resolution and alignment accuracy are basic performance requirements in alignment and exposure apparatuses used in the field of manufacturing semiconductor devices. For example, precise position alignment (i.e., xe2x80x9cmask alignmentxe2x80x9d) is required each time a mask pattern is reduced in size and transferred to a silicon wafer, other substrate of silicon, or other semiconductor material by optical reduction-photolithographic techniques. Likewise, a precise position alignment is required where a laser trimming apparatus is used to cut sections or levels of the semiconductor on a semiconductor device pattern. These requirements, coupled with the ongoing tendency to further miniaturization and higher capacity of semiconductor devices, have demanded further improvements in the resolution and alignment accuracy used in today""s semiconductor manufacturing processes.
During the manufacturing process, movement of the device or expansion and contraction of a device pattern often produces differences between locations resident in a design-based coordinate system of a device pattern (hereinafter xe2x80x9ccoordinate systemxe2x80x9d) and execution according to the coordinate system by an apparatus responsible for a fabrication step, such as a laser trimming apparatus. That is, unless the coordinate system of the device pattern on the silicon wafer coincides with that actually employed by the fabrication apparatus, it is impossible for the fabrication apparatus to properly align itself onto a precise position on the wafer and to carry out patterning, additive, or subtractive steps in the manufacturing process. For example, where a laser trimming apparatus is used to cut a fuse on a device pattern, the misalignment of the laser trimming apparatus results in an improperly-aligned fuse position, a variation which ultimately results in a cutting failure.
To make an operation executed by the fabrication apparatus precisely coincide with the coordinate system, a plurality of alignment marks is typically formed on the device pattern. Each of the alignment marks is constructed of a highly reflective material, such as aluminum, and is surrounded by a field region devoid of reflective material. Alternatively, where alignment is to an underlying layer (e.g. substrate) topography, a layer of reflective material is deposited over a grating that has been etched into the semiconductor substrate.
In conventional alignment methods utilizing the aforementioned alignment marks or reflective layer, the device pattern is scanned with light of varying wavelengths emanating from an alignment apparatus (e.g., a laser beam) along an x- or y- axis of the coordinate system. Variation in the amount of light reflected vertically from the alignment mark or reflective layer is then detected each time the alignment apparatus scans the area overlying an alignment mark or reflective layer. In this manner, the position of each of the alignment marks or a specific area of the reflective layer is detected. Based on the detected coordinates of the alignment marks or reflective layer areas, the position of the fabrication apparatus or device pattern is adjusted so that the fabrication apparatus is positioned precisely at a point that coincides with the coordinate system of the device pattern.
During the manufacturing process, the alignment marks (or reflective layer) are generally covered with one or more layers of light-transmissive materials, such as polysilicon, resist, insulator, and combinations of other suitable and known films. These intervening layered materials create optical interference with the beam of light travelling between the alignment apparatus and the alignment mark during alignment steps in subsequent phases of the fabrication process. Specifically, as light passes through the interface between two thin-film layers of dielectric, non-absorbing materials having different indexes of refraction, reflection of the light passing therethrough increases. This reflective effect increases as the difference between the indexes of refraction between two adjacent layers increases.
Reflection can cause alignment problems by reducing the incident light signal reaching the reflective layer or alignment marks. Additionally, when the light signal is reflected from the reflective layer or the alignment marks back to the alignment apparatus, the strength and resolution of the light signal is further decreased as the signal undergoes additional reflection when it passes through each interface between adjacent layers of overlying material. Several solutions have been proposed in the prior art to solve the above-mentioned problems associated with alignment inaccuracies due to reflection in semiconductor devices. For example, various alignment systems for use with projection (photoresist) exposure apparatus have utilized an alignment light, having a wavelength that is different from that of an exposing light and that is within the visible wavelength region, in order to enable observation of a wafer surface during the alignment procedure.
Another proposed solution involves formation of a transparent anti-reflective film on a top surface of a resist layer and peeling the film after exposure in order to form a fine resist pattern to high dimensional and alignment accuracies. The use of a low index of refraction material as the anti-reflective film results in a reduction of reflected light at the interface between the resist layer and anti-reflective film, thus improving the dimensional accuracy of a resist image. An alternative method requires removal of a portion of a cover film deposited over the alignment marks to eliminate reflection caused by the cover film.
Other proposed approaches have involved modification of an optical system used with the projection exposure apparatus. For instance, U.S. Pat. No. 5,532,871 to Hashimoto et al. discloses a two-wavelength antireflection film consisting of alternately laminated layers of low and intermediate refractive index materials which are applied to the faces of the mirrors and lenses of an optical system.
Although the aforementioned methods eliminate a number of alignment problems which occur as a result of reflection between the layered materials, these methods also possess a number of shortcomings. For example, the inclusion of anti-reflective layers or films is limited to the top surface of the uppermost layer (usually a resist in the case of photolithography processes). While this approach does provide a more defined light signal, it does not necessarily improve overlay accuracy of the geometries which are patterned from level to level during the fabrication process. Other previously-identified methods require specialized fabrication steps (e.g., removal of the portion of film covering the alignment mark) and equipment, which requirements result in increased fabrication costs and production times.
In view of the foregoing limitations, there is a need in the semiconductor art for an improved method of reducing reflection of light caused by changes in the refractive index at the interface(s) of layered materials in a semiconductor device during the alignment step in semiconductor processing and fabrication. More particularly, there is a need for an improved method for reducing the aforementioned reflection in a semiconductor device or assembly having a substrate topographical grating.
The present invention is directed to a method for improving alignment to underlying topography in a semiconductor device or assembly during an alignment step in a semiconductor device fabrication process. The method comprises forming a thin, corrective layer of material between layers of material which would otherwise be mutually adjacent, hereinafter termed xe2x80x9cprocessxe2x80x9d layers for clarity. A xe2x80x9cthinxe2x80x9d layer is any layer of material which is substantially thinner than the adjacent process layers of materials. Process layers comprise layers of material exhibiting differing refractive indexes, which are applied on a planar surface overlying a topographical substrate grating during a semiconductor device fabrication process, and which would normally lie, after application, in mutually adjacent relationship. The thin, corrective layer is selected from a material having an index of refraction which lies between the indexes of refraction of the materials forming the process layers. The thin, corrective layer is deposited at a specific thickness, which varies depending on the wavelength of the light signal being used and the index of refraction of the corrective layer being used, to maximize transmittance of the stepper signal.
In another embodiment, there is disclosed a method for improving the alignment image intensity emanating from an alignment mark or other reflective surface (target indicia), deposited on a topographical substrate grating in a multi-layered semiconductor device, during an alignment process. The method comprises inserting a thin, corrective layer of material at the interface between two or more process layers of material which would otherwise be mutually adjacent. The thin, corrective layer is made of a material having an intermediate index of refraction relative to the indexes of refraction of the materials forming the process layers.
One particular embodiment of the improved method comprises depositing a layer of reflective material over a topographical grating surface of a substrate of the semiconductor device or assembly. A layer of material having a planar surface is formed over the topographical substrate grating surface. A first process layer of material, having a first index of refraction, is then formed over the planar-surfaced layer. A corrective layer is formed over the first process layer and a second process layer, having a second index of refraction, is then formed over the corrective layer. The corrective layer is composed of a material having an index of refraction that lies between the first index of refraction and the second index of refraction.
Where structures including additional material process layers are involved, the method can further comprise forming a second corrective layer, made from a material having a second intermediate index of refraction, over the second process layer. A third process layer, having a third index of refraction, is then formed over the second corrective layer. The second intermediate index of refraction lies between the third index of refraction and the second index of refraction.
The present method can also be modified to include additional layers of materials comprising refraction modification layers interposed between or above any of the aforementioned process layers. Likewise, any of the aforementioned structures can be further modified by forming an additional layer of material, having the requisite intermediate index of refraction, over an uppermost process layer to further reduce reflection occurring at the interface between the uppermost process layer and air.
The invention is also directed to semiconductor devices formed through the aforementioned methods.

Method for improving a stepper signal in a planarized surface over alignment topography


A balloon catheter includes a balloon coupled to a shaft. The shaft includes a proximal perfusion portion disposed proximal of the balloon and a distal perfusion portion disposed distal of the balloon. The proximal and distal perfusion portions each are formed by a respective plurality of wire members woven together to form a respective proximal and distal braided shafts. The plurality of wire members are woven together such that a plurality of perfusion openings are formed between the wire members. The plurality of perfusion openings extend from an outer surface of the respective proximal or distal braided shaft to a lumen of the respective proximal or distal braided shaft. A perfusion lumen extends between the proximal perfusion portion and the distal perfusion portion.

Heart valves are sometimes damaged by disease or by aging, resulting in problems with the proper functioning of the valve. Heart valve replacement via surgical procedure is often used for patients suffering from valve dysfunctions. Traditional open surgery inflicts significant patient trauma and discomfort, requires extensive recuperation times, and may result in life-threatening complications.
To address these concerns, efforts have been made to perform cardiac valve replacements using minimally invasive techniques. In these methods, laparoscopic instruments are employed to make small openings through the patient's ribs to provide access to the heart. While considerable effort has been devoted to such techniques, widespread acceptance has been limited by the clinician's ability to access only certain regions of the heart using laparoscopic instruments.
Still other efforts have been focused upon percutaneous transcatheter (or transluminal) delivery of replacement cardiac valves to solve the problems presented by traditional open surgery and minimally invasive surgical methods. In such methods, a heart valve prosthesis is radially compressed for delivery via a delivery device, also known as a delivery catheter, and then advanced through a lumen in the native vasculature to the heart, where the heart valve prosthesis is then deployed at the location of the native valve complex.
Various types and configurations of heart valve prostheses are available for percutaneous valve replacement procedures. In general, heart valve prosthetic designs attempt to replicate the function of the valve being replaced and thus will include valve leaflet-like structures. Heart valve prostheses are generally formed by attaching a bioprosthetic valve to a frame made of a wire or a network of wires. Such heart valve prostheses can be contracted radially to introduce the heart valve prosthesis into the body of the patient percutaneously through a delivery catheter. The heart valve prosthesis can be deployed by radially expanding it once positioned at the desired target site.
Some heart valve prostheses are balloon expandable. Balloon expandable prostheses provide some advantages and disadvantages as compared to self-expanding prostheses. One disadvantage is that when using a balloon catheter to radially expand the heart valve prosthesis, the inflated balloon blocks flow through the native valve. Due to the high volume and pressure of blood crossing the native valve, such as the native aortic valve, the balloon may be moved out of place. For example, the balloon may become misshapen and result in unwanted movement proximally or distally (also known as watermelon seeding). Such movement or change in shape of the balloon makes it difficult to accurately locate the heart valve prosthesis, which is mounted on the balloon. In other words, radially expanding the heart valve prosthesis at the proper location within the native heart valve complex is critical to proper functioning of the heart valve prosthesis. When the balloon of a balloon catheter is inflated, it blocks blood flow, which may cause the balloon to shift, thereby deploying the heart valve prosthesis at an improper location. Balloon catheters may also be used in valvuloplasty procedures to open a narrowed heart valve. Valvuloplasty procedures may be performed alone or prior to delivery of a heart valve prosthesis. Balloon catheters used in valvuloplasty procedures also may face high pressures described above, and therefore may become misshapen.
In order to combat the above-described pressure against the inflated balloon, the patient's heart may be placed into "rapid pacing" or "rapid ventricle pacing." In rapid pacing, the patient's heart is stimulated such that the heart beats very rapidly, sometimes described as fluttering or twitching. Due to the rapid pacing, blood does not have sufficient time to fill the chamber of the heart adjacent the valve, such as the left ventricle adjacent the aortic valve. Therefore, without a significant quantity of blood being ejected from the chamber, pressure does not build up against the inflated balloon.
However, rapid pacing may be harmful to some patients. Also, rapid pacing requires a temporary pacer to stimulate the patient's heart. The use of such a temporary pacer increases the cost and time of the procedure. It increases time because the temporary pacer must be temporarily implanted and then removed from the patient. It increases cost by requiring the use of this additional device and by increasing the time of the procedure.
Accordingly, there exists a need for a balloon catheter for prosthetic heart valve deployment that does not require rapid pacing and alleviates the pressure build-up such that a balloon-expandable heart valve prosthesis may by accurately implanted.

Balloon catheter including braided portions forming perfusion openings


Processes from a set of processes for use at a second triggering event may be processed by performing a subset of the set of processes in response to a first triggering event to obtain a first result. A remainder of the set of processes may be processed in response to the second triggering event occurring after the first triggering event, and using the first result, to obtain a second result.

Computing devices and communication networks may be utilized to exchange information. A computing device may request content from another computing device via a communication network. For example, a user at a personal computing device may utilize a browser application to request a network page from a server computing device via the Internet. In such cases, the user computing device may be referred to as a client computing device and the device providing desired information may be called a server computing device.
From the perspective of a user utilizing a client device, a user experience may be described at least partially in terms of the performance and latencies associated with obtaining network content over a communication network, such as obtaining a network page, processing embedded resource identifiers, generating requests to obtain embedded resources, and rendering content on the client computing device. Latencies and performance limitations of the above processes may diminish the user experience. Additionally, latencies and inefficiencies may be particularly apparent on computing devices with limited resources, limited processing power, limited memory, or limited network connectivity (e.g., netbooks, tablets, smart phones, and the like).

Precomputing processes associated with requests


A support for a computer peripheral device has a base, a post having a first end extending through the base and a second end that couples a computer peripheral device, and a pair of base supports. Each base support has an extension which is received within the base and which engages the first end of the post. When the post is rotated, the base supports are separated from each other to define a clamping space therebetween.

1. Field of the Invention
The present invention relates to a support for a computer peripheral device, and in particular, to a support for a computer peripheral device that can be positioned to stand by itself on a working surface or to clamp an object.
2. Description of the Prior Art
Computer peripheral devices are commonly used in many applications, such as for web cams, microphones, speakers, and security monitoring, among others. However, because a user's desk space is usually crowded and limited, it is important to provide supports for these peripherals that will help to conserve precious desk space.

Support for a computer peripheral device


An object is to provide a technique to manufacture an insulating film having excellent film characteristics. In particular, an object is to provide a technique to manufacture a dense insulating film with a high withstand voltage. Moreover, an object is to provide a technique to manufacture an insulating film with few electron traps. An insulating film including oxygen is subjected to plasma treatment using a high frequency under the conditions where the electron density is 1×1011 cm−3 or more and the electron temperature is 1.5 eV or less in an atmosphere including oxygen.

In recent years, miniaturization of elements has been advanced along with the development of integrated circuits and various high-performance elements. Accordingly, thinning of a gate insulating film of a transistor used as a switching element or the like has been considered.
However, when the gate insulating film is thinned, defects may occur such as leakage current flowing between a gate electrode and a semiconductor film or a semiconductor substrate, which lowers the reliability of a semiconductor device. Therefore, an insulating film with a high withstand voltage has been demanded.
For example, Patent Document 1 discloses a technique to increase the withstand voltage of an oxide film by implanting oxygen ions at the time of forming the oxide film and then by performing heat treatment thereon.
Moreover, it is known that in a general process of forming an oxide film, the oxide film easily takes in hydrogen. By the hydrogen taken into the oxide film, O—H bonds are easily generated, which are the cause of deterioration since the O—H bonds in the oxide film become electron traps to lower the withstand voltage of the oxide film, make a threshold value of an MIS (Metal Insulator Semiconductor) type electric field effect transistor (FET: Field Effect Transistor) vary, and so on. Therefore, the gate insulating film needs to be a film with few electron traps.    [Patent Document 1] Japanese Published Patent Application H5-55200

Nonvolatile semiconductor memory device and manufacturing method thereof, semiconductor device and manufacturing method thereof, and manufacturing method of insulating film

Semiconductor Energy Laboratory Co., Ltd.


Provided are negative electrode compositions for lithium-ion electrochemical cells that include metal oxides and polymeric binders. Also provided are electrochemical cells and battery packs that include electrodes made with these compositions.

Powdered metal oxides of main group elements and conductive powders such as carbon black have been used to make negative electrodes for lithium-ion cells in a process that involves mixing the powdered active ingredients with a polymeric binder such as polyvinylidene fluoride. The mixed ingredients are prepared as a dispersion in a solvent for the polymeric binder, and coated onto a metal foil substrate, or current collector. The resulting composite electrode contains the powdered active ingredient in the binder adhered to the metal substrate.
Polymers, such as polyvinylidene fluoride, have been used as binders for metal, metal alloy, metal oxide and graphite-based lithium-ion cell electrodes. However, the first cycle irreversible capacity loss in the resulting cells can be unacceptably large, e.g., as large as 300 mAh/g or more for an electrode based on a powdered metal oxide material. In addition the capacity loss may be unacceptably large, e.g. as large as 70% capacity loss or more in 50 cycles for an electrode based on a powdered metal oxide material.

Metal oxide negative electrodes for lithium-ion electrochemical cells and batteries


Multi-channel optical modules are provided. The multi-channel optical module may include a plurality of optical devices receiving or transmitting optical signals, a housing for optically coupling the plurality of optical devices to an optical fiber, at least one optical filter separating or multiplexing the optical signals according to wavelengths of the optical signals between the optical fiber and the plurality of optical devices, and at least one filter holder protruding into an inside of the housing. The optical filter may be mounted on the filter holder to align optical paths between the optical fiber and the optical devices.

The inventive concept relates to optical communication systems and, more particularly, to multi-channel optical modules capable of transmitting or receiving optical signals of a plurality of wavelengths using one optical fiber.
Recently, Active Optical Cables (AOC) for high-definition multimedia interface (HDMI) and digital visual interface (DVI), which have been increasingly demanded, may need four or more channels capable of concentrating lights of four or more wavelengths in one optical fiber for transmitting audio/video data. However, most marketed AOCs may have structures using a plurality of (e.g., four or two) optical fibers. Thus, it may be difficult to install, maintain, and/or repair the cables of the structures using the plurality of optical fibers. Additionally, a long-distance transmission of the optical signal may be difficult due to the cables of the structures using the plurality of optical fibers.
Generally, a conventional multi-channel optical module capable of concentrating lights of a plurality of wavelengths may have a structure which is optically coupled by reflecting a beam in zigzag-shape using a coarse wavelength division multiplexing (CWDM) filter. In this case, optical path difference between lights of the wavelengths may increase, such that a general condensing lens may not be used and alignment may be very difficult.
Alternatively, according to another conventional art, a multi-channel optical module may include a plurality of light transmitters or light receivers which are aligned in a single metal housing and are fixed by a welder. Here, each of the light transmitters or each of the light receivers may be based on a TO-CAN processing light of one wavelength. However, the optical signal may be reflected or transmitted by an optical filer mounted in the metal housing and then be coupled with one optical fiber. Thus, the optical coupling of the conventional multi-channel optical module may not be easily formed.
The multi-channel optical module described above may include two incline planes of 45 degrees on which filter are mounted. The two incline planes of 45 degrees may have a V-groove. Thus, plane processing may be difficult. Additionally, the filter holder may be formed to have a cylindrical shape, so that the filter holder may be rotated in the metal housing. Thus, the optical path may be tilted. Accordingly, if mismatch may occur by the rotation of the filter holder, optical coupling efficiency of the optical fiber may decrease significantly.
Additionally, in four or more channels, it is difficult to form the filter holder into one body. Thus, two or more filter holders may be used. In this case, the filter holders may be individually mounted, so that mounting positions of the filter holders may be different from each other. Thus, the filter holders may be misaligned with each other. As a result, an incident or transmitted beam may be tilted. The problems may be serious as the number of the channels increases.

Electronics and Telecommunications Research Institute


The invention discloses a dummy battery apparatus (30), configured for supplying power to a portable electronic device (10). The portable electronic device (10) has a circuit board (13), which sets at least one testing port (130). The dummy battery apparatus (30) defines at least one gap thereon, and the defining place of the gap is corresponding to the location of the testing port (130) of the circuit board (13).

1. Technical Field
The present invention generally relates to dummy battery apparatus, particularly to a dummy battery apparatus configured for supplying power to a portable electronic device, such as mobile phone, personal digital assistant (PDA), and so on, in a test process.
2. Discussion of the Related Art
With the developments of wireless communication and information processing technologies, portable electronic devices such as mobile phones and personal digital assistants (PDAs) are now in widespread use, and consumers may now enjoy the full convenience of high technology products almost anytime and anywhere. To assure and satisfy the qualities of the portable electronic devices, pre-distribution tests are required.
A typical portable electronic device generally includes a circuit board, which has at least one testing port such as a global positioning system (GPS) testing port, a radio frequency (RF) testing port, a Bluetooth testing port, and other testing ports, disposed thereon. During a testing process, a battery of the portable electronic device is required to be removed from a battery receiving portion of the portable electronic device, To access the testing ports of the portable electronic device's circuit board. As a result, during the testing process, the portable electronic device has no power because the battery is removed. However, the portable electronic device must be powered during the testing process.
Therefore, a dummy battery apparatus is desired in order to overcome the above-described shortcoming.


The endoscope system of the present invention includes: an endoscope that has an image pickup device that picks up an observation image of a test object; an image display unit that converts image pickup signals that have been sent from the image pickup device into images and then displays these images; a first mounting portion that is provided in an operating section of the endoscope and on which the image display unit is mounted; and a second mounting portion that is provided in the operating section of the endoscope and on which the image display unit is mounted in a different position from that of the first mounting portion.

1. Field of the Invention
The present invention relates to an endoscope system and, in particular, to a portable endoscope system that incorporates a small image display device.
2. Description of Related Art
In endoscope systems that are widely used in medical and industrial fields, it is common for a fixed television monitor to be left permanently connected via a cable to an eyepiece portion, and for an image obtained by the endoscope to be formed on a light receiving portion of an image pickup element such as a CCD. This formed image is then converted into a signal and the image in the form of a signal is supplied via a cable to a television monitor in a separate location. The signal is then reconverted into an image and displayed on the screen of this television monitor.
Endoscope systems have also been proposed (for example, refer to Japanese Patent Application, First Publication, No. H10-127575, Japanese Patent Application, First Publication, No. H11-9548, Japanese Patent Application, First Publication, No. 2000-116599, and Japanese Patent Application, First Publication, No. 2000-171729) in which a light source apparatus, an image display unit such as a miniature liquid crystal monitor, and a battery that drives the light source, image pickup elements, and the liquid crystal monitor are incorporated in an endoscope.


A gimbal device includes a controller for controlling a gimbal mechanism to which an imaging device is fixed. The controller includes an angular velocity signal acquisition unit, a relative angle acquisition unit, and an angular velocity signal synthesizer. The angular velocity signal acquisition unit acquires first to third angular velocity signals. The relative angle acquisition unit acquires first and second relative angles. The angular velocity signal synthesizer generates from the first to third angular velocity signals and the first and second relative angles, first to third rotational shift angular velocity signals which are signals of a first rotational shift angular velocity about an axis parallel to a first correction axis, a second rotational shift angular velocity about an axis parallel to a second correction axis, and a third rotational shift angular velocity about an axis parallel to a third correction axis, respectively.

The present disclosure relates to a gimbal device and a control method of the gimbal device.
When taking pictures while moving the imaging device such as a video camera or when airborne imaging is performed with the imaging device mounted to an unmanned helicopter or airplane, it is necessary to control the attitude (position or orientation) of the imaging device with high accuracy to prevent the visual axis from shaking.
Picture taking in which the attitude of the imaging device needs to be controlled generally employs a gimbal device to which the imaging device is attachable.
Japanese Unexamined Patent Application Publication No. 2010-128814 (Patent Document 1) describes an example of gimbal devices to control the attitude of an imaging device.

Gimbal device and control method of gimbal device