An obliquely oriented liquid crystal layer and an obliquely oriented film is provided by performing a rubbing treatment on a homeotropically orienting substrate and, after the rubbing treatment, applying a liquid crystal coating solution containing at least one of a homeotropically orienting liquid crystal composition and a photopolymerizable liquid crystal composition on the homeotropically orienting substrate.

An LCD realizes image display by controlling light irradiated from a backlight by various methods. For example, a liquid crystal panel controlling transmission state of light, a polarizing plate transmitting a polarized light selectively, an optical compensation film for enhancing reproducibility of color display and viewing angle properties, and the like are used. Of these, the optical compensation film controls retardation of reflective index possessed by a film by stretching a polymer film or coating an organic material to enable optical compensation according to various requests. For example, in LCD having a liquid crystal panel in which the liquid crystal-acting mode is a TN mode or an STN mode, various viewing angle widening techniques are used for compensating narrowness characteristic to the modes. For example, there are known a method using an alignment dividing means, a half-tone means or the like for averaging pixels while separating the pixels into a plurality of regions having different directions of liquid crystal molecular alignment, a method using a convergent lens or a divergent lens, a method using a viewing angle compensating film, and a method of radically improving the liquid crystal operating mode such as IPS, MVA or OCB. Among these methods, the method of improving the liquid crystal operating mode and the method using a viewing angle compensating film are simpler and have been aggressively put into practice.
Especially, the method using a viewing angle compensating film is simpler than the method of changing and improving the liquid crystal operating mode, because an optical compensating film integrated with a polarizing plate can be stuck to a liquid crystal panel without any change of the liquid crystal panel. That is, this method is a technique by which widening of the viewing angle can be achieved at low cost. A film having oblique discotic liquid crystal inclined or a film having oblique rod-like nematic liquid crystal is known as the viewing angle compensating film. In either case, a liquid crystal polymer is obliquely oriented (e.g. see Patent Document 1). There are also known an obliquely oriented film using a side chain-type liquid crystal polymer (e.g. see Patent Document 2) and a method using an optically oriented film as a nematic polymerizable liquid crystal compound exhibiting homeotropic (perpendicular) orientation to form an obliquely oriented liquid crystal layer (e.g. see Patent Document 3).
However, in the conventional methods, obliquely oriented liquid crystal layers having a relatively small degree of obliquity are only obtained and it is difficult to obtain an obliquely oriented film having a large degree of obliquity. In addition, there is commonly known a method of increasing a degree of obliquity by increasing the thickness of the obliquely oriented liquid crystal layer but the orientation state becomes unstable with the increase of the thickness and thus it is difficult to control the thickness. Thus, unless an obliquely oriented liquid crystal layer having a large degree of obliquity can be stably obtained, a retardation range capable of optical compensation of LCD and the like is limited. Therefore, it has been desired to stably obtain an obliquely oriented film comprising an obliquely oriented liquid crystal layer having a large degree of obliquity.
Patent Document 1: JP 8-5838 A
Patent Document 2: JP 2000-327720 A
Patent Document 3: JP 2002-214610 A

Method for producing film with tilted alignment, film with tilted alignment, and image display using same


A three-axis machine control structure includes a support structure and a machine component to which a workpiece or tool can be attached. Three control arms are connected between the machine component and the support structure. Preferably, each control arm is pivotably connected to the support structure and to the machine component and includes a pair of four-bar linkages connected in series. The control arms are oriented to permit rapid movement of the machine component along any or all of the three linear axes, while restricting movement of the machine component along the rotational axes.

