Tuesday, September 18, 2007

APPLICATION TIPS AND TRICKS

COREL TIPS
Sometimes it is hard to tell what is in store when a new piece of software arrives. Of course, everyone first looks to the list of new features to check for anything that will help their creativity and productivity. My first look at the list for Corel PHOTO-PAINT 12 had me thinking that there wasn't much to find. No, you won't find a bunch of flashy new features listed. What you will find when you look closer are some features that make it easier for you to edit images and others that automate your workflow. I'm going to concentrate on one specific new feature and the updated automation features in general. Afterwards, I'm done, I think you'll agree that Corel PHOTO-PAINT 12 offers more than initially meets the eye.

Image Editing
Users who have been using Corel PHOTO-PAINT for the last few versions have probably used the Image | Correction | Dust and Scratch command. If there is simply dust on the image, this filter works well. A few minor scratches will also get fixed. The downside to using the filter is that it affects the entire selected area, including the parts of the image that don't need to be fixed. Because there is no magic way to look behind the dust to see the real image or to know what was there before the picture got scratched, the computer tries to fill in those flawed pixels by looking at the surrounding pixels and calculating an average. The result is that some blurriness is introduced. And the more you try to fix, the blurrier it gets.

Corel PHOTO-PAINT 12 introduces a new way to fix dust and scratches called the Touch-up Brush. It uses the same technology as the Dust and Scratch filter, but you use a paintbrush to apply it directly to the areas in need of correction. Let's look at an example of using this brush to fix an old picture (Figure 1) with quite a few problem areas.







Once you have a picture ready for repair, select the Touch-up Brush from the Touch-up Tools flyout. It is shown highlighted in red in Figure 2.




A quick way to select it is to press the 7 key on your keyboard. Once

you've done this, the Property Bar will change to include settings for the Touch-up Brush, as shown in Figure 3.




Choose the nib shape, size, and the strength that you wish the tool to have. Stronger settings will have more effect on the image, but they will also introduce more blurriness, so only increase the strength if you really need it. At the far right of the Property Bar is a button that will allow you to affect not only the currently selected object, but also the background behind it. In this image, that isn't applicable as there are no objects, so the button is not applicable.

I used the default nib at a size of 15 to work on my damaged photo. I dabbed the brush on each place that needed to be repaired. Within about five minutes, the picture looked dramatically better, as shown in Figure 4.









There was one small area where I needed to use the Clone brushTool to bring in a missing color, but all other repairs were done with the Touch-up Brush. This image had been repaired in previous versions with the Dust and Scratch filter as well and required extensive use of the Clone brushTool. The results were no't nearly as good as in Corel PHOTO-PAINT 12, and they took at least three times as long to achieve.


Automation
Working in the creative field means that projects are usually pretty interesting. But that doesn't mean that there are no repetitive tasks that you have to do when editing images. Maybe there is a color correction that you have to apply a color correction to all pictures from your digital camera. Or it could be that maybe you have to go through a series of steps to create your favorite special effect. Wouldn't it be great if that whole series of tasks could be performed with a single click? Better yet, what if you could have that series of tasks applied to a hundred images at once? That is automation at its finest, and it is something that can be easily accomplished by almost any user with the tools found in Corel PHOTO-PAINT 12.

Now before any of you think that you'll need to become programmers, don't get all worked up. I'm going to walk you through a simple automation project that any user can accomplish without any programming knowledge. Admittedly, those with some programming skills can really take automation to the next level.

Pictures from an old digital camera of mine tended to have a blue tint to them. Fixing this blue tint was very easy to do by making some simple image adjustments. The problem was that it was painful to make those adjustments to a whole camera full of pictures. Rather than simply making the adjustments, I'm going to record the two steps involved in making the adjustments to a single image.

Bring up the Recorder Docker by selecting Window | Dockers | Recorder or pressing Ctrl-F3. Go ahead and open a picture that needs to be adjusted. Once the picture is open, press the Record button found at the lower right of the docker. Everything you now do will be recorded so that you can save it as a script. Step 1: I'm going to use the Image | Adjust | Color Hue command. I found that Clicking More Yellow twice, More Magenta twice, and More Red three times gets the color of the picture where I wanted it. After I clicked OK, a command appeared in the Recorder reflecting what I'ved just done. Step 2: Let's also say that we wanted to sharpen the picture a bit. For that, I'll select Effects | Sharpen | Unsharp Mask with settings of 100 for Percentage, 1 for Radius and 0 for Threshold. Again, the command will be added to the Recorder Docker. Now press the Stop button at the bottom of the Docker, and you have a script, as shown in Figure 5. The last step is to press the Save button at the top of the Docker, give the script a file name, and save it. That's it —, you're a programmer now! Remember that you aren't limited to just one or two steps;, you can just as easily save a series of 10 or 20 or more steps in the same manner.








