Harvard vs Von Neumann Architecture

Post on 26-Oct-2014

133 views 1 download

Tags:

Transcript of Harvard vs Von Neumann Architecture

Harvard vs Von Neumann Architecture

Program Counter• The PC holds the address of the instruction being executed.• The address of the next instruction to be executed. • After fetching an instruction, the PC is incremented automatically so that the

instructions are normally retrieved sequentially from the Program Memory.

ALU

Two Operand Operation

Single Operand Instruction

Data Movement

• You will notice that the program counter has a stack with it. This is a hardware stack and on the x14 Architecture it is 8 levels deep. Note that this is not a stack used to pass parameters. This stack can only be used to store the program counter when you jump to a sub-routine or when an interrupt occurs.

• When either of these events takes place, the current program counter plus 1 is pushed into the stack. This allows the program counter itself to be reloaded with the address of the new instruction that is to be executed.

• In the case of a jump to subroutine instruction, this address is embedded in the CALL instruction. For the case of the interrupt, the program counter is set to 0x04 which is the interrupt vector address.

• We will now follow the instruction MOVF PORTB, W through the architecture. This instruction will take the contents of PORTB and copy them into W register. You will see the opcode underneath the instruction and the most significant 6 bits of opcode defines MOVF instruction. The next bit is the destination bit, which in this case is a 0 and means we will store the results in W. The least significant 7-bits define the location of the register that we are going to get the data from that we move to W. In this case, the value is address 0x06 which is PORTB on the device we are using.

• The destination bit defines where the results of the instruction will go. Since there is only one bit, there are only two options for the destination address, either into the W register or back into the register defined in the instruction itself, in this case the File register PORTB.

• The 14 bit opcode is contained in the instruction that the program counter was pointing to, and is the information that comes out of the program bus to the instruction register.

Interrupt

• The main program is running, performing some function in a circuit, but when an interrupt occurs the main program halts while another routine is carried out. When this routine finishes, the processor goes back to the main routine again.

Byte Oriented OperationsByte instructions work on all 8 bits in the file. So a byte instruction would be followed by the appropriate file number.

NOP•Uses one instruction cycle.•Used for short time delays.

MOVWF f

• Moves contents of W register to another file register location.

• Status affected: None• Example MOVWF Temp

MOVF f,d

• f d • Moves contents of one file register to another.• Can be used to set the Zero Status bit.• Status Affected: ZExample

MOVF Temp, f

CLRF f• The contents of register ‘f’ are cleared and the Z bit

is set.• File (f) = 00000000• Status affected: Z• The CLRF f instruction clears the file that you

identify in the 7-bit file register address.

CLRW

• W register is cleared. Zero bit (Z) is set.• W = 00000000• Status affected: Z• The CLRW instruction clears the contents of the W register

to all zeros.

INCF f,df + 1 dStatus affected: ZThe Increment instruction simply increments the file by one. It is important to note that if a register with all ones in it is incremented, it will roll over to all zeros and the zero status bit will be set.

DECF• f - 1 d• Status affected: Z

The Decrement File Instruction operates the same as the Increment File Instruction except that it decrements the register by one instead of incrementing. If a register containing all zeros is decremented, it will rollover to all ones.

ADDWF f, d• W + f d• Adds the contents of W to a

File Register• Status Affected: Z

ANDWF f,d

• W AND f d• Status Affected: Z• Performs Logical AND with W and f• Can be used to mask out specific bits

The And W File (ANDWF) instruction will execute a logical AND with the contents of the W register and the file register. This command is often used when it is necessary to clear or ‘mask out’ certain bits in a register. This is done by ANDing the register with a value that has zero in the bit positions that need to be cleared

and ones in the bit positions that need to be maintained.

IORWF f, d

• W OR f d• Status Affected: Z• Executes Inclusive-OR with W and a File Register• The Inclusive OR W File instruction will perform a bit-by-bit inclusive OR function

with the W register and the F register.

XORWF f,d