Generally, an object can be moved through space with six degrees of freedom. In other words, the object can be moved along six different axes, three of which are linear axes, and three of which are rotational axes. The three linear axis are commonly known as the x-axis, y-axis and z-axis. An object's movement through space from one point to another can be tracked along the three linear axes, x, y and z. However, that same object can twist, i.e. pivot or rotate, about each of the linear axes. Thus, there are three rotational degrees of freedom that are commonly represented by three rotational axes, referred to as the a-axis, b-axis and c-axis. The rotational axes sometimes also are known as roll, pitch and yaw.
It should be noted that rotational movement or rotational degrees of freedom of movement of the object are understood as rotation of the object about the linear axes, x, y, z extending through the object. Reference to the restriction of rotational movement of the object does not imply that the object cannot be moved along arcuate or circular paths from one point to another in space. Such arcuate or circular travel can be defined solely as movement along the three linear axes if no twisting of the object occurs.
Depending on the requisite manipulation of an object, machines are designed to move various objects through space with one to six degrees of freedom. For example, machine tools used for milling, drilling, and grinding workpieces are sometimes designed to manipulate an object, e.g. a cutting tool, along all six axes. However, many applications only require the object be moved with the three degrees of freedom defined by the three linear axes. In fact, in both situations, it often is undesirable to allow any twisting or rotational movement of the object, e.g. tool, because this can lead to poorly formed parts that do not meet modem tolerance requirements. This is particularly true with machines that generate substantial force loads, such as loads that occur during milling or drilling operations.
To combat the undesirable twisting and to maintain operational accuracy and precision, many three-axis machines use large cast components that move along precisely ground ways. The large, cast components reduce twisting of the object being moved, e.g., a spindle head for a drill or milling cutter. Simultaneously, the ways guide the heavy cast machine structures as they are moved along the x, y and z axes. Typically, such a machine includes a separate machine structure and a separate way or ways for each axis of movement. This leads to increased time and expense in building and maintaining the machine. Additionally, because of the mass of the solid machine structures, these machines are relatively slow in moving an object from one point to another.
The present invention addresses the foregoing drawbacks of existing three-axis machines.

Three-axis machine structure that prevents rotational movement


A method, apparatus, and article of manufacture for providing secure and opaque type libraries to automatically provide secure variables within a programming module. A system for providing secure and opaque type libraries to automatically provide secure variables within a programming module. The system includes an OTL selection module, an OTL substitution module, an OTL type library database, a compiler module; and a linker module to create an executable processing module. The OTL selection module randomly selects or generates one of the possible variable obfuscation functions for each declared secure variable. The OTL substitution module substitutes the separate instance of the selected variable obfuscation function for every reference to the declared secure variable. The OTL type library database receives queries from the OTL selection module a database to identify of possible variable obfuscation functions applicable for the variable type corresponding to the declared secure variables.