There are several ways to run the script, but the easiest is to use the Scripts Docker, shown in Figure 6, with the script we've just recorded. The only way to bring up the docker is by using the undocumented Ctrl-F6 shortcut key. To use the script, open up a file that you want to fix, and double-click on the script in the Scripts Docker.








If you think that what you've seen so far is powerful, then you'll love seeing what can be done when we apply that same script to a whole folder full of images. Select File | Batch Process, and you'll get the dialog box shown in Figure 7.








Click Add File to add as many files as you would like to have processed. In my example, there is only one file listed. Next, click Add Script to select the scripts you want applied to the files you have selected. At the bottom of the docker, I've chosen to save the processed files as CPT files in the folder of my choice. After select got the files, selected, scripts, selected and how the file is to be saved, press the Play button and watch Corel PHOTO-PAINT 12 perform its magic. In a matter of minutes or even seconds, Corel PHOTO-PAINT 12 can do what it might take you hours to do without the help of scripts and Batch Process.

Everything I've shown you so far can be accomplished by any user with only a minimal knowledge of Corel PHOTO-PAINT 12. For Users who delve deeply into automation, you will find that several of the commands that couldn't be scripted in earlier versions will now work just fine. This is good news for all of us, since the newly fixed commands are integral to creating some of the best special effects, this is good news for all of us. Even better, users who are adept at programming can use the Microsoft Visual Basic for Applications (VBA) programming language supplied with Corel PHOTO-PAINT 12 to create some amazing add-ons. One such example of this is the Unleashed FX (http://www.unleash.com/ufx/index.asp) add-on for creating 300 different special effects for text or floating objects. Another new feature in Corel PHOTO-PAINT 12 is the ability to add these macros to a menu, toolbar, or shortcut key. Figure 8 shows a new menu with Unleashed FX 12 listed. Having the ability to customize macros into your workspace makes it easier to use these add-ons and will undoubtedly push developers to create even more useful tools.


CSS TIPS

Learn how to use CSS Styles to format text in your web site. Cool tips included.

CSS Styles are the easiest and best way of formatting text in a web site. Instead of using 'font' tags for each paragraph and cluttering your HTML code with endless font tags you can simply make a style with the a specified font type, size and color and use it throughout the site. Styles can be used in tables, rows, cells and even more interestingly it can also be used for form objects. The possibilities are endless when you use style sheets. We'll discuss the various ways you can use styles in this tutorial.

The first step is to learn how to create a style sheet

Here's how you create styles in Dreamweaver. Simply follow these steps:
  1. Open the CSS Styles palette by clicking on Window>CSS Styles
  2. Click on the '+' icon to create a new style. You'll get the pop-up box as shown on the right. Write the name of your style e.g. 'text', choose 'Make Custom Style' and click OK.
  3. Now create your own custom style giving by choosing the font type, size, weight, color etc.
    Click on Ok. You have successfully created a style. Repeat these steps to create more styles for titles, subtitles, links etc.

















Applying styles to text

Once you have completed creating your styles you can apply the style to your text. All you need to do is select the text and click on the style in CSS Styles palette.

HTML Code: While using styles you have to set a 'class' e.g. . Here, all the contents of the cell will take on the style called 'text'.


PHOTOSHOP TIPS IN CREATING FIRE TEXT

Browsing online, you can find many tutorials for creating fire effects in Photoshop. But most don’t look real. Here is a quick tutorial with a real looking result, a “text flambeau” if you will. Photoshop CS2 is the version…







  1. Create a new document using the Preset: 1024 x 768, set the Resolution at 150, and Color Mode to RGB.
  2. Press Control + I to invert your foreground and background colors. This will make your background black.
  3. Select the Horizontal Type Tool Photoshop Horizontal Type Tool.
  4. In your Type options, duplicate the following:
    Type Options
    I prefer to use a Serif font, so in this case we will use a 60 point Times New Roman that is colored white.
  5. Type in some text, such as “Hot Type!”.
  6. Select the Move Tool in the Toolbar Photoshop Move Tool.
  7. Then select Edit > Transform > Rotate 90 CCW. After doing this, if some of your text is off canvas, simply grab it and drag it back to center.
  8. Select Filter > Stylize > Wind. Photoshop will ask you to Rasterize (flatten) the type. Select OK.
  9. The Wind filter options will open. Make sure Method is Wind, and Direction is From the Right, then click OK.
  10. Now you can see the wind blowing your text.
  11. Press Control-F three times to have the wind process repeated. Now you will really see some fierce blowing. Similar to this:

    Photoshop Wind Effect

  12. Select Edit > Transform > Rotate 90 CW to bring your text back to a horizontal position.
  13. The next series of steps will utilize different layers, some with blurs and some with image adjustments.
  14. Press Control + Alt + Shift + E. This will create a new layer that has combined your text and black background.
  15. Select Filter > Blur > Gaussian Blur. In the dialog box that opens, select 2.5, then click OK.
  16. Now Select Image > Adjustments > Hue / Saturation. In the dialog box make sure the Colorize box is checked, then set your Hue and Saturation each to 40. Then click OK.
  17. Now duplicate this Layer by pressing Control + J.
  18. Then select Image > Adjustments > Hue / Saturation again. Make sure the Colorize box is unchecked this time, and set the Hue to -40. Click OK.
  19. Next, set the Mode to Color Dodge as follows:
    Photoshop Color Dodged Layer
  20. You should now see something like this:
    Color Dodged Letter H
  21. Now we want to Merge our two adjusted layers by pressing Control + E, so we will have only 3 layers remaining, like so:
    Merged Layers
  22. Now for the fun part. Select Filter > Liquify. This filter lets you push, pull, rotate, reflect, pucker and do almost any distortion you like to an image.
  23. Set your Brush Size & Pressure to 40 to begin with, then click and drag wavy strokes where you want to create fire movement.
    Liquifying the Letter H
  24. Try experimenting with different Brush sizes, pressure and density until you find your desired effect. You can always hit Control + Alt + Z to undo your changes. Once you are satisfied, click OK.
  25. Now repeat Steps 3 & 4, except this time color your font black. Then drag it and line it up/place it over your fire:
    Placing Black Text Over the Fire
  26. Now we could stop there, but it doesn’t look real enough yet. We need to make it seem like the text itself is on fire, rather than just have a background effect. This is done by creating a Vector Mask, which simply hides all or part of a layer.
  27. Make sure Layer 1 is selected in the Layers panel, then duplicate it by pressing Control + J. Now we have:
    Duplicate Layer 1
  28. Click drag Layer 1 copy to the top, above the HOT TYPE! layer:
    Drag Layer 1 copy to the top
  29. Then click the Add Vector Mask button in the Layers panel:
    Create a Vector Mask
  30. With the Mask selected on Layer 1 copy (as shown above), select the Gradient Tool Photoshop Gradient Tool then click and drag a Black to White gradient line from the bottom of the flames to the where the top of your text is.
  31. Finally, to finish, I recommend adjusting the Color Balance and the Brightness / Contrast. Go to Image > Adjustments to make any finishing touches. Our finished project:

Completed Version - Photoshop Fire Text





Tuesday, August 21, 2007

exercise 1 - pre-final

memory allocation is the allocation of memory storage for use in a computer program during the runtime of that program. It is a way of distributing ownership of limited memory resources among many pieces of data and code. Importantly, the amount of memory allocated is determined by the program at the time of allocation and need not be known in advance. A dynamic allocation exists until it is explicitly released, either by the programmer or by a garbage collector; this is notably different from automatic and static memory allocation, which require advance knowledge of the required amount of memory and have a fixed duration. It is said that an object so allocated has dynamic lifetime.
Segmentation is one of the most common ways to achieve memory protection; another common one is paging. Segmentation means that a part or parts of the memory will be sealed off from the currently running process, through the use of hardware registers. If the data that is about to be read or written to is outside the permitted address space of that process, a segmentation fault will result.
This usage should not be confused with that of the memory segments used by early x86 processor architectures.
For details of x86's implementation of segmentation in both 16-bit and 32-bit mode, please see the article on memory segments.
Segmentation is a memory-management scheme that supports this user view of memory. A logical address space is actually a collection of segments. Each segment has a name and a length. The address specifies both the segment name and the offset within the segment. The user therefore specifies each address by 2 parameters: a segment name and an offset.
Input / Output ports are Ports located on the outside of a computer that allows for an input or output device to be connected to it.

Internal registers - The AVR is a Harvard architecture 8-bit RISC single chip microcontroller (µC) which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to One-Time Programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

An interrupt vector is the memory address of an interrupt handler, or an index into an array called an interrupt vector table or dispatch table. Interrupt vector tables contain the memory addresses of interrupt handlers. When an interrupt is generated, the processor saves its execution state via a context switch, and begins execution of the interrupt handler at the interrupt vector
BIOS (pronounced [ˈbaɪoʊs]), in computing, stands for Basic Input/Output System.[1] [2]
The term is incorrectly known as Binary Input/Output System, Basic Integrated Operating System and occasionally Built In Operating System for example in Neal Stephenson's novel Snow Crash[1].
BIOS refers to the firmware code run by an IBM compatible PC when first powered on. The primary function of the BIOS is to prepare the machine so other software programs stored on various media (such as hard drives, floppies, and CDs) can load, execute, and assume control of the PC[3]. This process is known as booting up.
BIOS can also be said to be a coded program embedded on a chip that recognizes and controls various devices that make up the PC. The term BIOS is specific to personal computer vendors. Among other classes of computers, the generic terms boot monitor, boot loader or boot ROM are commonly used. Boot is short for bootstrapping.
The term first appeared in the CP/M operating system, describing the part of CP/M loaded during boot time that interfaced directly with the hardware (CP/M machines usually had a simple boot loader in ROM, and nothing else). Most versions of DOS have a file called "IBMBIO.COM" or "IO.SYS" that is analogous to the CP/M disk BIOS.

DOS (from Disk Operating System) commonly refers to the family of closely related operating systems which dominated the IBM PC compatible market between 1981 and 1995 (or until about 2000, if Windows 9x systems are included): DR-DOS, FreeDOS, MS-DOS, Novell-DOS, OpenDOS, PC-DOS, PTS-DOS, ROM-DOS and several others. They are single user, single task systems. MS-DOS from Microsoft was the most widely used. These operating systems ran on IBM PC type hardware using the Intel x86 CPUs or their compatible cousins from other makers. MS-DOS, inspired by CP/M, is still common today and was the foundation for many of Microsoft's operating systems (from Windows 1.0 through Windows Me). MS-DOS was later abandoned as the foundation for their operating systems.


An instruction set is (a list of) all instructions, and all their variations, that a processor can execute.
Instructions include:
arithmetic such as add and subtract
logic instructions such as and, or, and not
data instructions such as move, input, output, load, and store
control flow instructions such as goto, if ... goto, call, and return.
An instruction set, or instruction set architecture (ISA), is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O. An ISA includes a specification of the set of opcodes (machine language), the native commands implemented by a particular CPU design.
Instruction set architecture is distinguished from the microarchitecture, which is the set of processor design techniques used to implement the instruction set. Computers with different microarchitectures can share a common instruction set. For example, the Intel Pentium and the AMD Athlon implement nearly identical versions of the x86 instruction set, but have radically different internal designs.
This concept can be extended to unique ISAs like TIMI (Technology-Independent Machine Interface) present in the IBM System/38 and IBM AS/400. TIMI is an ISA that is implemented as low-level software and functionally resembles what is now referred to as a virtual machine. It was designed to increase the longevity of the platform and applications written for it, allowing the entire platform to be moved to very different hardware without having to modify any software except that which comprises TIMI itself. This allowed IBM to move the AS/400 platform from an older CISC architecture to the newer POWER architecture without having to rewrite any parts of the OS or software associated with it.

Data transfer instructions
Move
mov src, dest
GAS Syntax
mov dest, src
Intel syntax
Move
The mov instruction copies the src operand in the dest operand.
Operands
src
Immediate
Register
Memory
dest
Register
Memory
Modified flags
No FLAGS are modified by this instruction
Example.data value: .long 2 .text .global _start _start: movl $6, %eax # %eax is now 6 movw %eax, value # value is now 6 movl 0, %ebx # %ebx is now 0 movb %al, %bl # %ebx is now 6 movl value, %ebx # %ebx is now 2 movl $value, %esi # %esi is now the address of value movw value(, %ebx, 1), %bx # %ebx is now 0 # Linux sys_exit mov $1, %eax xorl %ebx, %ebx int $0x80
Data Swap
xchg src, dest
GAS Syntax
xchg dest, src
Intel syntax
Exchange
The xchg instruction swaps the src operand with the dest operand.
Operands
src
Register
Memory
dest
Register
Memory
Modified flags
No FLAGS are modified by this instruction
Example.data value: .long 2 .text .global _start _start: movl $54, %ebx xchgl value, %ebx # %ebx is now 2 # value is now 54 xchgw %ax, value # Value is now 0 # %eax is now 54 xchgb %al, %bl # %ebx is now 54 # %eax is now 2 xchgw value(%eax), %aw # value is now 0x00020000 = 131072 # %eax is now 0 # Linux sys_exit mov $1, %eax xorl %ebx, %ebx int $0x80
Move and Extend
movz src, dest
GAS Syntax
movz dest, src
Intel syntax
Move zero extend
The movz instruction copies the src operand in the dest operand and pads the remaining bits not provided by src with zeros (0).
This instruction is useful for copying an unsigned small value to a bigger register.
Operands
src
Immediate
Register
Memory
dest
Register
Memory
Modified flags
No FLAGS are modified by this instruction
Example.data value: .long 34000byteval: .byte 204 .text .global _start _start: movzbw byteval, %ax # %eax is now 204 movzwl %ax, value # value is now 204 movzbl byteval, %esi # %esi is now 204 # Linux sys_exit mov $1, %eax xorl %ebx, %ebx int $0x80
movs src, dest
GAS Syntax
movs dest, src
Intel syntax
Move sign extend.
The movs instruction copies the src operand in the dest operand and pads the remaining bits not provided by src the sign of src.
This instruction is useful for copying a signed small value to a bigger register.
Operands
src
Immediate
Register
Memory
dest
Register
Memory
Modified flags
No FLAGS are modified by this instruction
Example.data value: .long 34000byteval: .byte -204 .text .global _start _start: movsbw byteval, %ax # %eax is now -204 movswl %ax, value # value is now -204 movsbl byteval, %esi # %esi is now -204 # Linux sys_exit mov $1, %eax xorl %ebx, %ebx int $0x80
Move by Data Size
movsb
Move byte
The movsb instruction copies one byte from the location specified in esi to the location specified in edi.
Operands
None.
Modified flags
No FLAGS are modified by this instruction
Examplesection .code; copy mystr into mystr2mov esi, mystrmov edi, mystr2cldrep movsb section .bssmystr2: resb 6 section .datamystr db "Hello", 0x0
movsw
Move word
The movsw instruction copies one word (two bytes) from the location specified in esi to the location specified in edi.
Operands
None.
Modified flags
No FLAGS are modified by this instruction
Examplesection .code; copy mystr into mystr2mov esi, mystrmov edi, mystr2cldrep movsw; due to endianess, the resulting mystr2 would be aAbBcC\0a section .bssmystr2: resb 8 section .datamystr db "AaBbCca", 0x0

Branch instruction
A branch (or jump on some computer architectures, such as the PDP-8 and Intel x86) is a point in a computer program where the flow of control is altered. The term branch is usually used when referring to a program written in machine code or assembly language; in a high-level programming language, branches usually take the form of conditional statements, subroutine calls or GOTO statements. An instruction that causes a branch, a branch instruction, can be taken or not taken: if a branch is not taken, the flow of control is unchanged and the next instruction to be executed is the instruction immediately following the current instruction in memory; if taken, the next instruction to be executed is an instruction at some other place in memory. There are two usual forms of branch instruction: a conditional branch that can be either taken or not taken, depending on a condition such as a CPU flag, and an unconditional branch which is always taken.
Conditional Branch
(computer science) A computer instruction that will cause the proper one of two or more addresses to be used in obtaining the next instruction, depending on some property of a numerical expression that may be the result of some previous instruction. Also known as conditional branch; conditional transfer; decision instruction; discrimination; IF statement.
unconditional jump
(computer science) A digital-computer instruction that interrupts the normal process of obtaining instructions in an ordered sequence, and specifies the address from which the next instruction must be taken. Also known as unconditional transfer.

Every microprocessor has an instruction set which can perform a series of instructions (called using assembly commands). Arithmetic instructions are the subcategory of instructions that perform arithmetic operations (addition, subtraction, you know, that shit we learnt in elementary school) and also, logical operations (the heart and soul of every electronic device). Arithmetic operations are in general easily understood, but it must be mentioned that there are only two operands involved in every such operation and the result is always stored in one of the two operands. Thus, your typical addition as seen in any common programming language does not look like a=b+c but has the nature of the imperative statement:
Add A to B or rather: Add contents-of-first-register to contents-of-second-registerwhich in turn, leads to the conclusion that adding two numbers will always overwrite one of them in order to store the result. In standard Intel assembly language, arithmetic and logical operations have a syntax similar to this:add reg1,reg2which means "add reg2 to reg1"; oh never uses symbols like +-*/, etc. as in mathematics. These symbols have other uses, more important uses.
LOOPING INSTRUCTIONS
1. A method of processing loop instructions using a data processing device having a central processing unit (CPU) and a coprocessor, wherein the CPU fetches and predecodes instructions retrieved from program memory and determines whether the instructions are CPU-type or coprocessor-type, comprising the steps of: decoding the coprocessor-type instructions by the coprocessor and if a loop operation is decoded, retrieving from the program memory the instructions within the loop; storing the retrieved instructions within the loop in a loop buffer: executing at least one coprocessor-type instruction from the loop buffer by the coprocessor, and forwarding any CPU-type instructions from the loop buffer to the CPU for execution ; and inhibiting instruction fetch from the program memory while instructions within the loop are executed in a subsequent iteration of the loop.
2. The method of claim 1, further including the step of accessing the instructions within the loop from the loop buffer in a subsequent iteration of the loop. 3. The method of claim 1, further including determining a backward branch distance for use by the CPU to control branching to and from the loop. 4. The method of claim 1 further including the steps of: determining from the loop instruction a number of iterations of the loop operation; decrementing by the coprocessor the number of iterations upon completion of each loop; and signaling to the CPU the completion of the loop operation when reaching the end of the number of iterations. 5. The method of claim 1, wherein said storing step includes storing 'n' loop instructions in 'm' registers of the loop buffer and addressing the 'm' registers by log2m in least significant bits (LSBs) of a program counter which is also used for addressing the program memory, wherein n or m is any natural number and n is less than or equal to m. 6. The method of claim 5, further including the steps of accessing the instructions stored in the loop buffer through a multiplexer and controlling the multiplexer output by the log2m LSBs of the program counter. 7. The method of claim 5, wherein a first instruction within the loop is stored in one of the m registers addressed by the LSBs of the program counter. 8. The method of claim 1, further including the steps of signaling the presence or absence of an active loop instruction by a loop buffer flag in each of the 'm' registers in the loop buffer, the presence of an active instruction in a register is indicated by a preassigned signal in the loop buffer flag. 9. The method of claim 8, further including the step of accessing each flag in the loop buffer by log2m least significant bits of a program counter used for addressing the program memory. 10. The method of claim 8, further including the step of multiplexing an instruction from the loop buffer and the program memory, the multiplexing is dependent upon a presence of an active instruction signal from a loop buffer flag. 11. The method of claim 8, wherein said step of inhibiting instruction fetch from the program memory includes sending an inhibit signal to the program memory when the preassigned signal in the loop buffer flag is read and indicates the presence of an active loop instruction. 12. The method of claim 11, wherein the preassigned signal in each of said loop buffers is selectively alterable by the CPU independent of the presence or absence of an active instruction in corresponding registers. 13. The method of claim 8, further including the step of clearing the loop buffer flag when the loop operation is completed. 14. A data processing device comprising: a central processing unit (CPU) for fetching instructions from a program memory, predecoding the instructions and sending a signal (CCLK) to a coprocessor if a coprocessor-type instruction is decoded; a coprocessor for decoding the coprocessor-type instructions upon receipt of the signal (CCLK); and a loop buffer for receiving from the program memory instructions within a loop and storing the instructions within the loop when the coprocessor decodes a loop operation from the coprocessor-type instructions, wherein the instructions within the loop are retrieved from the loop buffer for execution in a subsequent iteration of the loop, and wherein the loop buffer instructions of coprocessor-type are executed by the coprocessor and the loop buffer instructions of CPU-type are forwarded to the CPU for execution. 15. The device of claim 14, wherein a disable signal is sent to the program memory for inhibiting access of the program memory while the instructions within the loop are retrieved from the loop buffer. 16. The device of claim 14, wherein the loop buffer includes 'm' registers, each having a corresponding loop buffer flag for indicating whether the corresponding register is filled with an instruction. 17. The device of claim 16, wherein the loop buffer flags are accessed by log2m least significant bits of a program counter used for addressing the program memory. 18. The device of claim 16, wherein a program memory inhibit signal is generated based on a signal read from the loop buffer flag. 19. The device of claim 14, wherein the loop buffer includes 'm' registers and the registers are addressed by log2m LSBs of a program counter used for addressing the program memory. 20. The device of claim 16, further including a multiplexer for multiplexing between the instructions retrieved from the program memory and the instructions retrieved from the loop buffer, the multiplexor being controlled by signals read from the loop buffer flags. 21. The device of claim 14, wherein the coprocessor decodes from a loop instruction a loop block size and a number of iterations of looping, and calculates a backward branch distance for use by the CPU to control branching to and from the loop. 22. The device of claim 21, wherein the backward branch distance is the loop block size minus one. 23. A data processing device comprising: a central processing unit (CPU) for fetching instructions from a program memory, predecoding the instructions and sending a signal (CCLK) to a coprocessor if a coprocessor-type instruction is decoded; a coprocessor for decoding the coprocessor-type instructions upon receipt of the signal (CCLK); and a loop buffer for receiving from the program memory instructions within a loop and storing the instructions within the loop when the coprocessor decodes a loop operation from the coprocessor-type instructions, wherein the instructions within the loop are retrieved from the loop buffer for execution in a subsequent iteration of the loop, wherein the loop buffer instructions of coprocessor-type are executed by the coprocessor and the loop buffer instructions of CPU-type are forwarded to the CPU for execution, and wherein a disable signal is sent to the program memory for inhibiting access of the program memory while the instructions within the loop are retrieved from the loop buffer.

Tuesday, August 7, 2007

DIFFERENT NETWORK TOPOLOGIES

DIFFERENT NETWORK TOPOLOGIES


Network Topology is the specific physical, logical, or virtual, arrangement of the network components and devices (nodes). Network topology is determined only by the configuration of connections between nodes. Distances between nodes, physical interconnections, transmission rates, and/or signal types are not effects in a network topology. The common types of network topology are described below.
Bus topology or Linear Topology: All nodes on the LAN are connected by one linear cable, which is called the shared medium. Every node on this cable segment sees transmissions from every other station on the same segment. At each end of the bus is a terminator, which absorbs any signal, removing it from the bus. This medium cable apparently is the single point of failure. Ethernet (IEEE 802.3) is the protocols used for this type of LAN.
Mesh topology: Devices are connected with many redundant interconnections between network nodes such as routers and switches. In a mesh topology if any cable or node fails, there are many other ways for two nodes to communicate. Full mesh topology occurs when every node has a circuit connecting it to every other node in a network. Partial mesh topology where some nodes are organized in a full mesh scheme but others are only connected to one or two in the network, is often used in real network to provide the reliability with less complexity.
Ring topology: Every network node has two branches connected to it and form a ring. If one of the nodes on the ring fails than the ring is broken and cannot work. A dual ring topology has four branches connected to it, and is more resistant to failures.
Star topology: The network nodes are connected to a central node, which rebroadcasts all transmissions received from any peripheral node to all peripheral nodes on the network, including the originating node. All peripheral nodes may thus communicate with all others by transmitting to, and receiving from, the central node only.
Tree topology: The network nodes are arranged as a tree, which resembles an interconnection of star networks in that individual peripheral nodes are required to transmit to and receive from one other node only and are not required to act as repeaters or regenerators. Unlike the star network, the function of the central node may be distributed.
A hybrid topology is a combination of any two or more network topologies in such a way that the resulting network does not have one of the standard forms. For example, a tree network connected to a tree network is still a tree network, but two star networks connected together exhibit hybrid network topologies. A hybrid topology is always produced when two different basic network topologies are connected.



















UTP
Short for unshielded twisted pair, a popular type of cable that consists of two unshielded wires twisted around each other. Due to its low cost, UTP cabling is used extensively for local-area networks (LANs) and telephone connections. UTP cabling does not offer as high bandwidth or as good protection from interference as coaxial or fiber optic cables, but it is less expensive and easier to work with.






STP
Often abbreviated STP, a type of copper telephone wiring in which each of the two copper wires that are twisted together are coated with an insulating coating that functions as a ground for the wires. The extra covering in shielded twisted pair wiring protects the transmission line from electromagnetic interference leaking into or out of the cable. STP cabling often is used in Ethernet networks, especially fast data rate Ethernets.











Fiber Optical Networks
Spawned by the fiber-optic cable technologies in the early 80's, optical networks provide a high-capacity telecommunications network based on fiber optical technologies. Optical networks address increasing bandwidth issues as well as provide a higher capacity and reduce overall costs. The first digital networks were asynchronous networks. Asynchronous is usually used to describe communications in which data can be transmitted intermittently rather than in a steady stream. As optical became more of a popular technology choice, the need for standards lead to the creation of the synchronous optical network (SONET), where SONET provided standards for line rates, coding, operations, and defined the types of network elements required.What Is Fiber Optics Technology? Fiber optics is a technology that uses glass (or plastic) threads, called fibers to transmit data. A fiber optic cable consists of a bundle of glass threads, each of which is capable of transmitting messages modulated onto light waves. Over metal cables, fiber optics provide a much greater bandwidth to carry more data, they are are less susceptible than metal cables to interference, they are thinner and lighter than metal wires, and most importantly data can be transmitted digitally (the natural form for computer data) through the use of fiber optics. Like all technologies, fiber optics has its downside. The cost of fiber optic cable is more than metal cable, making the cost for installation much greater. In addition they are more fragile than wire and are difficult to split. Fiber optics is a particularly popular technology for local-area networks. Telephone companies are steadily replacing traditional telephone lines with fiber optic cables. In the future, almost all communications will employ fiber optics.



Cable Type Data Capacity Length Connection Type

Fiber Optic 100Mbps-1Gbps 2,000 Meters ST, SC, & SMA
Fiber optic Connector
Twisted Pair:
Unshielded (UTP) 10-100Mbps 100 Meters RJ-45 IBM
Shielded (STP) 10-100Mbps 500 Meters DataConnector

Firewire 400 Mbps 700 meters







Advantage and disadvantages

UTP – 10 –100Mbps and only 100 meters maximum length
STP – 10 – 100 Mbps and has 500 meters maximum length
Firewire – 400 Mbps and has 700 meters and above
Fiber Optic cables - 100Mbps-1Gbps and has 2,000 Meters and above maximum length



ETHERNET CABLE: COLOR-CODE STANDARDS

The information listed here is to assist Network Administrators in the color coding of Ethernet cables. Please be aware that modifying Ethernet cables improperly may cause loss of network connectivity. Use this information at your own risk, and insure all connectors and cables are modified in accordance with standards. The Internet Centre and its affiliates cannot be held liable for the use of this information in whole or in part.





















T-568A Straight-Through Ethernet Cable

The TIA/EIA 568-A standard which was ratified in 1995, was replaced by the TIA/EIA 568-B standard in 2002 and has been updated since. Both standards define the T-568A and T-568B pin-outs for using Unshielded Twisted Pair cable and RJ-45 connectors for Ethernet connectivity. The standards and pin-out specification appear to be related and interchangeable, but are not the same and should not be used interchangeably.

















RJ-45 Crossover Ethernet Cable

A good way of remembering how to wire a Crossover Ethernet cable is to wire one end using the T-568A standard and the other end using the T-568B standard. Another way of remembering the color coding is to simply switch the Green set of wires in place with the Orange set of wires. Specifically, switch the solid Green (G) with the solid Orange, and switch the green/white with the orange/white.

WI-FI

Wi-Fi was originally a brand licensed by the Wi-Fi Alliance to describe the embedded technology of wireless local area networks (WLAN) based on the IEEE 802.11 standard. As of 2007, common use of the term Wi-Fi has broadened to describe the generic wireless interface of mobile computing devices, such as laptops in LANs.[citation needed] The term Wi-Fi was chosen as a play on the term "Hi-Fi", and is often thought to be an abbreviation for wireless fidelity, though the Wi-Fi Alliance no longer recognizes such. Wi-Fi and the Wi-Fi CERTIFIED logo are registered trademarks of the Wi-Fi Alliance, the trade organization that tests and certifies equipment compliance with the 802.11 standards.
Common uses for Wi-Fi include Internet and VoIP phone access, gaming, and network connectivity for consumer electronics such as televisions, DVD players, and digital cameras. In spite of media reports about possible health risks from Wi-Fi, scientific studies have failed to show a causal effect