text:
A processor pipeline control system and method provides a complete set of very simple and very fast pipeline control signals encompassing stalls and interrupts. Each pipeline stage has associated with it a signal called "LoadX", where X is the pipeline stage name, e.g., LoadID. Instead of signalling exceptional conditions in terms of the event, e.g., "cache miss", exceptional conditions are signalled within the processor by deasserting the LoadX signals required by that exception. When the pipeline control for one pipestage is deasserted, in order to prevent previous instructions from entering the stalled pipestage, the detector of the exceptional condition must deassert all LoadX control signals for stages previous to X as well.
1. A system for processor pipeline control of a pipeline having a plurality of sequential pipestages, which comprises a means for generating a like plurality of pipeline control signals each corresponding to an action carried out in one of said plurality of sequential pipestages, the like plurality of pipeline control signals controlling whether each of said like plurality of sequential pipestages stalls or advances, and means, connected to said means for generating pipeline control signals, for selective deassertion of each one of the like plurality of pipeline control signals in response to an exceptional event requiring one of a stall and interruption of one of the plurality of sequential pipestages corresponding to a selected one of the like plurality of pipeline control signals, and for deasserting ones of the like plurality of pipeline control signals corresponding to all those of the plurality of sequential pipestages sequentially previous to the pipestage corresponding to the selected one of the like plurality of pipeline control signals, said means for selective deassertion being configured so that a first exceptional event causing a deassertion of the pipeline control signal for a later one of the like plurality of sequential pipestages necessarily includes deassertion of any pipeline control signal appropriate for a second exceptional event causing deassertion of a previous one of the like plurality of pipeline control signals for a previous pipestage, said system being free of pipeline control logic for prioritizing the exceptional events and to translate the exceptional events into control signals.
2. The system for processor pipeline control of claim 1 in which, on the occurrence of exceptional events associated with more than one pipestage, said means for deasserting the pipeline control signals deasserts the pipeline control signals for the exceptional condition resulting in the deassertion of the most control signals.
3. The system for processor pipeline control of claim 1 in which the exceptional event is at least one interrupt, said system additionally including a means, connected to said means for deasserting the pipeline control signals, for storing addresses of every instruction in the pipeline, and means for handling the at least one interrupt connected to said means for storing addresses of every instruction in the pipeline, and means, connected to said means for storing addresses of every instruction in the pipeline for choosing at least one address for restarting execution of an instruction after interrupt handling complete.
4. The system for processor pipeline control of claim 1 in which said pipeline is in a central processing unit of a data processing system.
5. The system for processor pipeline control of claim 4 in which said plurality of pipestages include an instruction fetch pipestage, an instruction decode pipestage, an arithmetic logic unit operation pipestage, a memory fetch pipestage, and a write back pipestage.
6. The system for processor pipeline control of claim 4 in which said data processing system additionally includes a floating point coprocessor connected to said central processing unit and said floating point coprocessor includes an additional system for processor pipeline control in accordance with claim 1.
7. The system for processor pipeline control of claim 1 in which said pipeline is in a floating point processor.
8. The system for processor pipeline control of claim 7 in which said plurality of pipestages includes an arithmetic logic unit operation pipestage, a memory fetch pipestage, at least one floating point execution pipestage, and a write back pipestage.
9. A method for processor pipeline control of a pipeline having a plurality of sequential pipestages, which comprises generating a like plurality of pipeline control signals each corresponding to an action carried out in one of said plurality of sequential pipestages, the like plurality of pipeline control signals controlling whether each of said like plurality of sequential pipestages stalls or advances, selectively deasserting one of the like plurality of pipeline control signals in response to an exceptional event associated with one of the plurality of sequential pipestages corresponding to a selected one of the like plurality of pipeline control signals, and deasserting ones of the like plurality of pipeline control signals corresponding to all those of the plurality of sequential pipestages sequentially previous to the pipestage corresponding to the selected one of the like plurality of pipeline control signals, a first exceptional event causing a deassertion of the pipeline control signal for a later one of the like plurality of sequential pipestages necessarily including deassertion of any pipeline control signal appropriate for a second exceptional event causing deassertion of a previous one of the like plurality of pipeline control signals for a previous pipestage, said system being free of pipeline control logic for prioritizing the exceptional events and to translate the exceptional events into control signals.
10. The method for processor pipeline control of claim 9 in which, on the occurrence of exceptional events associated with more than one pipestage, the pipeline control signals are deasserted for the exceptional condition resulting in the deassertion of the most control signals.
11. The method for processor pipeline control of claim 9 in which the exceptional event is at least one interrupt, said method additionally including the steps of storing addresses of every instruction in the pipeline, handling the at least one interrupt and choosing at least one address for restarting execution of an instruction after interrupt handling is complete.
12. The method for processor pipeline control of claim 9 in which said pipeline is in a central processing unit of a data processing system.
13. The method for processor pipeline control of claim 12 in which said plurality of pipestages include an instruction fetch pipestage, an instruction decode pipestage, an arithmetic logic unit operation pipestage, a memory fetch pipestage, and a write back result of instruction pipestage.
14. The method for processor pipeline control of claim 12 in which said data processing system additionally includes a floating point coprocessor connected to said central processing unit and the method of claim 9 is additionally carried out in said floating point coprocessor.
15. The method for processor pipeline control of claim 9 in which said pipeline is in a floating point processor.
16. The method for processor pipeline control of claim 15 in which said plurality of pipestages includes an arithmetic logic unit operation pipestage, a memory fetch pipestage, at least one floating point execution pipestage, and a write back pipestage.
17. The system for processor pipeline control of claim 1 in which the action carried out in said plurality of sequential pipestages is loading an element in each of said plurality of pipestages.
18. The method for processor pipeline control of claim 1 in which the action carried out in said plurality of sequential pipestages is loading an element in each of said plurality of pipestages.
This is a continuation of application Ser. No. 07/283,499 filed Dec. 12, 1988 now abandoned.
1. Field of the Invention
The present invention relates generally to a system and method for controlling the operation and advancement of computer pipeline stages. More particularly, it relates to such a system and method which does so in a complete, practical and simple manner.
2. Description of the Prior Art
Modern high-performance data processing systems are pipelined machines. In pipelining, the operations required to process each computer instruction are partitioned into a number of stages. Each of these "pipeline stages" performs a specific function for the execution of a machine.
Pipelining techniques were originally developed in the early 1960's. Some machines have very complicated pipelines with many stages, and the ability to have instructions skip stages, buffer instructions between stages, or even reorder instruction execution as processing progresses. In a conventional pipeline control mechanism, a control input is provided for each possible exceptional event. On the occurrence of one or more exceptional events that require a stall or interrupt during a machine cycle, it is necessary to translate and rank order these control inputs according to priority. Such translating and prioritizing can result in significant delays that increase cycle time and therefore reduce data processing throughput.
More specifically, a major complexity of conventional pipeline control methods arises from the handling of stalls and interrupts. Stalls can cause either some or all of the pipeline stages to stop, depending on the cause of the stall. Stalls are typically communicated within the CPU by a number of signals denoting exceptional conditions, such as cache miss, instruction buffer miss, page fault, interlock type x, and the like. These exceptional conditions then must be prioritized and translated into control signals for each pipeline stage.
Interrupts abort the execution of some pipestages and allow the remainder to continue execution, start executing new instructions at a system location, and change privilege operation modes. One difficulty with interrupts is choosing the instruction address ("PC") of the instruction at which to resume execution while taking the interrupt. This becomes even more complicated in the presence of multiple interrupts in the same cycle. If different interrupts have different "trap vectors", i.e., branch addresses, the interrupts must be prioritized before the proper PC can be saved for resuming execution and the execution begun at the new address.
Thus, a number of features present in the prior art require complex and slow pipeline control logic:
1. The need to prioritize exceptional stall conditions and translate these signals to control signals for each pipestage.
2. The need to prioritize interrupt conditions in order to save the PC corresponding to the highest priority interrupt, abort instructions following the cause of the interrupt, and choose a trap vector address. Since the hardware to implement this capability might be used on any cycle, it is evaluated on every cycle, and can easily set a lower bound on machine cycle time. This is further exacerbated by the fact that many of the exceptional conditions or interrupts come from distant portions of the machine and may spend a considerable amount of the cycle just traveling to a central prioritized.
This invention is primarily intended for simple pipelines. For purposes of this description, it is assumed that instructions pass through each stage of the pipelines in order. A very simple pipeline is as follows:
IF--instruction fetch
ID--instruction decode, fetch registers used
ALU--perform ALU operation for instruction or memory address
MEM--fetch operand from memory
WB--write result of instruction back into register file
This invention provides a complete set of very simple and very fast pipeline control signals encompassing stalls and interrupts. Each pipeline stage has associated with it a signal called "LoadX", where X is the pipeline stage name, e.g., LoadID. Instead of signalling exceptional conditions in terms of the event, e.g., "cache miss", exceptional conditions are signalled within the processor by deasserting the LoadX signals required by that exception. When the pipeline control for one pipestage is deasserted, in order to prevent previous instructions from entering the stalled pipestage, the detector of the exceptional condition must deassert all LoadX control signals for stages previous to X as well. For example, in the simple pipeline above, if an exceptional condition requires LoadALU to be deasserted, the detector of that condition must deassert LoadID and hence LoadIF as well. When multiple exceptional conditions occur in the same cycle, there is no need to prioritize these conditions, since the previously described method can handle multiple exception detectors deasserting groups of signals in parallel. For example, if an interlock requiring deassertion of LoadID and LoadIF occurs concurrently with a cache miss requiring deassertion of all pipeline control signals, both can deassert their appropriate control signals at the same time. Since all deassertions of the LoadX signals are wired-ORed, the net effect will be the same as the exceptional condition that deasserts the most signals. In this example the cache miss deasserts all the LoadX signals, and the effect of the interlock is not visible, which is the same result as if the exceptional conditions were prioritized.
When interrupts occur, all instructions that have not committed are aborted. A PC queue, containing the address of every instruction in the pipeline, stops shifting. Each of these queue entries is named according to its pipestage, e.g., IFpc, IDpc, ALUpc. Instead of saving one PC (or two in the case of a machine with a delayed branch of delay 1), all the PC's are kept in the queue, and the machine begins execution at a common interrupt vector location. It is then up to software to interrogate program status words (PSW's) throughout the machine to find all the causes of interrupt, to prioritize them and to branch to code to handle appropriately the trap selected. There can be more than one interrupt in a cycle, just as there can be more than one type of stall in a cycle. Each different trap handler may choose different instructions from the PC queue to restart. This mechanism for handling interrupts eliminates the need to prioritize interrupts in order to select a trap vector and to save the appropriate PC to restart in the cycle the interrupt is handled.
The attainment of the foregoing and related advantages and features of the invention should be more readily apparent to those skilled in the art, after review of the following more detailed description of the invention, taken together with the drawings, in which:
FIG. 1 is a block diagram of a multiprocessor system in which the invention is implemented.
FIG. 2 is a more detailed block diagram of one processor in the system of FIG. 1.
FIG. 3 is a block diagram of a portion of the processor of FIG. 2, showing a first embodiment of a system in accordance with the invention.
FIG. 4 is a block diagram of another portion of the processor of FIG. 2, showing a second embodiment of a system in accordance with the invention.
Turning now to the drawings, more particularly to FIGS. 1 and 2, there is shown a multiprocessor system 10 in which the system and method for processor pipeline control of this invention is used. Each processor 12, 14 and 16 consists of three custom CMOS integrated circuit chips: a central processing unit (CPU) 18, a floating point coprocessor (FPU) 20, and an external cache controller (CCU) 22. A typical configuration of the system 10 has eight processors, but only the three processors 12, 14 and 16 are shown. The processors 12, 14 and 16 are connected to a memory and input/output (I/O) system 24 by a 32-bit system bus 25 and a 32-bit memory bus 26. The system 10 is a very simple reduced instruction set computer (RISC) with a branch delay of one, hardware support for small-grain parallel processing, and vector floating point registers and operations. The system 10 uses a pipeline and method for handling exceptions which is described further below.
Further details of the processor 12 are shown in FIG. 2. The other processors 14 and 16 in the system 10 have the same construction. The processor 12 has a large instruction buffer 28 on custom VLSI CPU chip 18 as well as a large external cache 32 with an instruction portion 34 and a data portion 36. The CPU instruction buffer 28 cache containing 512 words, and is direct-mapped with a line size of 4 words. The instruction buffer 28 is addressed with virtual addresses. The 128K byte external cache 32 is partitioned into 64K bytes of data at 36 and 64K bytes of instructions at 34, also with a line size of 4 words The external cache 32 is implemented with commercially available 16Kx4 20ns static RAMs and is a physically addressed cache.
The custom VLSI CCU chip 22 handles virtual to physical address translation, interface to I/O devices at 24, low overhead processor to processor communication, interactions with the memory system 24, and control of the cache 32 during CPU memory references. The CCU 22 has a translation buffer (TLB) 38, and TLB 38 access is in parallel with the cache 32 access. In order for this to occur, without sharing of unmapped and mapped bits resulting in restrictions on page placement in main memory, the page size must be greater than or equal to the cache size. The smallest page size given these constraints has been chosen, resulting in a page size of 64K bytes.
The external cache 32 is write-back, as opposed to write-through. The instruction buffer 28 and instruction partition 34 of the external cache 32 do not monitor D-stream references, so writing into the instruction stream will have unpredictable effects unless the caches are flushed appropriately. The entire on-chip instruction buffer 28 is cleared by all context switches. The external cache 32 may be cleared on a line by line basis with a cache flush instruction.
The CCU 22 provides support for software control of shared data, as opposed to hardware control of shared data, such as a snoopy bus. In direct mapped caches, where data store and tag store are implemented with the same speed RAMs, provisional data is available a significant amount of time before hit or miss is known. The CPU 18 takes advantage of this property; it starts using the data a cycle before hit or miss is required from the CCU 22. Similarly, page faults are not known until after the data may have been written back into the register file. Thus, when a memory reference page faults, the instruction is allowed to complete in error before an interrupt occurs. Kernel software resumes execution with the instruction that caused the page fault. Note that this requires all memory references to be idempotent. The details of virtual address translation are orthogonal to the CPU chip 18 itself.
The custom VLSI floating point coprocessor (FPU) 20 performs G-format double precision (64 bit) floating point addition, subtraction, multiplication, reciprocal approximation, conversion to and from integer, and single precision (32 bit) integer multiplication. These operations take place concurrently with normal instruction processing of the CPU 18, except that the CPU 18 and CCU 22 wait for completion of operations when they need a result from the coprocessor. The FPU 20 has 52 general purpose registers, and supports vector arithmetic operations. The CPU chip 18 is the only chip to generate memory addresses. In coprocessor loads and stores, the CPU chip 18 generates addresses as if it were a load or store of its own register file, but ships the register address to the coprocessor. The coprocessor then either latches or sends out the data.
The CPU 18, FPU 20, CCU 22 and external cache 32 are interconnected by a 32-bit address bus 40, a 64-bit data bus 42 and a 10-bit CPU Operation and RR/RA bus 44. Memory system access is through a memory system interface 46 containing TTL and ECL latches and buffers and connected between the buses 24 and 26 and the buses 40 and 42.
Pipeline and organization of the CPU 18 are shown in FIG. 3. The organization chosen is efficient in its use of datapath resources. For example, only one ALU is required; it is shared between address computations and arithmetic operations and is used at the same time for both. This and other efficiencies allow the datapath to be small, even though the CPU 18 has more registers than most machines.
Certain overriding concerns determined the encoding of the instruction set for the CPU 18. First, in order for instruction source registers to be fetched in parallel with decoding of the opcode, the register sources must be in one and only one position in all instructions. Since store instructions read their operand to be stored at the same time as loads write their target, and arithmetic operations write their destination at the same time as loads, both store sources, load destinations, and arithmetic destinations must be in the same place. Some instructions, like add immediate, have only one register source and destination, so this constrains one source and the destination register to be specified by the high order halfword, since the displacement is in the low order halfword. There is enough encoding space for 64 registers (although only 48 general purpose registers are implemented). With a four bit opcode, we will neatly use the upper halfword: the opcode resides in the highest four bits, followed by the destination (rr) and the first source (ra).
Second, the opcode should be trivial to decode. Thus, the instruction opcodes are arranged so that one or two bits determine most functions. For example, all instructions with 16 bit displacements have as their highest bit "1". As another example, all the instructions with a valid destination register can be covered with two Boolean n-cubes. The encodings are given in Table I.
TABLE I______________________________________Opcode Instruction______________________________________0 trap1 extract2 undefined operation3 variable extracts4 CPU to coprocessor transfer5 coprocessor to CPU transfer6 coprocessor ALU (+, -, *, /, convert to or from FP)7 CPU ALU8 undefined operation (reserved for CPU store byte)9 test operation10 coprocessor store11 coprocessor load12 CPU store13 CPU load14 conditional jump15 add immediate______________________________________
CPU registers are named r0 through r63. The expression "rx" refers to the contents of the register whose number is encoded in the rx field of the current instruction, where rx is one of ra, rb or rr. There are two instruction formats, shown in Table II.
TABLE II______________________________________<4> <6> <6> <6> <10>opcode rr ra rb miscellaneous<4> <6> <6> <16>opcode rr ra displacement______________________________________
CPU registers 48 through 63 are special registers. They cannot be read and written in all circumstances as can general purpose registers. For example, the program counter (special register 63) can only be read as the first source and not as the second. The circumstances in which specials may be used are discussed below. To avoid confusion, the special registers are referred to by their name and not by their number in this application. They can only be accessed by CPU instructions, and not by CCU or FPU instructions. The special CPU registers are listed below in Table III. Using special registers as sources for instructions in circumstances other than those in the listed restrictions will return undefined data but will not cause any exception or errors in that or other instructions. Moreover, using the PSW as a destination, since it is write-only, will also have no effect. Thus, the recommended No-op is "PSW :=PSW op PSW", where op is any ALU or shift operation.
TABLE III______________________________________Number Name Restrictions______________________________________63 PC Only for rr in ALU or add imm, ra in all instructions62 PSW Only for rb in ALU or var byte (it is read only)61 PCQE Only for rb in ALU or var byte, rr in ALU or add imm60 PCQ Only for rb in ALU or var byte, rr in ALU or add imm59-48 reserved for future use______________________________________
PCQ is a queue of four addresses: IFpc, ALUpc, MEMpc and WBpc. When the processor is not in kernel mode, successive values of the pc enter the queue. When a trap occurs, WBpc contains the pc of the instruction which was in its WB pipestage, MEMpc the next instruction, ALUpc the third, and IFpc the address of the instruction in its IF pipestage.
The CPU 18 has a four stage pipeline. The stages are instruction fetch (IF) 50, compute (ALU) 52, memory access (MEM) 54 and result write back (WB) 56. The CPU 18 has four major data path blocks: adder/subtractor 57, shifter/extractor 59, logical unit 61 (capable of executing 16 Boolean functions) and register file 63. The register file 63 has three ports: two are read for A and B ALU source operands and the ALU results are written to the W port. There are three instruction registers (IR) 67-71. IR[ALU] 67, IR[MEM] 69 and IR[WB] 71 hold instructions supplied by the instruction buffer 65 in the ALU, MEM and WB pipestages, respectively. The IR 67-71 consist of an opcode and one register specifier. Source operand and bypass multiplexers 73 and 75 are connected between the register file 63 and the adder/subtractor 57, the shifter/extracter 59 and the logical unit 61. PC selection multiplexer 77 is connected to supply results of the ALU operations and instruction addresses that have been incremented by incrementer 81 to an instruction address register (PC) 79. A description of the actions taken in each pipestage 50-56 is given in Table IV below. Each pipestage is broken into four clock phases p1-p4. One and only one of the clock phases is high at all times, subject to small amounts of skew, which may result in zero or two clock phases being high for a few nanoseconds.
TABLE IV______________________________________Pipestage Function______________________________________IF 50 p1 PC → IBuf decodersp2 IBuf decoders → sense amp outputsp3 sense amp outputs → register file decodersp4 register file decoders → sense amp outputsALU 52 p1 operand sources → functional unitsp2 computep3 computep4 functional units → result busMEM 54 p1 if load or store, memory address computed above → memory, otherwise idlep2 cache accessp3 cache accessp4 cache accessWB 56 p1 memory data → functional units if loadp2 write register file if load, read if storep3 memory data → memory if storep4______________________________________
In the absence of exceptional conditions, one instruction is issued every cycle (40 nsec). All instructions commit in their WB pipestage 56; this implies if an instruction causes an interrupt it can only do so in WB 56.
In the following discussion, store class instruction will be used generically to refer to CPU store, coprocessor store and CPU to coprocessor transfer, which all use the data and/or address busses 42 and 40 (FIG. 2) in the WB stage 56. Load class instruction will be used to refer to CPU load, coprocessor load, coprocessor to CPU transfer, and coprocessor ALU instructions, which all use the data and/or address busses 42 and 40 in the MEM pipestage 54. The following exceptional conditions are handled by the machine:
__________________________________________________________________________Load Interlock If a CPU register is written by a load instruction, and used as the source in the next instruction, one additional cycle is lost.Store Interlock If the instruction following a store class instruction is a load class or store class instruction, one cycle is lost.Coprocessor → CPU Transfer Interlock If a Coprocessor → CPU transfer instruction follows a coprocessor load or store, one additional cycle is lost.CPU → Coprocessor Transfer Interlock If a Coprocessor → CPU transfer instruction attempts to issue two cycles after a CPU → Coprocessor transfer, one additional cycle is lost. Note that if a CPU → Co- processor transfer is followed immediately by a Coprocessor → CPU transfer, a store interlock will occur on the first attempted issue of the Coprocessor → CPU transfer, and then the CPU → Coprocessor transfer inter- lock will occur, increasing the spacing between the two transfers to three.Instruction Buffer Miss Any instruction fetch which misses in the instruction buffer will incur at least a two cycle delay, assuming a hit in the external instruc- tion cache. An instruction buffer miss that occurs while a store is in its MEM stage 54 will be delayed one additional cycle. If the missing instruction is on word 3 of the line, or if there is a taken branch in the ALU pipestage 50, one additional delay cycle will occur at the end of an instruction buffer miss.External Cache Miss A load, store, or instruction buffer miss which misses in the external cache results in a delay of 14 cycles. If a load or store instruction immediately follows a load or store instruction that misses, one extra delay cycle will occur.Coprocessor Stall Wait for completion of the coprocessor can cost up to 48 cycles.Trap or Interrupt Any trap condition costs a three cycle delay until the instruction at the location specified by the upper 28 bits of PSW is executed. This will be followed by a further delay because the I- buffer will miss (since it is cleared on all context switches.__________________________________________________________________________
Although page faults, coprocessor traps and bus errors are all signalled via the same interrupt pin, these conditions are differentiated by program status words (PSW's) in each of the CPU 18, CCU 22 and FPU 20. Table V gives the format of the CPU PSW. It is read only and reading it is not privileged.
TABLE V______________________________________<23> 1 <3> 1 1 1 1 1zero S PrId B T V K P______________________________________
The B bit is on if the processor is being is generated internally from the CPU by delaying the Reset input. The PrId field is the hardware processor identification. It is directly connected to three external pins and can range from 0 to 7. During boot sequences the upper 28 bits of the PSW (the other bits are zero) is used as a base address; the PrId field allows different processors to execute different code. The PrId field is placed in the PSW so that different processors will execute different cache lines. The S bit is on if the processor is being booted and is requested to save its state before booting. The S bit is a chip input, and is driven from the clock/scan board.
The T bit is `1` if a software trap occurred when the last interrupt was taken. The V bit is `1` if an instruction having an arithmetic overflow trap was in its WB pipestage 56 when the last interrupt was taken. The K bit is `1` if the instruction in the IF pipestage is in kernel mode. In kernel mode all interrupts are disabled and privileged instructions are enabled. The P bit is `1` if a hard parity error occurred in the cycle before the interrupt.
Note that since interrupts are not encoded or prioritized, other interrupts could have occurred at the same time, such as TLB fault, FP divide by zero, and the like. In order to determine whether other exceptions occurred, the FPU 20 and CCU 22 PSWs must be examined.
There are seven possible ways in which the pipeline advances from one cycle to the next. Table VI lists them in increasing order of priority. There are also eight control lines which determine pipeline advancement either directly or indirectly: LoadIF (internal to CPU 18), LoadALU, LoadMEM, Load WB, AllowInterrupt, Interrupt, Reset and Kernel.
TABLE VI______________________________________(1) Normal pipeline advance:WB := MEM;MEM := ALU;ALU := IF;IF := PC + 4;(2) Branch taken pipeline advance:WB := MEM;MEM := ALU;ALU := IF;IF := Branch target;(3) Interlock (LoadIF deasserted; LoadALU, LoadMEMand LoadWB are not)WB := MEM;MEM := ALU;ALU := NIL; delay slot injected hereIF := Recirculate;(4) IBuf miss (LoadALU deasserted; LoadMEM and LoadWBare not)WB := MEM;MEM := IBM refill; a load class instrALU := Recirculate; ALU does not advanceIF := Recirculate;(5) Memory Reference Retire (LoadMEM deasserted,LoadWB is not)WB := NIL;MEM := Recirculate;ALU := Recirculate;IF := Recirculate;(6) LoadWB deasserted (i.e., "stall")WB := Recirculate;MEM := Recirculate;ALU := Recirculate;IF := Recirculate;(7) Interrupt (Interrupt and AllowInt asserted, orReset asserted)WB := NIL;MEM := NIL;ALU := NIL;IF := PC = PSW[31 . . . 4];(8) Uninterruptible Stall (LoadWB and AllowIntdeasserted)WB := Recirculate;MEM := Recirculate;ALU := Recirculate;IF := Recirculate;______________________________________
LoadWB, LoadMEM, LoadALU and LoadIF control whether each of the four pipestages 50-56 stalls or advances. If the advance signal for a later pipestage is deasserted, the advance signals for all previous pipestages must be deasserted as well. This is required so that instructions do not overtake (i.e., crash into each other) in the pipeline. For example, if LoadMEM is deasserted, LoadALU and LoadIF must be deasserted as well. Since the LoadIF signal only exists inside the CPU, it deasserts LoadIF internally when it sees LoadALU deasserted.
If all signals have the load signal asserted, there is no interrupt, and the instruction in ALU is not a taken branch, all pipestages 50-56 advance and the new IFpc is IFpc+4 (case 1). If an unconditional branch or a taken conditional branch is exiting its ALU pipestage, all signals have their load signal asserted, and there is no interrupt, then the branch target is specified by the branch in ALU is the next IFpc (case 2). An interesting variation on this appears in the case of interlocks (case 3). In an interlock, LoadIF is deasserted, but all the other pipeline advance signals are asserted, and there is no interrupt. If a taken branch instruction is in ALU during an interlock, it must advance since LoadALU and LoadMEM are asserted. However, the branch target cannot be immediately loaded into the IF pipestage 50 since the interlock mandates that the instruction in IF 50 be held. Thus, interlocks are not allowed if a taken branch is in ALU. The only way to generate an interlock in IF concurrent with a taken branch in ALU is with a CPU→Coprocessor transfer followed by a taken branch with a Coprocessor→ CPU transfer in the branch delay slot. This code sequence should never be generated or else unpredictable operation may result.
In the IBuf miss sequence (case 4) the ALu pipestage must not advance into MEM and thereby use the address pins. The IBuf miss sequence usually occurs for two cycles, but may require an additional cycle at the start of the sequence if a store class instruction is in Mem when the IBuf misses. During an instruction buffer miss, a total of two load-class pseudo instructions are inserted into the MEM pipestage in successive non-stall cycles. The first loads the requested doubleword into the cache line and the second loads the non-requested doubleword. The additional cycle delay that occurs when the instruction buffer misses with a store in the MEM pipestages is just a special case of the store interlock.
The next instruction must be on the same line as the miss instruction so that the non-requested doubleword of the buffer line can be written into the buffer. An additional cycle is required at the end of the sequence if the next instruction is not on the same cache line. This is determined (slightly pessimistically) in the miss cycle by checking if the miss instruction is at word 3 of a cache line or if a taken branch is in the ALU pipestage. (In reality, the branch could be to the same cache line, and no extra cycle would be required.)
During stalls LoadWB and all earlier Load signals are deasserted (case 6). This results in all pipestages being stalled. If LoadMem is deasserted during an external cache miss but LoadWB is not, this signifies the requested data is on the data bus, and the instruction in WB should be retired (case 5). However, the following instructions may not advance until the memory operation completes.
If Interrupt and AllowInt (allow interrupt) are asserted, an interrupt is taken (case 7). AllowInt (and all the pipeline Load signals) may be deasserted during phase 3 if the CCU is in the process of a memory transaction. Thus AllowInt disables the effects of the Interrupt signal (case 8). To prevent exceptions from being handled, interrupts are ANDed with AllowInt. Inside the CPU the External Reset signal is OSRed with the result of the ANDing of AllowInt and Interrupt. Thus, reset has the same effect as an enabled interrupt, except that reset should be asserted at least 7 cycles so that all pipeline state can be reset. Although interrupt receivers must check AllowInt to tell if an interrupt is valid, interrupt sources must check the Kernel signal before generating interrupts. Interrupts should never be asserted in kernel mode, since if it is taken the return addresses will not have been saved in the PCQ.
Table VII gives the operation of each pipestage given the values of LoadMem, Interrupt, LoadWB, IBuf Miss, and Interlock. Int is actually "reset or (AllowInt and Interrupt)" in the table.
TABLE VII__________________________________________________________________________ControlInt LoadWb LoadMEM Load ALU LoadIF__________________________________________________________________________WB 1 X X X X nop0 1 0 X X nop0 0 0 X X WB0 1 1 X X MEMMEM 1 X X X X nop0 X 1 0 X nop0 X 0 0 X MEM0 X 1 1 X ALUALU 1 X X X X nop0 X X 1 0 nop0 X X 0 0 ALU0 X X 1 1 IFIF 1 X X X X nop0 X X X 0 IF0 X X X 1 next PC__________________________________________________________________________
Upon any of a set of special circumstances, the processor interrupts the normal sequence of instruction execution, sets the program status word to kernel mode (interrupts disabled, privileged instructions enabled), disables address translation, and forces the upper 28 bits of the PSW as the new PC. In addition it sets bits in the program status word indicating if a trap instruction or arithmetic overflow was one cause of the interrupt (there may be more than one cause). If an interrupt occurs in kernel mode, the processor follows these same steps. However, since in kernel mode the PCQ does not advance, nop record of the trap PC will be saved. Thus, all interrupt generators must check the Kernel bit and only generate interrupts if the kernel bit is off.
The PCQ records the PC associated with each pipestage. The PCQ is read from WBpc and written to IFpc. When the PCQ is read, WBpc is output and the PCQ shifts by one. Similarly, when IFpc is written the PCQ shifts by one to make room for the new entry. Whenever a nop (i.e. "bubble") is inserted into the pipe, the nil instruction has as its PC the PC of the next valid instruction in the pipeline. Nil instructions can be inserted between WB and MEM during cache misses, between MEM and ALU during instruction buffer misses, and between ALU and IF during interlocks (see Table VIII). In fact, in some circumstances there may be as few as two distinct PC's in all four PCQ registers: in other words, only two valid instructions exist in the pipeline. For example, if an instruction buffer miss occurs two successive nil instructions will be inserted in the MEM pipestage. If the instruction buffer miss faults in the TLB, this will be detected when the first pseudo-load instruction for the I-buffer reload is in its WB pipestage. At this point the instruction in IF is the faulting instruction, and the PC's in ALUpc, MEMpc, and WBpc are all the PC of the instruction in its ALU pipestage at the time that the instruction buffer miss occurred.
TABLE VIII______________________________________ Code Sequence______________________________________ 51: r1 := 0[r2]; 52: r3 := r1 + r7; 53: pc := pc - 43; 54: r4 := 2[r3];______________________________________ time →PCQ Sequence 1 2 3 4 5 6______________________________________WBpc -- -- -- 51 52 52MEMpc -- -- 51 52 52 53ALUpc -- 51 52 52 53 54pc in IF 51 52 52 53 54 10______________________________________
The chip set maintains parity on its 64-bit local data bus. This parity is odd byte parity. Checking of parity is controlled by the CheckParity signal, output by the CCU from its PSW. On all CPU load and Cop→CPU transfer instructions the CPU checks the parity of the word written into its register file (see FIG. 3). If the parity is incorrect, and CheckParity is asserted, the CPU asserts interrupt in the following cycle (assuming AllowInt is asserted). Thus, the parity error is associated with the instruction before the instruction recorded in WBpc (unless a stall was in progress with AllowInt asserted at the time of the interrupt). Since the values of LoadWB at the time of the interrupt is not saved, the instruction causing the parity error can not be determined precisely, and is usually not even one of the instructions in the PCQ. But hard parity errors are not restartable in software anyway, so this impreciseness is of little consequence except to diagnostic programs.
The CPU places proper parity on the driven word of the data bus in CPU stores and CPU→Cop transfers. In order to drive the parity bits at the same time as the data bits, the parity bits must be available when the data is read out of the register file (i.e., the parity bits must be stored in the register file too). Data is written into the register file from two sources: the local data bus, or a functional unit within the CPU (e.g., ALU, barrel shifter, and compare unit). The local data bus has parity; to provide proper parity in the case of results of CPU functional unit results written into the register file, parity is computed on the R bus during the ALU, shift or extract instruction's normally idle MEM stage. On each write of the register file the parity of the written word is checked. This checks incoming data in the case of a CPU load-class instruction, and also checks the parity generator in the case of a CPU ALU, shift, or extract instruction. Since parity is stored in the register file, parity errors in the register file as well as the external data busses and data cache can also be detected. However, since the CPU does not check the parity of operands read out of the register file, a parity error in the register file is only detected if the erroneous register is written back to main memory or is written into the data cache and loaded back into the register file.
Instructions fetched from the external instruction cache on an instruction buffer miss also have parity since they are fetched over the local data bus. This parity is not checked when data is written into the instruction buffer, but rather when each instruction is read from the instruction buffer. Thus parity errors originating in the instruction buffer are also detected, as well as errors originating in the external data busses and instruction cache. If a parity error occurs on a instruction fetch that hits in the instruction buffer, the hit is forced to be a miss, independent of CheckParity. Then the normal instruction buffer miss sequence fetches the instruction from the external instruction cache. If the parity error originated in the instruction buffer, either through a transient error or a hard error within a RAM cell, the normal IB miss refill bypass will result in correct parity when the instruction is fetched. If a parity error occurs during the write of the requested word in an instruction buffer miss refill sequence, the error is assumed to be in the data busses or external instruction cache; if CheckParity is asserted the CPU asserts interrupt in the following cycle.
A parity error could also occur in two cases during an instruction buffer miss refill sequence on the instruction following the instruction causing a miss. If the following instruction is in the same doubleword as the missing instruction, it will be written into the instruction buffer at the same time as the missing instruction, and when it is read it will be read from the RAM cells instead of from the bypass path. A parity error in this case could originate either in the instruction buffer or in external circuits. If the following instruction is in the non-requested doubleword, when it is read it will read from the bypass path. A parity error in this case would be independent of the instruction buffer RAM array (i.e. it would probably originate externally). Since these two cases are not distinguished, the CPU just forces a miss on a parity error on the instruction following a miss. Then if the parity error occurs on the refetch of the instruction from off chip, the error will occur during the write of the requested doubleword and will cause an interrupt (assuming AllowInt is asserted). Thus a bit cell error in the instruction buffer, whether transient or due to defects, will simply cause additional instruction buffer misses but will not prevent execution of programs. Up to one cell in every byte of every instruction in the instruction buffer may fail and the chip will still work (albeit more slowly).
In general, the last two uncommitted "valid instructions" must be restarted when returning from an interrupt. If the last valid instruction is in WB, it should only be restarted in the presence of page faults since in other circumstances the instruction in WB will have already committed. Note that in order to be restarted, load instructions cannot have ra=rr since they will have already written rr.
Although there may be as few as two valid instructions in the pipeline, there may be only one restartable instruction in the pipeline after an interrupt. This occurs in the case of a Coprocessor→CPU transfer that follows immediately after a CPU→Coprocessor transfer. The Coprocessor->CPU transfer instruction will have two successive interlocks. At this point, the address of the CPU→Coprocessor instruction will be in WBpc and the address of the Coprocessor→CPU transfer instruction will be in IFpc, ALUpc, and MEMpc. If an I/O interrupt occurs in this situation, the CPU→Coprocessor instruction in WB will not be restarted, which leaves only one valid instruction to restart. If there is only one restartable valid PC in the PCQ, then there can be no pending branches, and the instructions specified by IFpc and IFpc+4 should be restarted.
Once the PC's to be restarted have been found, they must be placed back into MEMpc and WBpc, with the first instruction to be restarted placed in WBpc. PCQ may be written by specifying it as the rr field in CPU ALU or add immediately instructions. The write will take place in the MEM pipestage; the PCQ is read in the ALU pipestage. Thus writes to the PCQ will commit one cycle earlier than other instructions, and reads will occur one cycle later. (But since all interrupts must be off to execute these instructions, we are safe.)
To return from an interrupt, the values placed in the PCQ must be transferred to the PC. The transfer must be done by an add immediate instruction with PCQ or PCQE in the rb field and PC in the rr field. Reading the PCQE register reads the PCQ with the side effect of exiting kernel mode. The first transfer of addresses from the PCQ to the PC when exiting kernel mode must use the PCQE register address. The jump to the transferred address and the exit from kernel mode take place after a delay of one instruction, just as other conventional branches have a branch delay of one. Next, PCQ→PC must be executed in the branch delay slot, which restarts the instruction formerly in MEMpc but now in WBpc. The next instruction after this will be the first restarted instruction in user mode. The instruction buffer is automatically flushed on interrupts and return from kernel mode. thus the restarted instructions will always miss in the instruction buffer. If one of the values restarted from the PC queue causes a translation buffer fault, an interrupt will occur. However, if the TB fault was on the instruction access of the first restarted instruction, the PC queue will contain an undefined value in ALUpc (and hence also the same value in MEMpc and WBpc due to the instruction buffer miss). If after processing this exception, the values in ALUpc and IFpc were restarted, incorrect operation would result from the undefined address in ALUpc. Therefore for correct operation the first return PC must have a valid translation.
The Kernel signal (i.e., pin) is associated with the instruction in the IF pipestage. It is the responsibility of the coprocessors to track the Kernel bit through the remaining pipestages, just as they track Op and Reg. The ability of an instruction to perform a privileged instruction in a particular pipestage is dependent on the value of the Kernel bit associated with the instruction in that pipestage.
FIG. 4 gives an overview of the microarchitechture of the FPU 20 and its pipeline. The FPU extends the four stage pipeline to a total of seven stages 58-68. The additional pipestages are EX2 64 (execute stage two), EX3 66, and PA 68 (write back ALU result, called put away to prevent confusion with WB). Execute stage one is WB 62. The FPU 20 has four major data path blocks: adder 70, multiplier 72, reciprocal approximation unit 74 and register file 76. The register file 76 has four ports: two are read for A and B ALU source operands, the ALU results are written to the R port, and loads/stores/transfers read or write the memory (M) port. In addition, a time-of-day counter 78, an interval timer 80 and an FPU PSW 82 are above the register file 76. There are eight instruction registers (IR) 84-98. IR[ALU] 84 and IR[MEM]86 hold instructions in the ALU and MEM pipestages 58 and 60, respectively. IR[WB[LST]] 88 holds load/store/transfer instructions in the WB pipestage 62. Similarly, IR[MEM[ALU]] 90 holds ALU instructions in the MEM pipestage 60, and IR[WB[ ALU]] 92 holds ALU instructions in the WB pipestage 62. IR[EX2] 94, IR[EX3] 96 and IR[PA] hold ALU instructions in the EX2, EX3 and PA pipestages 64, 66 and 68, respectively. All instruction registers except IR[MEM[ALU]] 90 and IR[WB[ALU]] 92 consists of an opcode and one register specifier; IR[MEM[ALU]] 90 and IR[WB-[ALU]] 92 contain an entire 32 bit FPU ALU instruction. Source operand and bypass multiplexers 100 and 102 are connected between the register file 76 and the adder 70, multiplier 72 and reciprocal approximation unit 74.
In contrast to most high performance floating point engines, the FPU 20 has a lock step pipeline like the CPU 18, greatly simplifying the control logic. For example, since all functional units have a three cycle latency, the functional unit write port to the register file need not be reserved or checked for availability before instruction issue.
The FPU control is split into two parts. The first part manages the operation of FPU loads, stores, and transfers. The second part manages FPU ALU instructions. These two parts of the machine communicate through the register file, register reservation bits, and the interchip pipeline control signals. The use of the pipeline control signals will be explained in detail below, however, an overview of their use follows. LoadWB (and hence LoadMEM, LoadALU, and LoadIF) are deasserted by the FPU ALU control section and stall the control section for FPU loads, stores, and transfers (i.e, the LST section). This is used to prevent FPU loads, stores, or transfers from executing before prior FPU ALU instructions have issued. (In the case of vector FPU ALU instructions, only one element must be issued for the stall to be cleared.) There is no dual of this situation to prevent FPU ALU instructions from executing ahead of previous loads, stores, and transfers because they all use the data bus and are serialized by it. Table IX is a composite timing description for all types of FPU loads, stores, and transfers. Table X describes the timing for an FPU ALU instruction.
TABLE IX______________________________________Stage Phase Operation______________________________________ALU 1 Read CPU opcode bus58 2 3 4MEM 1 2 Read register if FPU→CPU60 Read register reservation bit 3 Deassert LoadWB if register reserved 4 Drive data bus if FPU→CPU Latch data bus (for FPU load)WB 1(EX1) 2 Read or write register for62 FPU store or load Read register reservation bit 3 Deassert LoadWB if FPU store register reserved Latch data bus (for CPU→FPU) Drive data bus if Store 4EX2 164 2 Write register if CPU→FPU______________________________________
Once an ALU instruction gets into the WB pipestage, it is guaranteed to complete. This is required for compatibility with CPU instructions, which also commit in the WB pipestage. Vector instructions that overflow on one element discard all remaining elements after the overflow. The destination register specifier of the first element to overflow is saved in the PSW. note that vector ALU instructions may continue long after an interrupt. For example in the case of vector recursion (e.g., r[a] :=r[a-1]+r[a-2]), if there was an interrupt just after the instruction entered WB the last element would not be written for 48 cycles.
TABLE X______________________________________Stage Phase Operation______________________________________ALU 1 Read CPU opcode bus 2 3 4MEM 1 Coproc ALU instr driven from CPU 2 3 Set up register file predecoders 4 Read and latch source registers Send op code to FU's Read register reservation table Compute if this was a valid FPU ALU instr Compute if bypass required - tell FU's If interrupt, nop instr leaving MEMWB 1 Drive sources to FU's(EX1) Provisionally issue the instruction FU's latch sources or result if source bypass FU's start computing, first FU pipestage 2 If instr was valid and ready when issued then begin reserve destination reg; increment appropriate register specifiers; decrement vector length end 3 If ((CPU is sending another ALU instr) and (vector length remaining <>-1)) or register interlock then deassert LoadWB 4EX2 1 Continue computing, second FU pipestage 2 . 3 . 4 .EX3 1 Continue computing, third FU pipe- stage 2 . 3 . 4 .PA 1 FU drives result Clear reservation bit 2 Write result if IR[PA]<>nop 3 Assert interrupt if IR[PA]<>nop and overflow______________________________________
A simple solution to the problem of reservation o vector result registers is provided by use of the existing inter-chip pipeline control signals. LoadWB (and hence LoadMEM, LoadALU, and LoadIF) is deasserted in two LST/ALU synchronization situations. Both assume a prior FPU ALU instruction (of one or more elements) is being held in the ALU instruction register, waiting for a pending write of a source operand to complete. Also, in both cases no register addresses are compared, so this approach is simple at the expense of possibly generating unnecessary stalls. First, LoadWB is deasserted when a FPU store enters WB, or an FPU→CPU instruction enters MEM, preventing it from retiring until at least the first element of the prior ALU instruction has issued. Without deasserting LoadWB in this situation FPU stores or FPU->CPU transfers of the ALU destination might execute ahead of the ALU instruction issue. But if the ALU instruction had not yet been able to issue and reserve its result register, the store could execute getting the old value even though it came after the FPU ALU instruction. However once the ALU instruction has issued, the scoreboard will be able to properly handle register dependencies between the ALU instruction and the LST instruction. Second, LoadWB is deasserted when the next FPU load or CPU→FPU transfer instruction enters MEM, preventing the load from writing its result register until at least the first element of the ALU instruction has issued and hence read both its source operands. Without deasserting LoadWB in this situation FPU loads or CPU->FPU transfers might execute ahead of the ALU instruction issue. But if the ALU instruction was waiting for a pending write of one source operand, and the other source operand was the target of the load or transfer, the load could replace its second operand with its new value before its old value was used.
If dependencies occur between elements in a vector other than the first and following loads and stores, the compiler must break the vector into smaller vectors so that the LST/ALU synchronization using LoadWB has effect. However, in most code sequences this will not be necessary; for example, if a vector operation is followed by stores of each result register, the stores can be performed in the same order as the result elements are produced. Only when operands must be stored out of order, or when the first elements of a vector are not stored but later elements are, will the compiler need to break a vector in order for the LST/ALU synchronization via LoadWB to be effective. Note that if an entire vector was required to issue before loads and stores were honored, most useful overlap of transfers and computations would be precluded.
The FPU 20 must track the pipeline of the CPU 18 so that they are synchronized during transfers. It tracks the CPU 18 by observing the LoadALU, LoadMEM, LoadWB, and NotInterrupt signals (see Table XI). Pending source is an internal signal asserted if there is a valid FPU ALU instruction that can not issue because the scoreboard detects a source register is reserved for writing by a previous FPU ALU instruction. Vector in progress (VIP) is an internal signal asserted if after issuing an FPU ALU instruction and decrementing its vector length field its "vector length-1" field is not -1. Because the FPU can retire both a LST instruction and an ALU operation each cycle, two MEM and two WB instruction registers are required. The instruction register for LST instructions in the MEM pipestage is called MEM[LST]; the instruction register for FPU ALU instructions in the MEM pipestage is called MEM[ALU]. Similarly, the instruction register for LST instructions in the WB pipestage is called WB[LST]; the instruction register for FPU ALU instructions in the WB pipestage is called WB[ALU].
TABLE XI__________________________________________________________________________Pipe Load NotIn- Load- Load- Pending Vector Nextstage MEM terrupt WB ALU source InProg. stage__________________________________________________________________________ALU 0 X X X X X ALU58 1 0 X X X X nop 1 1 0 X X X ALU 1 1 1 0 X X ALU 1 1 1 1 X X opcode busMEM 0 X X X X X MEM60 1 0 X X X X NOP 1 1 0 X X X MEM 1 1 1 0 X X nop 1 1 1 1 X X ALUWB(LST) 0 X 0 X X X WB62 0 X 1 X X X nop 1 0 X X X X nop 1 1 0 X X X WB 1 1 1 X X X MEMWB(ALU) X X X X 1 X WB62 X X X X 0 1 next element 0 X X X 0 0 nop 1 0 X X 0 0 nop 1 1 0 X 0 0 nop 1 1 1 X 0 0 MEMEX2 X X X X 1 X nop64 X X X X 0 X WBEX3 66 X X X X X X EX2PA 68 X X X X X X EX3__________________________________________________________________________
The CPU opcode and register specifier are latched into IR[ALU] on phase 1 of every cycle in which LoadALU and NotInterrupt are asserted. When latched, the opcode and register specifier correspond to the instruction in the ALU pipestage of the CPU. The instruction in IR[ALU] advances to IR[MEM] on phase 1 in cycles without LoadALU, LoadMEM, LoadWB or NotInterrupt deasserted on the previous phase 4. If NotInterrupt or LoadALU is deasserted on the previous phase 4 IR[MEM] is cleared.
If the instruction in IR[MEM] is a coprocessor ALU instruction, then the CPU will send out the ALU instruction over the address lines this cycle, and it will be latched in IR[MEM[ALU]]. The contents of the address lines are always evaluated as an FPU ALU instruction during the MEM pipestage; however they are only advanced into WB if it is a valid FPU ALU instruction. If the instruction in IR[MEM[ALU]] is an FPU ALU instruction it will advance to IR[WB[ALU]] in the absence of notLoadWB, notLoadMEM, pending source and vector in progress. Pending source and vector in progress have higher priority than notLoadMEM or interrupt; if a source operand is reserved than IR[WB[ALU]] will recirculate. Similarly if a source is not reserved, but a vector has not been fully issued, the next element of the vector will be latched into IR[WB[ALU]] independent of all external conditions. Only when neither pending source or vector in progress are asserted will notLoadMEM, interrupt or notLoadWB force IR[WB[ALU]] to nop.
If the instruction in IR[MEM] is a load, store, or transfer instruction, it will advance to IR[WB[LST]] unless LoadMEM, NotInterrupt or LoadWB are deasserted. IR[WB[LST]] is cleared if it is a LST instruction and interrupt is asserted or LoadMEM is deasserted and LoadWB is asserted.
Instructions in IR[WB[ALU]] advance to IR[EX2]unless their source operand is reserved, in which case IR[EX2] is nop. Instructions in IR[EX2] and IR[EX3]always advance to IR[EX3] and IR[PA], respectively.
It should be apparent to those skilled in the art that various changes in form and details of the invention as shown and described may be made. It is intended that such changes be included within the spirit and scope of the claims appended hereto.
Patent Citations
Referenced by
Legal Events
Original Image


text:
Events & Activities
Student Research Symposium
The Saturday of Homecoming Weekend in October of Each Year
The California Lutheran University Student Research Symposium showcases the work of CLU's top students. Most of these students have spent their entire summer working full-time side-by-side with a faculty mentor on their project. The original results that are shared at this venue are likely also to be presented at professional conferences throughout the region and country. Students from a wide variety of disciplines including Biology, Chemistry, Computer Science, Exercise Science, Global Studies, Math, Psychology, and Religion shared their work in 15-minute oral presentations at the start of the morning in Richter Hall (9:00 am - 10:30 am), followed by an interactive poster session in the Ahmanson Atrium (10:30 am - 1:00 pm).
The event was free and open to the community-at-large as well. This year again had a standing-room-only crowd celebrating the work of these bright young researchers.
Next year's event is again planned for the Saturday of CLU's homecoming weekend.
Southern California Conferences for Undergraduate Research (SCCUR)
November of Each Year
SCCUR holds an annual conference dedicated to the promotion and celebration of undergraduate research, scholarship, and creative activity. For more information on SCCUR and next year's event, go to www.sccur.org.
Festival of Scholars
The Last Week in April Each Year
The Festival of Scholars showcases scholarly work of undergraduate and graduate students from the College of Arts and Sciences, the Graduate School of Education, the Graduate School of Psychology and the School of Management. Scholarship is broadly defined and includes scientific experimentation, creative works, community-based inquiry, and other investigations. Contact email@example.com or Ashley Fessenden at email@example.com for more information.

subset: commoncrawl


text:
Save an EXTRA 10% on everything when you use code MEM2015! View Details
I have not used this a whole lot yet, but once I get a chance to play with it, I am sure I will love it, I love all punches!!
Used in this card: Mother's Day
You must be logged in to comment. Please click here to log in.


text:
This year's Philip K. Dick Award judges have been selected. They are: Jon Armstrong, Ritch Calvin, Ellen Klages, Laura J. Mixon (M. J. Locke) and Michaela Roessner-Herman.
This year's Philip K. Dick Award judges have been selected. They are: Jon Armstrong, Ritch Calvin, Ellen Klages, Laura J. Mixon (M. J. Locke) and Michaela Roessner-Herman.
Want to be a member of the Norton jury? Interested volunteers (see qualification requirements) should contact the office of the vice president by March 15th.
Issue 203 of the SFWA Bulletin went to the printer this week. It contains articles from members experienced and new, information on SFWA's opportunities, projects, and activism, and messages from the Board. This issue, guest-edited by Tansy Rayner Roberts, with Jaym Gates as Production Editor, was specially created to be used as an outreach tool for conventions and other events.
Rachel Swirsky: Do you have any great stories about meeting someone at a SFWA event, or online? (And if you do, please tell them. )
Eileen Gunn: Most of my stories about SFWA events are far too scurrilous to put into print. SFWAns were not very well behaved in the Eighties and Nineties. Sit next to me at a Nebula banquet, and I might tell you some….
Science Fiction and Fantasy Writers of America has joined the International Authors Forum, an organization of authors' groups created to "promote and defend authors' interests and authors' rights" by providing these groups with an "international platform to exchange information, develop positions and provide support in authors' rights matters."
by Cat Rambo
One of the tools I mention to students in my online class Building An Online Presence for Writers is a website called Namechk. You can input the user name you want to use and see whether or not it is taken on a number of social networks and well as domains.
by Theodora Goss
When I teach writing, I teach craft. Art goes beyond craft, and has to do with what a writer, as an individual, brings to writing. Art is in the way Virginia Woolf explores consciousness. In the way George Orwell writes about politics.
by Helena Bell
The application season for Clarion West and other Clarion (UCSD) has begun. I've already seen posts on twitter from past alums encouraging people to apply and telling the world what wonderful, glorious experiences they had.
I'm not going to do that. I'm going to tell you not to apply. To not go. And here are my reasons:
Dragons in your pickle jar. Devils at the diner. Sentient space ships named for epic poetry. All these and more inhabit the pages of the annual Alphanthology, an illustrated collection of flash fiction by alumni of the Alpha SF/F/H Workshop for Young Writers. Alpha is a nonprofit, ten-day residential workshop for teen writers of genre fiction, held every summer in Greensburg, Pennsylvania.
Ever wonder what the sky looked like in 1006 CE, when a supernova could be seen during the day? What dates did full moons illuminate the fog of Whitechapel as Jack the Ripper prowled the streets? When a character swims the Arctic Ocean, in a story set two thousand years in the future, what star might she use to guide her passage? Stellarium provides answers.


text:
The Comedy In Fifty Shades of Grey
By Amy Nicholson
Wild Tales Lays Bare Everyone's Awfulness
By Stephanie Zacharek
Approaching the Elephant Is a Bracing Education Doc
By Calum Marsh
By Stephanie Zacharek
By Inkoo Kang
The Results of Our 2014 Film Critics' Poll
By Voice Film Critics
By Alan Scherstuhl
The Blue Room (La Chambre bleue)
By Alan Scherstuhl
At the discomfiting core of this delightfully plotless space-out is the titular über-nebbish (Jon Heder), cursed with a name only Elvis Costello could think up, a toothy pre-man voice that sounds like basset hounds humping, and a talent for essentially nothing at all. Napoleon is so outrageously awkward it's a wonder the jocks at Preston High (which Hess actually attended) don't just beat him to death; it might be the ne plus ultra of cataclysmic pubertal portraits. Beyond even the misaligned-joint body language and entropic curls, Napoleon's a perfectly conceived and executed battery of melodramatic harrumphs, bruised exhalations, defensive squints, clueless pronouncements, and explosively irate retorts. The image of him defiantly hurling a class-prez campaign button down the crowded school hallway earns a laugh days after you see it. Out-cretinizing even Heather Matarazzo's doormat in Todd Solondz's Welcome to the Dollhouse and Wiley Wiggins's unschooled freshman in Dazed and Confused, Heder's Napoleon is such a fantastic creation you can't help seeing him as both a catastrophically extreme case and the common flailing nerd we all still shelter in our deepest memory banks.
Set in a vague '80s vapor, Napoleon Dynamite is richly inventive but sparelittle is, finally, at stake. But the comic details are thick as a brick, most of them willfully absurd: the Idaho landscape of desert highways, Chicano gang cars, chicken farms, and llamas; Napoleon's older, even wimpier brother, Kip (the rather amazing Aaron Ruell), landing a girlfriend he's not aware is a man; the boys' unsavory Uncle Rico (Jon Gries) videotaping himself throwing touchdown passes. Napoleon himself tries to "score" with "babes," finagles a date to the prom (hyper-aware of cliché, Hess minimizes this humiliating set piece, and doesn't even capitalize on Napoleon impulsively mouthing a tobacco chaw and then swallowing it), and coordinates a student-body election run for his only friend, the new, slightly dim Mexican kid in town (Efren Ramirez). But the unlikely climactic triumph aside, Napoleon Dynamite is more concerned with texture and daffy non sequitur, down to the supremely kitschy Casio score by John Swihart.
Mention should be made of Tina Majorino (remember her, from When a Man Loves a Woman and Waterworld?), who as a quiet, misfitty teen entrepreneur wipes her dainty feet on her generation's better-known starlets. But the center of Hess's cyclone is Heder and his tetherball-playing monster teen, who is both the film's forbidding hero and its great object of derision. Unlike the Solondz film, Napoleon Dynamite exudes little sense of social horror; it struggles to maintain a sunny disposition despite the traumatic social meltdown we witness and the apparent fact that Napoleon is headed not for a tech college but for a long, dire career in food service. He's all too emblematic of too many Americans, and if Hess's movie weren't so funny, it'd be a tragedy.
Sponsor Content
Find capsule reviews, showtimes & tickets for all films in town.
Join My Voice Nation for free stuff, film info & more!


text:
Erick BrownsteinTwitter Statistics
@ErickB - Tracking since May 4, 2009
Advocate for class clowns. Aspiring Expert at Nothing. Unschooling papa. Swampland explorer. The New Agency founder. Tequila, yum
Santa Monica, CA
You are on Erick Brownstein's Twitter stats page
We track these Twitter stats since May 4, 2009 . You can see how many followers Erick Brownstein lost or gained and what the prediction is for tomorrow or the next 15 days, together with all kinds of other stats like rank compared to all Twitter users, tweets etc.
Why don't you give it a try and compare Erick Brownstein to yourself ? Or if you are Erick Brownstein get even more feature rich & up-to-date stats with Premium & Pro Twitter Stats.
Twitter Counter is the #1 Twitter stats site powered by Twitter. It all started in June 12, 2008 and we grew rather rapidly because of our Twitter Counter badge. The button is a nice small image that shows your visitors how many followers you have on Twitter. Within a year the button was on many many blogs around the world and we displayed more than 100 million buttons in one month. We track follower stats for over 180 million users now.
"I just unlocked the 6-month graphs on Twitter Counter.
Find out more http://twittercounter.com/pages/you via @TheCounter #paidwithatweet"


text: No recent wiki edits to this page. Part of a series of one-shot prequels to Return to Wonderland following the origins of key characters. This one features Alice LiddleThe main Wonderland story continues in Beyond Wonderland.It is collected with the rest of the first run of one-shot prequels in Tales from Wonderland Volume 1.A second run on prequel one-shots was later released, starting with Tales from Wonderland: Chesire Cat.


text:
William Juxon
11 of 11 portraits of William Juxon
William Juxon
by George Vertue
engraving, circa 1745
8 1/2 in. x 5 3/4 in. (215 mm x 147 mm) paper size
Given by Sir Herbert Henry Raphael, 1st Bt, 1916
Reference Collection
Click on the links below to find out more:
Sitterback to top
- William Juxon (1582-1663), Archbishop of Canterbury. Sitter in 11 portraits.
Artistback to top
- George Vertue (1683-1756), Engraver and antiquary. Artist associated with 848 portraits, Sitter in 7 portraits.
Related worksback to top
- NPG D19393: William Juxon (from same plate)


text:
Arizona Coyotes
Report: Deal reached for sale of Phoenix Coyotes
Could it be? Has the saga finally come to a close?
A deal has been reportedly agreed upon for the sale of the Phoenix Coyotes to an ownership group.
Fox Sports Arizona's Craig Morgan confirmed reports Friday on his Twitter page that NHL officials Gary Bettman and Bill Daly, along with George Gosbee and Anthony LeBlanc of the Renaissance Sports & Entertainment group, will meet with Glendale officials next week.
Then this:
Sources also telling me that the NHL and Gosbee/LeBlanc (Renaissance Sports & Entertainment) have agreed to a deal for #Coyotes purchase.— Craig Morgan (@cmorganfoxaz) May 25, 2013
Morgan went on to tweet that Glendale Councilman Gary Sheerwood has been holding informal meetings with people related to the management of Jobing.com Arena.
While the sale may be approved by the NHL, any prospective buyer would still have to strike a deal with Glendale for the management of the city-owned arena.
Most Popular
Coyotes Audio
- Bickley BlastThe NHL draft wasn't rigged, and that's the problem.
- Barry Melrose, ESPN NHL analystBarry Melrose previews the NHL draft lottery for the Coyotes and breaks down the first round of the
- Bickley BlastPhoenix doesn't have a lot of luck with drafts in pro sports.
- Shane Doan, Coyotes captainShane Doan discusses his future in Arizona and the direction of the Coyotes.
- Dave Tippett- Coyotes head coachDave Tippett doesn't want to experience this season again.


text:
"Her story is not unlike so many other stories that I've heard or seen," said McCain, who has been involved in Congo since 1994. "These people have such incredible spirit."
With her years of experience in the country, McCain said she was at first skeptical about Affleck, fearing that he was like other celebrities that she'd seen who drop in to Africa for what she called a "parachute photo op."
"My past experiences with other folks in the same, perhaps, arena have not been good. It hadn't been heartfelt. It hadn't been, what I believe, truly committed to the issue and the people," McCain said.
But Affleck, she said, has done the hard work of learning the issues on the ground in detail.
"This has been not only a wonderful opportunity but a wonderful treat," she said. "Ben has a working knowledge of this region. He not only understands the issues, but he understands what we need to be doing."
And Affleck added that while the Democratic actor and the Republican political wife may be separated by a partisan divide, the two have found plenty of common ground on Congo, family and even politics.
"I'd say we have, actually, frankly, quite a bit in common. I don't know if, maybe she doesn't want me to say that out loud," Affleck joked.
Click here for a slide show with images from McCain and Affleck's trip.
Watch "World News with Diane Sawyer" and "Nightline" for more tonight. And watch them live Tuesday on "Good Morning America."


text:
Next, you'll be asked to connect with Twitter. Rest assured, we will never send a tweet from your account without your permission.
One Man's Photos from an Epic Road Trip Spanning 26 Yrs, 177 Countries, and 500,000 Miles➡
Off the North Carolina coast, wrecks from 1942 Battle of the Atlantic #ncpol #photo
Just posted a photo
Fog and rain over Yangshou #photo
Into the dream.... Via @bobbirok @THEnjeXXIV #photo
Marina Bay Sands and The Helix Bridge - Singapore #photo by Elia Locardi #ttot #travelpics
RT @NatGeo "Photo: Diver frees a whale shark wrapped in a fishing line "
Hundreds Of Thousands Of Teens Have Had Their #Snapchat Photos/Videos Intercepted By Hackers
Colors of #Ámsterdam by Lorena #Cirstea via @mjesusgz @Nizar_360 #photo
Elemental by rj-pollard #photo
Over the Arabian desert #photo by Таймас
Best picture of the Blood Moon I've seen so far. Over La Jolla, CA. #photo
A Hotel Near Niagara Falls #ttot #photo
A Bengal Tiger in Water #Photo by Michael Nichols
RT @ZaibatsuPlanet: Foggy Tower by jazure #photo
The flooded ruins of the ancient Ayutthaya, in Thailand #photo
Schwerin Castle in Germany #photo
Snapchat for Business: How Your Marketing Can Benefit From Photo Messaging RT @socialmediamo #smm
The Fairy Glen is a secluded & enchanting gorge on the river Conwy near Betws-y-Coed in Wales. Photo by Brian McKay
Los Angeles Sunset via @HarryCicma #photo
See what's Trending Now for @zaibatsu


text:
Cummings McCall III, PGA
Main Address:
Cordova, TN 38016-1538
PGA Member for over 25 years. Have extensive experience in merchandising and tournament Management. Background includes a history of successfully managing golf facility operations.
Services Offered:
- Instruction
- Play Golf of America Participant
Free Fitting Month
Welcome to Golf Month
National Awards
- 2009 PGA President's Council on Growing the Game
- 2008 PGA President's Council on Growing the Game
- 2006 PGA President's Council on Growing the Game
Home » Golf Courses » Tennessee » Cordova » Cummings McCall III, PGA
PGA of America Championships
Pete Dye Course
French Lick, Ind.
Westchester Country Club
Rye, N.Y.
Philadelphia Cricket Club
Philadelphia, Pa.
Whistling Straits
Kohler, Wis.
Hazeltine National Golf Club
Chaska, Minn.


text:
Where Alumni Serve
IPS Alumni are in demand and making a difference nationally and internationally in the mental health field. They are successfully working in private practice, hospitals, community clinics, seminaries, campus ministries, outreach services, and academia. As our alumni will attest, the need for well-trained clinicians is great. Click on each region to view a listing of where current graduates are practicing and additional information. For additional inquiries please email email@example.com.


text:
Toby Lester, "What Is the Koran?"; Anthony Walton, "Technology vs. African Americans"; Roger Shattuck, "When Evil is 'Cool'"; Carol Shields, "The Next Best Kiss"; and much more.
Researchers with a variety of academic and theological interests are proposing controversial theories about the Koran and Islamic history, and are striving to reinterpret Islam for the modern world. This is, as one scholar puts it, a "sensitive business"
Norman Borlaug, the agronomist whose discoveries sparked the Green Revolution, has saved literally millions of lives, yet he is hardly a household name
Landslides and other "ground failures" cost more lives and more money each year than all other natural disasters combined, and their incidence appears to be rising. Nevertheless, the government devotes few resources to their study—and the foolhardy continue to build and live in places likely to be consumed one day by avalanches of mud
Some of the best Chinese food in the world is being served in Los Angeles's new Sino-suburbs
Our culture, in particular the institution of the university, has contrived over the past few decades to transform sin into a positive: transgression, a term that, as used by postmodern critics, refers to an implied form of greatness.
In 1905 Albert Einstein, a twenty-six-year-old clerk, published five epochal papers. One was later awarded a Nobel Prize. Reading them today, our reviewer is thrilled by their genius
A prominent demographer warns that the spread of tuberculosis and AIDS in Russia will soon make Western hand-wringing over the pace of Russian "economic reform" seem quaint
From the caravel to the cotton gin, technological innovation has made things worse for blacks. Will the information revolution be any different?
In another time, in a more exuberant century, sadness was dignified; it was referred to as melancholy; it was described as autumnal in tone and tinged with woodsmoke. It was a real affliction, like color blindness or flat feet
Security Blanket -- by Guy Billout. The Atlantic Monthly; January 1999; Security Blanket; Volume 283, No. 1; page 87.
Atlantic contributors reflect on intersections of books and travel.
The national entertainment state threatens to transmogrify American life into a soap opera
TOBY Lester, the author of this month's cover story, "What Is the Koran?," about historical scholarship and Islam, has for a decade cultivated a…
Arts & Letters. This month, after waiting for years, scholars can gain broad access to the voluminous archives of one of the most important…
Madversarial. My perspective is that the correct transformation of the noun adversary into an adjective is to form adversative and not adversarial.…


text:
Eligibility Requirements:
- Must be of sophomore- or junior-level standing at time of application. Applicant may be senior-level, as long as he or she will not graduate before completing full academic year in Program
- Must have and maintain a cumulative grade point average of 2.5 or above overall and within the student's major
- Must be conducting research or a creative project in the student's major or related field of study, and must have a faculty mentor in that area who is willing and available to oversee the student's project from beginning to end
- Must maintain adequate progress toward the completion of the Project and attend UROP sponsored events/workshops
- Must be enrolled as a full-time student at USM (minimum of 12 credit hours) during the fall and spring semesters while participating in the program; if research requires to work during the summer semester(s), student must be enrolled for six credit hours in order to be paid
- Must obtain necessary clearances/permits (such as with IRB, Animal Care, Hazardous Material or field study sites) BEFORE beginning research or creative activity
- Must conduct the project during the summer, fall and spring of the upcoming year. (Funding may be received to begin the project as early as May 1st of the year the proposal is submitted and accepted.) The project should reach completion by April of the following spring semester.
- Must present their completed project at Thinking Matters in April.
- $3000 award for the academic year
- $500 for materials related to the project per approved submitted budget justification
- Eligibility to apply for up to $400 in travel to present research, scholarship or creative activity
- Opportunity to work closely with faculty mentor
- Opportunity to develop scholarly relationships with other USM faculty and UROP fellows
- Opportunity to publish project results in professional journals
The project is guided by a faculty mentor, chosen by the student from those faculty members who are available for the summer, fall and spring semester and agree to serve. The project must be based at USM, but may involve off-campus activities.
Selection criteria:
Your application will be evaluated by several professors, and not all will be specialists in your field. It is important that you write your application in general terms and explain any necessary technical details. It is often helpful to have a friend who is unfamiliar with your proposed research review the application and highlight any areas of confusion. You may also contact the Research Administration office to make a review appointment, in which the RA staff will review your application and provide feedback and suggestions. Review appointments will not be available on the two days prior to the deadline. After proposals are submitted for UROP, the Awards Committee (a committee of USM's Research Council) evaluates each one on its merit for funding. The Awards Committee presents their evaluation and comments to the full Research Council. Council members vote individually on each proposal, however, members may not vote on proposals from their own departments or those which they are serving as faculty mentors. Student proposals can receive up to four points in each of five areas for a maximum of 20 points, as detailed in the scoring rubric. A proposal must have an overall score of 12.5 or more to be considered eligible for funding.
Application materials:
The student's application should include a brief project abstract (150 words), the project proposal (no more than five pages) in line with listed criteria, the project's proposed budget justification, a letter of recommendation by the faculty mentor, and a cover sheet. Paper applications should be delivered to Trish Bola, 303 Wishcamper, Portland Campus; electronic application should be emailed as a single PDF file to firstname.lastname@example.com.
The abstract is a brief but comprehensive summary of the contents of the proposal in plain language. Readers should receive their first impression of the flavor of the topic from this abstract. The information in the abstract needs to be concise, well organized, self contained, and understandable to persons outside the discipline. This should be placed on its own separate page, behind the cover/application sheet but before the text of the proposal itself. The abstract does not count towards the proposal page total.
Project Proposal:
Introduction and Significance
In all cases, please realize that some members of your audience are skilled in areas outside of your discipline, so engage them in your idea via a plain-language introduction. This beginning section of your proposal should contain thorough statements that orient the readers to the overall area of investigation, spark their interest, and communicate information essential to their comprehension of your proposal.
• Describe the intellectual merit of your proposed research or creative activity. What is the context for this project? Why is it important? What goals will it accomplish or what questions will it answer? For creative activities, what aesthetic are you addressing? Why is your proposed creative activity unique? For a science or technology proposal, you should describe a hypothesis that your research will test.
• Describe the broader impacts of your proposed research. Does this research have practical application or public policy implications? Will it contribute to better understanding of questions important to human knowledge or culture? Is your research particularly relevant to certain groups of people, such as K-12 school children or particular ethnic or cultural groups?
Context, Background, and/or Literature Review
This section allows you to set the scene for your own work. It allows you to review relevant background knowledge and investigations. This section might address "What is the origin of your particular project?" and "How does your project complement or contrast with prior research." In reviewing the literature, your task is to capture the main contributions and directions taken by experts on your topic. Select those works that provide both classic and contemporary foundations for your proposed investigation. Limit the review to what is germane to your main topic. Your discussion of the literature will reveal your appreciation of the evidence that has already been published. Your job is to find or create a niche where your own project fits. That way, your readers can see how it will enrich other works that have already been published in your field.
Goals, Objectives, or Operating Hypothesis
What do you wish to explore in this scholarship? (i.e., the problem you identified in the above literature review). Please phrase your goal, objective, or hypothesis clearly and unambiguously. Explicitly state the goals for your project in language that the reviewers can understand. Why does this problem capture your attention and what do you plan to do with it? If your proposal is part of a larger, ongoing project undertaken by your mentor, what part of the larger one is identified as your idea to pursue?
Materials, Procedures, and Time Line
This section of the proposal contains the step-by-step plan of action and the schedule for conducting your research or making your artistic creation. Be sure to explain your role in the overall project, especially if your work is part of a larger one being carried out by your mentor. Depending on the topic and procedures, this section should discuss and explain in detail:
(1) the target population and sampling methods,
(2) materials required and their use,
(3) instruments and techniques,
(4) design and method for data collection or artistic creation,
(5) procedures for data analysis or critique of performance, and
(6) a reasonable schedule of steps for successful completion of your work within two semesters
All studies have inherent limitations. This section also assures the readers that you have considered these limitations, including time and scope, during the formulation of your proposal. Rejection sometimes results from readers not clearly understanding the project, its foundations, and its limits. If there is reasonable doubt as to whether particular language will be understood by the reviewers, it is wise to provide definitions and explanations. In this section you must acknowledge any special requirements needed for your project. All research and creative activities at the University of Southern Maine are subject to federal and state laws and regulations. If your research or creative activity involves human subjects; live animals; ionizing radiation; recombinant DNA, biological toxins or infective agents; highly toxic chemicals; biologically hazardous agents; and/or potent human or animal carcinogens, you will need to obtain approvals for appropriate mitigations before you begin your research. You should consult with your Faculty Mentor regarding University and other regulations relevant to your project, and the Office of Research Integrity and Outreach.
Describe the outcome of your research or creative activity. For a science or technology proposal, at what level of confidence will your research test the hypothesis that you have described? After your research what will you and others know that was not known before? What questions will be answered? What questions might arise for further study? How will you disseminate your new knowledge? For creative activity, what will you produce? How will you present the results of your creative activity?
Be sure to fully cite all works mentioned throughout your research proposal. Use the reference style that is accepted in your discipline (for example, MLA, APA, ASA). The main point is to be consistent and accurate. You may indicate citations within the text of your proposal with numbers in parentheses (1) in order to save space, but the full citations should appear in numerical order on a separate reference page according to your discipline specific style.
Budget Justification
A budget justification of no more than two pages is required. Needed items should be listed in categories that conform to University purchasing practices. Summary of these categories are listed on the second page of the cover sheet. Be careful not to make the common error of assuming that readers know why you requested the budgeted amounts in each area. Give a detailed explanation of each budget item. The total budget should not exceed $500. If other funding is necessary to complete the project, provide evidence of its source.


text:
Eric Lease Morgan author profile
Printer-friendly version
Eric Lease Morgan
Eric Lease Morgan
Head, Digital Access and Information Architecture
University Libraries of Notre Dame
University of Notre Dame
Notre Dame
Indiana, 46556
Most frequently used terms in this author's articles (ordered by total usage / articles): "sru", "search technology", "srw", "xml", "web services", "url", "soap", "oai-pmh", "data", "database". See interactive data charts for more details on all tags associated with this author.
Profile last updated:July 2004
Articles by this author
Number of Ariadne articles written (or co-written) by this author: 1.
|Tags linking to related content
An Introduction to the Search/Retrieve URL Service (SRU)
Eric Lease Morgan describes sibling Web Service protocols designed to define a standard form for Internet search queries as well as the structure of the responses.
issue40 July 2004
|api, browser, cataloguing, cql, data, database, digital library, dtd, dublin core, emory university, google, identifier, information architecture, library management systems, marc, metadata, mets, mods, national science foundation, oai, oai-pmh, oclc, perl, plain text, repositories, rss, schema, search technology, secure shell, sfx, soap, sru, srw, ssh, standards, stylesheet, telnet, university of notre dame, uri, url, vocabularies, web services, xhtml, xml, xml schema, xsl, xslt
Note: For on-going updates, subscribe via RSS feed link below.


text:
Your cart is empty.
Honeycomb Candy
Boxed Chocolates
Caramel Products
Peanut Brittle & More
Toffee-Fudge-Rocky Road
Wedding Favors-Choc Coins
Sugar Free Chocolates
E-Gift Certificates
John Snook, co-founder
BEST Chocolate Vote for Snook's
Shipping Policy
You can trust that your order will be quickly processed and safely delivered. In most cases we can ship within a day of the order, depending on the item ordered and our production schedule. We can ship products anywhere in the United States using the shipping method (US Mail priority 2-3 day delivery once shipped or [UPS depends on method chosen]) of your choice. When you place an order we will estimate delivery dates based upon the shipping method selected and your shipment's destination. Our shipping charges are determined by the total weight of your order. Please note: Warm weather shipping price includes an insulated container and a minimum 2-day shipping choice is required.
USPS Priority is the preferred method to central and eastern US states as the time in transit is 2 days from our California Factory
. P O Boxes will be shipped via United States Postal Service. New US Priority Flat Rates are available for out of state deliveries of our chocolates. East coast shipments arrive in 2 to 3 days with United States Priority Mail service. We will send you a tracking link to allow you to prepare for a perishable product delivery.
If you have shipped as a gift, please notify the recipient to be expecting a heat sensitive delivery.
In store pick-up is now an available option if you prefer to pick it up and pay the balance at that time. In the shipping drop down list choose in store pick up and give us the date of pick up. We will email a confirmation that your order is ready for pick up.
We will pack chocolates in an insulated shipper with cold pack(as pictured) to help insure temperature control.
Email Address:
You will be prompted to enter your password on the next page
Create an account
Forgot Password?
vote badge
About Snooks 1:30 min video
Eric Snook making Peanut Brittle
Chocolate & Romance Story
Chocolate enrober in action
Pumping Chocolate & A Tip
Paul & Bethany filling Heart Boxes
Secrets of Success
Sweet Family Life
Making Peanut Brittle
Chocolate Enrober in action
About Us
Contact Us
My Account
Shipping Policy
Return Policy
Privacy Policy
Cart Help
© 2015 Snooks Candies secure candy store
Powered by Network Solutions Online Store


text:
This is part 5 of the memory deep dive. This is a series of articles that I wrote to share what I learned while documenting memory internals for large memory server configurations. This topic amongst others will be covered in the upcoming FVP book. Previous parts: Part 1: Memory Deep Dive Intro Part 2: Memory subsystem … [Read more...]
Memory Deep Dive – DDR4 Memory
The Storage Field Day 7 Delegates
Tags van Technorati: SFD7,#SFD7,@TechFieldDay,Storage I […] … [Read more...]
vSphere 6 Feature Walkthroughs
Explore the features of VMware vSphere 6, the industry-leading server virtualization platform that lets you virtualize applications with confidence. vCenter Server Install - This series provides to instructions on installing various vCenter 6.0 components. vCenter Server Upgrades - Seamlessly … [Read more...]
How do I get to the next level?
Advertise here with BSAEvery week I get an email from someone asking if I can mentor them, if I can help them get to the next level, if I can help them become a VCDX, if I can explain to them what I did to progress my career. I figured I would write an article for those who wonder what I did, this is not a magic … [Read more...]
Scale Computing Adds Disaster Recovery for SMB
A few weeks ago I had the pleasure to attend a great meeting with Scale Computing at Virtualization Field Day 4 in Austin, Texas. I had met Jason Collier (@bocanuts) before at Tech Field Day Extra at VMworld US 2012. Jason has managed to build Scale Computing HC3 System into a real mature product in […] This … [Read more...]
Are you ready for the NLVMUG Usercon 2015?
The post Are you ready for the NLVMUG Usercon 2015? appeared first on viktorious.nl - Virtualization & Cloud Management. It's almost time for the 2015 edition of the NLVMUG Usercon. The NLVMUG Usercon is successor of the very successful Dutch VMUG Event, the annual meeting of the Netherlands VMware … [Read more...]
Virtual Volumes and queueing
Advertise here with BSAI was reading an article last week by Ray Lucchesi on Virtual Volumes and queueing. In that article (and podcast) Ray (and friends on the podcast) describe Virtual Volumes and the benefits they bring but also a potential danger. I have written about Virtual Volumes before and if you don't know … [Read more...]
Maximizing the Use of VMware vRealize Operations for Horizon
VMware vRealize Operations for Horizon, an extension of vRealize Operations Manager for the enterprise, enables you to monitor and troubleshoot a View virtual desktop environment. This guide introduces you to navigation of the user interface and understanding alerts and events, as well as correct setup of the tool. … [Read more...]
Application-Delivery Options in VMware Horizon 6.0
VMware Horizon can deliver applications to users through View, Workspace, or Mirage. Horizon can deliver ThinApp virtual applications, Citrix XenApp published applications, SaaS- and cloud-based applications, natively installed Windows applications, and RDSH-hosted applications.The wide choice of application-delivery … [Read more...]
Memory Deep Dive – Optimizing for Performance
This is part 3 of the Memory deep dive. This is a series of articles that I wrote to share what I learned while documenting memory internals for large memory server configurations. This topic amongst others will be covered in the upcoming FVP book. Previous parts: Memory Deep Dive Intro Memory subsystem … [Read more...]


text:
by harveymegan - 6/4/12 3:15 AM
In Reply to: this is how you transfer files between your phone and PC... by 7moon12
I have been fiddling with my Galaxy SII for weeks now, trying to figure out how to connect it to the computer and transfer files between the two. I even tried downloading the compatibility software, but nothing I tried worked. Thanks for this!