Ever since the days of early IBM PCs and 8-bit machines, application programmers and crackers have fought a never-ending battle in the field of software protection. Creating "uncrackable" programs remains a theoretical and practical open problem, especially against skilled and talented reverse engineers who devote significant amounts of time and effort to their job. However, various techniques of obfuscation and tamper resistance can be useful depending on the models of piracy in given channels, to deter casual pirates or delay crackers who attempt to bypass security checks, attach viruses, patch code and data at runtime, and in general alter software behavior.
Developers have often treated software security as an independent feature that can be easily "plugged in" once an application is finished. Indeed, a large number of automatic "protectors" or "wrappers" are available to encrypt executables and add layers of anti-hacking code. Unfortunately, such plug-in solutions have typically proven quite breakable and ineffective, despite continuing upgrades and improvements to address hacks that appear within days or even hours. In a certain theoretical models, automatic obfuscation of programs is not possible. All this provides some evidence that programmers wishing to create secure software need to be involved more deeply with protection.
Programmers need to involve themselves in the protection process from the beginning. A programmer needs to flag which variables and computations thereof that need be protected and indicate, whenever possible, degree of protection sought in some manner. The compiler then may pool these flagged portions with some variables it generates, obfuscates and verifies common data types and operation. One of the goals is to make the accesses to the data types leak very little information unless the attacker observes for a significant amount of time across many local sections of the code as it executes. Tampering a variable without proper information will lead to inconsistent or incorrect data or results. The user may also flag variables (e.g. a return address) as to be tamper evident when it will be appended with a randomized check sum akin to a cryptographic check sum; this if tampered with high probability it will be detected. OTL both provides protection tools and makes the programmer pay special attention to security-critical code. Additionally, OTL can inject "useless" data and code, both to disguise crucial data and to deflect the cracker's attention away from sensitive data and code; such "useless" data and code can be tightly interleaved with the rest of the application, including OTL-protected parts. To maximize security, OTL can be combined with other techniques we implemented, such as oblivious hashing, code-integrity checks, piecewise code encryption, anti-debugging, and others.
Software obfuscation is a widely-used method for software vendors to thwart illegitimate attempts at reverse engineering their products. Past efforts have focused mostly on code obfuscation, with data left largely in the clear. The tools available for hiding and protecting critical data invariably follow the decrypt-use-encrypt paradigm, and are generally used manually or semi-automatically by developers after the software is written. The following example, Sample 1 shows an example of using such a system. It shows a piece of code that manages a free-trial period. Every time this code is invoked, it checks a global variable iTimeLeft; if its value is zero, the code will ask the user to register the software.
SAMPLE 1A simple sample code to manage free-trial period.extern int32iTimeLeft;boolbTimeToRegister;bTimeToRegister = iTimeLeft < 0;if (bTimeToRegister) {// ask the user to register}iTimeLeft - - -;
Sample 2 shows the changes from applying a typical decrypt-use-encrypt method. First, the key variable, iTimeLeft, is stored in its encrypted (and expanded) form as a 64-bit integer. A macro is used to decrypt the 64-bit data into 32-bit clear text. The clear-text time counter is then checked and decremented before it is re-encrypted and stored away.
SAMPLE 2The traditional decrypt-use-encrypt approach.extern int64iTimeLeft;int32iTemp;boolbTimeToRegister;iTemp = DECRYPT_AND_CHECK_MAC_INT32(iTimeLeft, MY_KEY) ;bTimeToRegister = iTimeLeft < 0;if (bTimeToRegister) {// ask the user to register}iTimeLeft - - -;
The decrypt-use-encrypt approach has two weaknesses. First, the protected variables appear in plaintext between the decryption and encryption stages. An attacker can discover what the program is doing by setting appropriate breakpoints and checking register contents. Though DRM systems often employ some form of anti-debugging, such measures historically have been easy tnot so hard to defeat; also, powerful debuggers, simulators, and in-circuit emulators can render the entire system at the attacker's disposal.
Second, data security tends to be applied as an afterthought; the developers explicitly insert macros or library function calls. There is no guarantee that accesses to secure data are always bracketed by decryption and encryption macros. As a matter of fact, bugs have arisen because developers forgot to apply decryption macros before manipulating the secure data. Due to its manual nature, decrypt-use-encrypt processing is applied to only a few key variables in a program.
A systematic approach is needed to data hiding and protection, which can meet the following criteria:
A non-intrusive methodology for annotating the software during its development cycle so that it can be adopted easily by developers and employed efficiently. The underlying mechanisms & algorithms of supporting the indicated protection can be developed independently in a modular way and made available for use as a programming language tools and transformations (e.g. compilers.)
Protected data objects are seldom manipulated in clear-text form.
Breaking data protection for one data object does not lead to cracking of other protected objects.
There are no automated tools to reverse engineer our data protection mechanisms. In particular traditional program flow analysis tools should not be able to discover the details of the exact protection mechanism used in a given copy of the protected application. The attacker has to work through the entire program laboriously (many times) to uncover the original data objects.
Oblivious (i.e., unobvious and well-disguised) comparison of data (e.g. Is A=B?) and oblivious return of results (e.g. If A=B return the result in a probabilistic fashion in a variable C; if C does not have the right properties it will corrupt some protected data variable and lead to incorrect operation).

Secure and opaque type library providing secure data protection of variables


A filtering system used to filter contaminated fluid. The filtering system (10) includes a supply pump (12); a filter tank (14) having a plurality of removable filter cassettes (16) disposed therein, each filter cassette housing in proper orientation a filter pad (164); a suction pump (18); a level control mechanism (148) maintaining a substantially uniform level of contaminated fluid within the filter tank; and a control panel (20) housing other process control components. Operation of the filtering system includes a backflush cycle and a relaxation cycle to extend the loading life of the filter pads. Also included is a preventive measure designed to eliminate fluid shear that may result as the filter pads approach the end of their loading life.

Cooking oils, such as those used in commercial deep fryers, tend to become contaminated with such things as moisture, food cell bodies, and food plasmas during frying. The oils also tend to break down chemically after extended use, often causing the oil to foam, smoke, smell bad, look bad, or taste bad. It has been found that keeping the cooking oil clean by filtering it on a regular basis tends to extend the useful life of the cooking oil, and increases the quality and appearance of foods which are cooked therein.
A variety of specialized systems and filter media for filtering cooking oil have been developed. Ideally, such filtering systems would remove contaminants from the cooking oil down to a level of about one micron. However, in large-scale industrial applications, such as commercial deep fryers used to cook potato chips or precook french fries, this desired level of ultrafiltration has not been feasible. Current filtering systems being used in this area of application may be broadly segregated into two types--absolute filtering systems and depth filtration systems.
Absolute filtering systems employ a filter medium such as paper or a metal screen (wire cloth), the medium having a discrete pore size. Contaminated cooking oil may be moved through the filter medium by gravity, positive pressure, or vacuum. However, gravity feed is by far the most common due to economic considerations.
While ultrafiltration levels approaching one micron are possible with absolute filtering systems, multiple stages of filter media having incrementally smaller pore sizes must be employed. Such an approach yields an arduous and costly filtering system. Furthermore, such absolute filtering systems possess a poor loading capacity, thereby requiring frequent changeouts of the filter medium. Of course, such changeouts have the detrimental effect of a complete stop in production. Additionally, if a metal screen medium is utilized, cleaning such a screen can be a difficult and time consuming process. The result of these limitations is that, if ultrafiltration approaching one micron is desired, large volumes of contaminated oil simply cannot be economically handled.
Depth filtration systems utilize a filter medium having a substantial depth dimension, which thereby allows contaminants to be removed throughout the entire depth of the medium. This yields an increased loading capacity relative to absolute filtration. Contaminated cooking oil may be moved through the filter medium by positive pressure, as is found, for instance, in plate-and-frame filtering systems. Contaminated cooking oil may also be moved through the filter medium under a vacuum, as is found in rotary vacuum filtering systems. Both systems typically employ the use of a filtering powder (e.g., diatomaceous earth) that is added to the contaminated oil. The filtering powder, which is suspended in the contaminated oil, begins to plate out over the septurn (e.g., the porous drum in the rotary vacuum system) during the initial stages of filtering. When a sufficient layer of filtering powder has so formed, a depth filter medium is created over the top of the septurn. Gravity feed is not feasible with depth filtration systems, as a force greater than that of gravity is required to move the contaminated cooking oil through the filter medium.
Depth filtration systems utilized in large-scale industrial applications require very large and sophisticated filtering equipment, as well as a good deal of support equipment. Such systems are therefore very expensive. Additionally, while such depth filtration systems can handle large volumes of contaminated oil, they cannot economically achieve filtration levels below approximately 10 microns. These systems also require periodic removal of the filter medium, which leads directly to process down time. In fact, due to the complex nature of the equipment involved, down time may be even longer with such systems than is the case with absolute filtering systems. Additionally, the cleanup process may be complex and time consuming for depth filtration systems and, in the case of positive pressure systems, may be hazardous.
As a result, there has been a long-felt need for a filtering system and medium combination useful in filtering contaminated cooking oil that: (1) can handle the large volumes of contaminated cooking oil required in large-scale industrial applications; (2) achieves ultrafiltration levels near or below one micron; (3) exploits those attributes incident to depth filtration; (4) is relatively inexpensive to produce; (5) is self-contained, thereby requiring virtually no support equipment; (6) causes no excessive damage to the oil during filtering; and (7) ensures proper orientation of the filter medium during the filtering process. A similar need exists in the large-scale commercial filtering of other contaminated fluids (e.g., motor oil, etc.). The present invention, when used in conjunction with a currently available filter medium, is directed to satisfying the above-described need.


The present invention provides a lens care kit for disinfecting and cleaning contact lenses. The lens care kit of the invention allows customers to visually identify when their lenses are disinfected, clean, and ready to wear. The invention is relied on color change to indicate the readiness of disinfection and cleaning of contact lenses.

Contact lenses provide a means for vision correction for a wide range of consumers. The advantages of contact lens wear are numerous. Improved convenience and improved appearance in comparison to spectacle glasses are probably the two most important advantages to most consumers. However, contact lenses require stringent care regimes in order to ensure comfort and avoid ocular infections. Proper care of contact lenses typically requires the consumer to periodically clean and disinfect the lenses, to prevent infection or other deleterious effects on ocular health which may be associated with contact lens wear.
In recent years, multiple-purpose solutions, which clean, disinfect, and rinse contact lenses all without mechanically rubbing lenses, have been developed as a new type of lens care systems. These new systems start dominating the most of the lens care market. Such popularity is most likely derived from the easiness and convenience provided by these new systems to consumers. In order to achieve a satisfactorily disinfecting result, a contact lens has to be in a MPS solution for a sufficient time period. However, consumers do not have a direct way to determine if their lenses have been in the lens care solution long enough to disinfect the lenses. It would be desirable to provide customers means by which they could visually identify when their lenses are clean and ready to wear.
Therefore, there exists a need for a lens care kit capable of discoloring or changing color over the time period required for disinfection of contact lenses.


There is provided an inter-plant arm assembly for selectively mounting a predetermined number of additional planter units to a multi-row planter having a plurality of existing planter units. The inter-plant arm facilitates quick and efficient varying of row widths to plant different crops. The inter-plant arm includes a front arm that attaches to the planter adjacent an existing planter unit and extends at a predetermined angle of incline and a rear arm that carries at least one additional planter unit. A coupling between the front and rear arms allows for quick attachment and detachment of any desired additional planter units. The coupling defines a receiver that accepts an end portion of the rear arm and includes a pin and lock to selectively secure that end portion of the rear arm in the receiver. The front and rear arms include a plurality of bends to position the coupling above the connection between the front arm and the planter and the connection between the second arm and the desired additional planter units.

In agricultural planting, it has been found that crop rotation increases the ability to produce maximum crop yield. A corn and soybean rotation has been found to be one of the most common and profitable crop rotations. It also has been determined that the row spacing for maximum profit per acre is different for these two crops. Soybean crops produce better yield when planted in narrower rows than corn crops. For instance, the recommended and most commonly used row spacing for soybean crops is in the range of about 10 to 15 inches and the range for corn crops is about 30 to 36 inches. Moreover, not only is soybean yield increased through narrower rows, but weed control costs also are reduced because narrower rows are found to canopy much quicker than wider rows. Thus, it is very important that crops be planted in rows utilizing the known spacing for that particular crop to produce maximum yield.
Due to the known yield benefits from different row spacing between rotational crops, coupled with the high costs associated with farm implements, farmers typically are faced with a serious problem when deciding which type of implement to purchase for rotational type planting. One known solution has been to simply purchase separate equipment for each type of crop. For instance, one would purchase a conventional planter adapted for corn planting and another drill type planter adapted specifically for planting soybean crops in narrower rows. For most farmers, this is an undesirable option. Not only is this solution expensive in that it requires purchasing of two separate implements, experience has revealed that drill type planters do not populate planting as accurately as the typical conventional planter units. Thus, it commonly is preferred to use a conventional planter for planting both corn and soybean crops.
Some available planters, such as the 7100 John Deere planter, are capable of being mounted with additional planter units between the existing units to effectively reduce the row width by one half. More specifically, to plant narrower row crops, additional planter units can be mounted directly to the main tool bar in between the existing units because this space is unobstructed so to provide direct access directly to the main tool bar of the planter. For instance, a 10 unit planter set for 36-inch rows for corn crop planting could be converted in this manner to a 19 unit planter with reduced 18-inch rows by inter-mounting additional planter units for soybean crop planting. While this does not meet the desired spacing of 10 to 15 inches between rows, it has been an acceptable solution.
With other larger planters, such as the John Deere 7000 front fold planter, mounting of additional planter units between the existing units is not a viable option because this space is occupied with lift wheel assemblies for raising and lowering the planter. More specifically, a number of lift assemblies occupy the space between a number of the existing planter units and include components that extend above the main tool bar. As a result of these lift wheel assemblies, it is impossible to mount additional planter units directly to the main tool bar.
One known device directed to accommodate for planter lift wheel assemblies is a product referred to as the Wetherell Inter-Plant Bracket by Wetherell Mfg. Co. The Wetherell bracket consists primarily of a two member bracket system in which one member mounts directly to the main tool bar at the existing planter unit and angles into to the space between that planter unit and an adjacent existing planter unit and the second member connects to the first and carries an additional planter unit. In addition to angling laterally in between the existing planter units, the bracket also rises up and over the lift wheel assembly.
While the Wetherell device accomplishes providing additional planter units on planters with lift wheel assemblies between the existing planter units, a known shortcoming is the tendency to place increased stress on the bracket due to its angled reach between existing planter units. Accordingly, the bracket is made heavy and cumbersome to provide the necessary durability to support the additional planter unit during planting.
An additional shortcoming is that the two members of the bracket are joined with a number of bolts and, therefore, do not facilitate quick attachment and detachment of an additional planter unit for converting between wide and narrow row spacing. Experience has revealed that the time necessary to attach and detach the second member carrying the additional planter unit is unduly increased due to the bolt attachment. In fact, it has been found that to efficiently mount the planter unit with the Wetherell bracket it often takes more than one person to locate the planter unit, align the second bracket member with the first member and install and tighten the bolts. Moreover, since the Wetherell bracket is an angling bracket system, there is the need for brackets angling to the right and to the left for most conventional planters to narrow row spacing.
Thus, there is a desire for a more sturdy and reliable system for converting a multi-row planter quickly and easily between wide and narrow row spacing to facilitate efficient and effective crop rotation. The design must be capable of accommodating lift wheel assemblies and be sufficiently durable to withstand the rough terrain of typical fields. It also must be reliable to ensure accurate planting. Moreover, many planters include a number of planter units carried by wings that fold forward and inward for transport. The system also must be capable of mounting additional units to these wings in a manner that does not drastically increase the transport width.


A device for sensing pressure using two flexible diaphragms in which an additional element is added to promote rolling contact of the diaphragm. One embodiment aligns the flexible diaphragms in a non-parallel alignment such that deflection of one flexible diaphragm will roll with respect to the other to provide increased linear capacitive response. In another embodiment a non-conductive spacing element is positioned between the diaphragms to permit rolling contact upon displacement of a diaphragms. These devices are capacitive pressure gauges. One additional embodiment includes a cantilever hinge and rigid polymer disc to convert one diaphragm into a linearly deflecting diaphragm.

Modern industrial, commercial, aerospace and military systems depend critically on reliable pumps for fluid handling. Both gas and liquid fluids take advantage of smaller, more distributed and more portable systems for increasing uses in instrumentation and control. An improved electrostatic pump has been developed, as described in U.S. Pat. No. 6,179,586. In this patent, the pump consists of a single molded plastic chamber with two thin diaphragms stacked directly on top of each other. The diaphragms are actuated, depending on design, with electrostatic, electromagnetic or piezoelectric methods. This patent describes the use of a single chamber for pumping.
Out of this technology has come a need for improved pressure sensors that can use the speed and efficiency of the multiple diaphragm operation from a single molded plastic chamber. However, to make a pressure sensor operate optimally, the response to pressure changes should be as linear as possible.
It would be of great advantage if a pressure sensors using mesopump construction would have improved sensitivity.
Another advantage would be if a pressure sensors using mesopump construction would have increased linearization.
Yet another advantage would be if mesopump technology could be modified to be produced at less cost for use both as sensors and valves.
Other advantages and features will appear hereinafter.

This patent is subject to a terminal disclaimer.


A branch prediction method and system are provided that accurately predict a branch condition early in an instruction pipeline of a data processing system. By accurately predicting the branch condition, the correct target instruction can be fetched early, thereby avoiding many of the inefficiencies associated with branch mispredictions. To accurately predict if a branch condition is satisfied, one or more pre-calculated status bits are stored along with a digital value that is read by the conditional branch instruction to determine if the branch condition is satisfied. By including such a status bit, the condition of the conditional branch instruction may be immediately determined, without waiting for the instruction to be processed by an arithmetic unit or the like in a subsequent pipeline stage.

1. Technical Field of the Invention
The present invention generally relates to the field of data processing systems, and more particularly to such systems that process instruction streams that include conditional branch instructions.
2. Description of the Prior Art
In most general purpose, stored program, digital computers, software is developed under the assumption that program instructions are executed in their entirety in a sequential fashion. This frees the software developer from the need to account for potential non-sequential operation of the hardware. However, most large-scale, modem machines are designed to take advantage of the overlapping of various functions. In its simplest form, such overlapping permits instruction processing of the N+1st instruction to be performed during operand processing of the Nth instruction. U.S. Pat. No. 4,890,225 issued to Ellis, Jr. et al. shows a rudimentary overlapped machine. To free the software developer from concerns about non-sequentiality, Ellis Jr. et al. store the machine state during the complete execution of the Nth instruction. U.S. Pat. No. 4,924,376 issued to Ooi provides a technique for resource allocation in an overlapped environment.
A more general form of overlapping is termed a pipelined environment. In implementing such a machine, the designer dedicates certain hardware resources to the various repetitive tasks. Overall system performance is improved by breaking the pipeline into these many dedicated hardware elements, or stages. The performance advantage in this dedication comes from employing these dedicated hardware elements simultaneously. Typically, this means that instruction, decode, operand fetch, and arithmetic operations each have separate and dedicated hardware resources. Even though the Nth instruction is processed by each of these hardware resources sequentially, each separate hardware resource is deployed on a different instruction simultaneously. The N+1st instruction may be preprocessed by the instruction fetch and decode hardware, while the Nth instruction is being processed by the operand fetch hardware and while the N−1st instruction is being processed by the arithmetic hardware. U.S. Pat. No. 4,855,904 issued to Daberkow et al. describes a pipelined architecture.
Pipelined architectures work most efficiently when each stage of the pipeline is filled with a program instruction so that the pipeline generates useful output during every clock cycle. However, program instructions do not always proceed in a linear sequence. A program may contain various changes, or branches, that alter the program flow. For instance, "if A=B, then branch to instruction C" is an example of a conditional branch instruction that alters the stream of the program to instruction C if A=B. However, if the conditional branch instruction is fetched before the condition of "A=B" is determined, the processor can not determine which branch to take. Without any alternate methods to predict or pre-calculate the resolution of the condition, the processor must stall the pipeline until the condition is determined. Stalling is undesirable because it wastes processor resources and thus adversely affects processor efficiency.
Various processors use branch prediction logic to help overcome the problem of stalling the pipeline. With branch prediction, the processor will guess which way the branch condition will be resolved. Often this guess is based on previous history. If the branch prediction logic predicts that a condition will be met, then the processor will process a certain set of target instructions. If the branch prediction logic predicts that a condition will not be met, then the processor will process sequential instructions, the instructions following the branch condition. If the branch prediction logic correctly predicts the branch condition, the processor will not stall. If, however, the prediction is incorrect, the instructions in the pipeline must be flushed and the correct instructions fetched. The processor may require several clock cycles to flush the pipeline and fetch the correct instructions. Therefore, a misprediction can reduce the efficiency of the processor.

Condition indicator for use by a conditional branch instruction