Adaptec 1737100 Programmer Manual - Page 63
'h0800, Branch Address
UPC - 760884136362
View all Adaptec 1737100 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 63 highlights
Frame Processor Architecture Name Opcode A Opcode B Opcode C Opcode D Table 5-2. Instruction Formats (Continued) Bit Number Description 3:0 CheckIpv6NextHeader - Special instruction for checking the Next Header field. The GFP recognizes 8 types of extension headers implemented in hardware, identified by the following Next Header identification number: TcpProtocolId = 8'd6; UdpProtocolId = 8'd17; HopByHopProtocolId = 8'd0; DestinationProtocolId = 8'd60; RoutingProtocolId = 8'd43; FragmentProtocolId = 8'd44; AuthentinationProtocolId = 8'd51; EncapsulationProtocolId = 8'd50; When this instruction is executed the GFP compares data at input 2 of the ALU (Next Header) with the hard coded protocol IDs, then branches to an address defined as follows: Every protocol ID has a 2bit 'Type' specified in an internal register implemented in the GFP. Type 0 protocol - Branch Address specified by Instruction[31:24]. Type 1 protocol - Branch Address specified by Instruction[39:32]. Type 2 protocol - Branch Address specified by Instruction[47:40]. Type 3 protocol - Branch Address specified by GeneralReg2[7:0]. GFP implements two 16-bit internal registers, GeneralReg1 and GeneralReg2. It can access the registers by executing a 'Write' instruction to address x80 and x81. The first register stores the 2bit 'Type' assigned to each protocol, and the second stores the branch address for Type 3 protocol. 3:0 CheckEthernetType - Special instruction for checking the Ethernet 'Type' field, then branch to one of seven possible addresses. The GFP recognizes 7 types: IPFRAMEID = 16'h0800, Branch Address = BRANCHADD[7:0] ARPFRAMEID = 16'h0806, Branch Address = GENERALREG1[15:8] RARPFRAMEID = 16'h8035; Branch Address = GENERALREG2[7:0] IPXFRAMEID = 16'h8137; Branch Address = GENERALREG2[15:8] FRAME802MAXLENGTH = 16'h05DC (IEEE 802.3 encapsulation), Branch address = DATA[7:0] VLANFRAMEID = Programmable number comes as an input to GFP, Branch address = DATA[15:8] ISLFRAMEID = One bit input, provided by external decoding logic, Branch address = GENERALREG1[7:0] 3:0 WAITFORSTARTOFFRAME - Stop the processor. Wait for assertion of STARTOFFRAME input, then branch to the address defined by BRANCHADD[7:0]. 3:0 CHECKIPV4FRAGMENTFIELD - Special command for processing the 16-bit halfword in the Ipv4 header that provides information about the frame fragmentation. This is a branch command to BranchAdd[7:0] if the frame is fragmented. 5-7