• W XOR f d• Status Affected: Z• Executes Exclusive-OR with W and a File Register• Likewise, the Exclusive OR W File Instruction operates in a similar

fashion except that the function is the Exclusive OR instead of the Inclusive OR.

COMF f,d• f d• Executes a one’s compliment on a file register.• The compliment file instruction simply executes a one’s compliment

on the contents of the file register.

RRF f, d

RLF f,d

SUBWF f,d• f - W d• Subtracts the contents of W from a File Register• Two’s compliment• Status affected: C, DC, Z

DECFSZ f,d & INCFSZ f,d

The INCFSZ instruction works the same way except that the skip will not occur until the count variable goes all the way up to 255 and then rolls over to zero.

SWAPF f,d

Bit Oriented Operations• The bit instructions act on a particular bit in a file, so the instruction would

be followed by the data which specifies the file register and bit number.1. BCF2. BSF3. BTFSC4. BTFSS

BCF f,b • Clear the bit in a file F.• Status Affected: None• Operands: 0 ≤ f ≤ 127

0 ≤ b ≤ 7

BCF PORTB, 4; bit 4 is cleared in the PORTB PORTB bit 4 is cleared; bit 4 = 0

BSF f,b• Set bit in file F.• Status Affected: None• Operands: 0 ≤ f ≤ 127

0 ≤ b ≤ 7BSF PORTB, 4; bit 4 is set in the PORTB

PORTB bit 4 is set; bit 4 = 1

BTFSC f,b• Test bit in file skip if clear.• Operation: skip if (f<b>) 0• Status Affected: None• Operands: 0 ≤ f ≤ 127

0 ≤ b ≤ 7BTFSC STATUS, 2This test bit 2 in STATUS Register if it is clear then the next instruction is missed. Bit 2 is the zero bit so the program jumps if the result of an instruction was zero.

BTFSS f,b• Test bit in file skip if set.• Operation: skip if (f<b>) = 1• Status Affected: None• Operands: 0 ≤ f ≤ 127

0 ≤ b ≤ 7BTFSS STATUS, 2This tests bit 2 in the STATUS Register is set then the next instruction is

skipped.

Literal and Control Operations

• It modify files with variables or control the movement of data from one file to another.

ADDLW k• Add a numbe(literal) to W.• Operation: (W) + k (W)• Operands: 0 ≤ k ≤ 255

ADDLW 7Will add 7 to W, the result is placed in W.

ANDLW k• The contents of W are ANDed with an 8 bit number(literal). The result

is placed in W.

• ANDLW 12H• ANDLW b’00010010’• ANDLW .18

CALL k• Call Subroutine• CALL WAIT1MIN- This will call a routine (you have written) to wait for 1

min.

GOTO k• This is an unconditional jump to a specified location in the program.• GOTO SIREN

IORLW k• The contents of the W register are Ored with the file F.• The result is placed in the W register.• Status Affected: Z• IORLW 7

MOVLW k• The 8 bit literal is moved directly into W.• MOVLW .127• MOVLW b’11101100’• MOVLW 15h

RETFIE• Return from Interrupt• This instruction is used to return from an interrupt.

RETLW k• This instruction is used at the end

of a subroutine to return to the program following a CALL instruction. The literal value is placed in the W register. This instruction can also be used with a look up table.

• RETLW 0

RETURN

•This instruction is used to return from a subroutine.

SUBLW kThe contents of the W register are subtracted from a number.Operation: k – (W) (W)

XORLW k• The contents of the W register are Exclusive Ored with the literal. • If a number of the input port, indicating temperature, is the same as

the literal then the result is zero and the zero bit is set.• XORLW 67

CLRWDTThe watchdog timer is cleared. The watchdog is a safety device in the microcontroller if the program crashes the watchdog timer times out then restarts the program.Status affected: TO, PD

SLEEP• When executing this instruction the chip is put into sleep mode. The

power-down status bit (PD) is cleared, the time-out status bit is set, the watchdog timer and its prescaler is cleared and the oscillator driver is turned off. The watchdog timer still keeps running form its own internal clock.

• Status affected TO, PD