CONFIGURABLE NETWORK INTERFACE CONTROLLER

Abstract: The present invention is directed to several aspects of a system configurable Ethernet network interface controller. In accordance with the first aspect of the invention, the configurable network interface controller performs a selective FIFO backup operation to remove unwanted data from the FIFO after it has been determined that the data is no longer wanted. The operation does not require a FIFO reset or the need to search through the bad data looking for the next good data. The bad data is removed before any more good data is written into the FIFO. In accordance with another aspect of the invention, the configurable network interface controller provides for the automatic retransmission of collided Ethernet frames from a local RAM while observing two modes of operation: (1) retransmission of as much of the frame as possible without violating latency requirements and (2) first guaranteeing the safe retransmission of the first 64 bytes and then returning to observation of the latency requirements. In accordance with another aspect of the invention, the configurable network interface controller provides a user-programmable, two-level priority arbitration mechanism. The arbitration mechanism allows users to program their own priority settings. Within a single bus cycle, the arbiter attempts to determine who the next bus owner will be, first from the user programmed register. If a clear "winner" is not found, a second "default" level decides the success to the bus. In accordance with another aspect of the invention, the configurable network interface controller provides a mechanism for observing the present states of any internal state machine of the device. This feature saves debugging time for first silicon. In accordance with another aspect of the invention, the configurable network interface controller provides a dual-function encoded chip select signal. The encoded chip select signal serves both as a chip select for multiple devices and as an identification signal to a master controller. In accordance with another aspect of the invention, the configurable network interface controller provides a multi-chip FIFO extension protocol. Utilizing this protocol, FIFOs that are physically separated (e.g., in separate chips) can be made to operate as though they are a single FIFO. In accordance with another aspect of the invention, the configurable network interface controller provides for programmed ignore bits in address matching. Thus, partial filtering is possible to allow for "don't care" bits within the address field. In accordance with another aspect of the invention, the configurable network interface controller provides for variable sized blocked address space by which it is possible to create a bus where multiple devices of different address space sizes can coexist on the same bus at the same time, the address space for each bus device being separate from the others. In accordance with another aspect of the invention, the configurable network interface controller architecture includes receive and transmit network statistics counters that support LME, MIB and RMON statistics. Because of the differences between IEEE, LME, MIB and RMON protocols, subsets of the statistics are made available.

Description: CONFIGURABLE NETWORK INTERFACE CONTROLLER BACKGROUND OF THE INVENTION 1 Field of the Invention The present invention relates to local area networks and in particular to various features of a National Semiconductor Corporation Svstem Configurable Ethernet Network Interface Controller (SCENIC™) that provides for easy implementation of CSMA/CD Local Area Networks with a flexible geneπc bus interface 2 Discussion of the Prior Art The SCENIC device descπbed below is an improvement of National Semiconductor Corporation s DP83932B Systems-Oπented Network Interface Controller (SONIC™) The features of the SONIC device are descπbed in detail in the following documents published in National Semiconductor Corporation^ Local Area Network (LAN) Databook. 1992 Edition ( 1) DP83932B Svstem-Oπented Network Interface Controller Prehmunarv Data Sheet pp 1-288 to 1-383 of the LAN Databook. (2) National Semiconductor Application Note 745 Weslej Lee. DP83932 SONIC™ Bus Operations Guide, pp 1-384 to 1 -395 of the LAN Databook and (3) National Semiconductor Application Note 746, Weslev Lee and Mike Lui. Software Dπver Programmer s Guide for the DP83932 SONIC™, pp 1-396 to 1-432 of the LAN Databook The three above-referenced publications are herebv incorporated bv reference to provide additional background information regarding the present invention U S Pat No 5.245,606, issued on September 14, 1993, to Edwin Z DeSouza and commonh - assigned herewith to National Semiconductor Corporation discloses a media access controller having a content addressable memory (CAM) architecture whereby address filtering is provided for filtering physical, group and broadcast addresses on an Ethernet network The '606 DeSouza patent is herebv incorporated bv reference to provide additional background information regarding the present invention SUMMARY OF THE INVENTION The present invention is directed to several aspects of a configurable network interface controller In accordance with a first aspect of the invention, the configurable network interface controller performs a selective FIFO backup operation to remove unwanted data from the FIFO after it has been determined that the data is no longer wanted The operation does not require a FIFO reset or the need to search through the bad data looking for the next good data The bad data is removed before anv more good data is written into die FIFO In accordance with another aspect of the invention, the configurable network interface controller provides for die automatic retransmission of collided frames from a local RAM while observing two modes of operation ( 1 ) retransmission of as much of the frame as possible without violating latenc\ requirements and (2) first guaranteeing the safe retransmission of ϋ e first 64 bvtes and then returning to observation of the latencv requirements In accordance with another aspect of the invention the configurable network interface controller provides a user-programmable two-level priority arbitration mechanism The arbitration mechanism allows users to program their own priority settings. Within a single bus cycle, the arbiter attempts to determine who the next bus owner will be, first from the user programmed register. If a clear "winner" is not found, then a second "default" level decides the successor to the bus. In accordance with another aspect of the invention, the configurable network interface controller provides a mechanism for observing the present states of any internal state machine of the device. This feature saves debugging time for first silicon. In accordance with another aspect of the invention, the configurable network interface controller provides a dual-function encoded chip select signal. The encoded chip select signal serves both as a chip select for multiple devices and as an identification signal to a master controller. In accordance with another aspect of the invention, the configurable network interface controller provides a multi-chip FIFO extension protocol. Utilizing this protocol, FIFOs that are physically separated (e.g., in separate chips) can be made to operate as though they are a single FIFO. In accordance with another aspect of the invention, the configurable network interface controller . provides for programmed ignore bits in address matching. Thus, partial filtering is possible to allow for "don't care" bits within the address field. In accordance with another aspect of the invention, the configurable network interface controller provides for variable sized blocked address space by which it is possible to create a bus where multiple devices of different address space sizes can coexist on the same bus at the same time, the address space for each bus device being separate from the others. In accordance with another aspect of the invention, the configurable network interface controller architecture includes receive and transmit network statistics counters that support LME, MIB and RMON statistics. Because of the differences between IEEE. LME, MIB and RMON protocols, subsets of the statistics are made available. A better understanding of the features and advantages of the various aspects of the invention will be obtained by reference to the following detailed description of a configurable network interface controller and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilized. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram illustrating a system that utilizes a configurable network interface controller in accordance with the present invention. Fig. 2 is a connection diagram illustrating the pin out of a configurable network interface controller in accordance with the present invention. Fig. 3 is a table that provides a pin description corresponding to the Fig. 2 connection diagram Fig. 4 is a block diagram illustrating the internal logic of a configurable network interface controller in accordance with the present invention Fig. 5 is a graphic representation of NCDI byte orientation. Fig. 6 is a timing diagram illustrating a basic NCDI bus transfer. Fig. 7 is a table that provides a description of data sizing and byte positioning for the BYTE, and BS8 signals in the disclosed embodiment of a configurable network interface controller in accordance with the present invention Fig. 8 is a graphic representation of three different address spaces on the same bus. Fig. 9 is a block diagram illustrating the connection of three different devices with different numbers of address signals on the same bus. Figs. 10-15 are five timing diagrams illustrating the multi-chip FIFO extension protocol feature of the SCENIC Fig. 16 is a block diagram illustrating the arbitration flow of the SCENIC's user programmable, low level priority arbitration system. Fig. 17 is a timing diagram illustrating bus arbitration between two bus masters in a system utilizing a configurable network interface controller in accordance with the present invention. Fig. 18 is a table that provides a description of the instruction set for a NM93C06 EEPROM. Fig. 19 is a graphic representation of the bit order of a transmitted network address. Fig. 20 is a table that provides a description of transmit PTP commands. Fig. 21 is a graphic illustrating the relationship between transmit FIFO threshold and retransmitting from the FIFO. Fig. 22 is a table that provides a description of receive PTP commands. Fig. 23 is graphic representation of a FIFO example with 64 byte threshold. Fig. 24 is a graphic representation of FIFO latency examples. Fig. 25 is a graphic representation of the SCENIC's FIFO backup operation. Fig. 26 is a block diagram illustrating a connection for an oscillator module. Fig. 27 is a timing diagram illustrating a Manchester encoded data stream. Fig. 28 is a graphic representation of a TPI squelch operation. Fig. 29 is a schematic diagram illustrating an example of a network connection diagram for a configurable network interface controller in accordance with the present invention. Fig. 30 is a table that provides a description of IO scan operation control. Fig. 31 is a table that provides a description of the general registers of a configurable network interface controller in accordance with the present invention. Fig. 32 is a table that provides a description of the transmit registers of a configurable network interface controller in accordance with the present invention. Fig. 33 is a table that provides a description of the receive registers of a configurable network interface controller in accordance with the present invention. Fig. 34 is a table that provides a description of the statistics counter registers of a configurable network interface controller in accordance with the present invention. Fig. 35 is a table that describes the Data Configuration Register (DCR) of the SCENIC device. Fig. 36 is a table that describes the Interrupt Mask Register (IMR) of the SCENIC device. Fig. 37 is a table that describes the Interrupt Status Register (ISR) of the SCENIC device. Fig. 38 is a table thai describes the EEPROM Configuration Register (EPCR) of the SCENIC device. Fig. 39 is a table that describes the Network Interface Configuration Register (NICR) of the SCENIC device. Fig. 40 is a table that describes the Transmit Network Status Register (TXSR) of the SCENIC device. Fig. 41 is a table that describes the Transmit Configuration Register (TXCR) of the SCENIC device. Fig. 42 is a table that describes the Receive Network Status Register (RXSR) of the SCENIC device. Fig. 43 is a table that describes die Receive Configuration Register (RXCR) of the SCENIC device. Fig. 44 is a table that describes the Bus Master Priority Configuration Register (BMPC) of the SCENIC device. Fig. 45 is a table Uiat describes the BOOT EEPROM Command Register (BECR) of the SCENIC device . Fig. 46 is a table that describes the Test Control Register CTCR) of the SCENIC device. Fig. 47 provides graphic representation of the CAP register relation to network address. Fig. 48 is a timing diagram illustrating bus clock timing for the SCENIC device Fig. 49 is a timing diagram illustrating the power on reset operation for the SCENIC device. Fig. 50 is a timing diagram illustrating the non-power reset operation for the SCENIC device. Fig. 51 is a timing diagram illustrating bus arbiter timing for the SCENIC device. Fig. 52 is a timing diagram illustrating bus request timing for the SCENIC device. Fig. 53 is a timing diagram illustrating a bus master write cycle for the SCENIC device. Fig. 54 is a timing diagram illustrating a bus master read cycle for the SCENIC device. Fig. 55 is a timing diagram illustrating a slave write cycle for the SCENIC device. Fig. 56 is a timing diagram illustrating a slave read cycle for the SCENIC device. Fig. 57 is a timing diagram illustrating the boot EEPROM interface timing for the SCENIC device. Fig. 58 is a block diagram illustrating a register that serves as pointer to a selected state machine in the service. DETAILED DESCRIPTION OF THE INVENTION GENERAL DESCRIPTION Fig. 1 shows a SCENIC System that is designed for easy implementation of CSMA/CD Local Area Networks with a flexible, generic bus interface. One or more SCENICs, combined with a Bus Interface (BI) chip, provides system level product differentiation and efficiency through the NCDI (Networking Control and Data Interface) bus. This generic bus can be used to interconnect up to 16 controllers to a single bus interface chip. The Bus Interface chip, or BI, would be used to interface the generic NCDI bus to a more common bus such as EISA, MicroChannel, or any proprietary bus. This provides an easy integration path for incorporating Ethernet into several different kinds of architectures where the system bus interface would be tailored to the specific architecture. In addition, the BI provides an interface between the system software and the SCENIC, eliminating the need to write software drivers specific to the SCENIC. Instead, the drivers are written specific to the BI. Many different bus interface chips can be designed to work with the SCENIC. Similarly, many different network interface controllers can be tied to the same BI In all cases where the BI is the same, the software and hardware interface to the NCDI bus do not change, even if the SCENIC or network interface controller does Along with many other features, the SCENIC can be configured to provide full duplex operation. Full duplex increases the SCENIC's maximum throughput to 20 Mbps by transmitting and receiving data simultaneously. Fig. 2 shows the SCENIC's pin out. Fig 3 provides complete pin descriptions for all of the SCENIC device pins INTERNAL BLOCK DIAGRAM The SCENIC device consists of several blocks, as shown in Fig 4 These blocks are a twisted pair interface (TPI), a Manchester encoder/decoder (ENDEC), a Media Access Controller (MAC), separate receive and transmit FIFOs and protocol blocks (all part of the Packet Transfer Block, or PTB) and a network interface which consists of the Bus Transfer and Bus Control blocks. Additionally, there is a configuration block called Bootstrap which reads an external configuration block called Bootstrap which reads an external serial EEPROM (the NM93C06 EEPROM) for configuration information such as the CAM address and the NCDI identifier codes The SCENIC MAC. ENDEC and TPI provide the ability to connect to both AU1 and TPI networks directly, as well as providing the option to use an external ENDEC The MAC unit performs the control functions for transmission and receipt of packets over TPI and AUI During transmission, the MAC unit frames information from the transmit FIFO and supplies serialized data to the ENDEC unit During recepuon, the incoming information from the ENDEC unit is deserialized the frame checked for valid reception, and the data is transferred to the receive FIFO Control and status registers on the SCENIC govern the operauon of the MAC unit The PTB MAC Interface block takes care of interfacing the MAC with the FIFOs and other parts of the SCENIC, as shown in Fig 4 The Packet Transfer Block (PTB) contains the receive and transmit FIFOs and the Packet Transfer Protocol (PTP) logic and state machines In addition to these, the PTB contains a major portion of the SCENIC registers, the mterrupt logic, and some control logic of the Network Sta stics registers The PTB is connected to the Bus Control and Bus Transfer blocks which provide the bus interface that is used to transfer the network data to and from the Bus Interface chip and the SCENIC This interface is called the Networking Control and Data Interface (NCDI) The NCDI is a geneπc interface for coupling one or more network controllers (and other peripherals) to a single bus interface chip The BOOTSTRAP block is the initialization engine for the SCENIC This block contains the logic that reads in configurauon informauon and the device's physical Ethernet address from a serial EEPROM, and uses the informauon to prepare and configure both the SCENIC and other parts of the NCDI bus The CAM block contains the single CAM location and other address matching logic The Statistics Counters block contains the EEEE 802 3 LME MIB and RMON network statistics counters FUNCTIONAL DESCRIPTION This section descπbes the SCENIC in an overview fashion The entire device architecture is covered with respect to overall function In conjunction with the Fig 4 block diagram this section contains a more detailed descπption of the SCENIC functionality A NCDI Bus Svstem Overview The Networking Control and Data Interface (NCDI) Bus is a data transfer bus used to transfer data and commands to and from one or more SCENIC devices and a bus interface chip, called the BI The BI provides the interface betw een the NCDI bus and a common or propπetarv svstem bus The BI will buffer data from each SCENIC separateh and direct it to the system bus or to another SCENIC on the NCDI bus Data coming from the svstem bus will go through the BI chip and out to the correct SCENIC Each SCENIC or the BI chip, can become a bus master B The NCDI Bus and the SCENIC The NCDI bus uses a 16 bit data path and a variable size address path There are 32 distincth selectable address spaces Each address space can be any size The size is determined b the number of address pins in a given address space which is reallv determined by the number of address pins a specific device uses The SCENIC uses an 8 bit address space for register access purposes The different address spaces are selected b\ a 5 bit identifier code made up of ID<3 0> and CS The NCDI bus can operate between 8 MHz and 16 MHz The bus speed used depends on the bandwidth needed At 10 MHz the theoretical bus throughput is 20 Mbytes per second Both 8 and 16 bit slaves are supported An 8 bit master can use the bus The SCENIC cannot operate as an 8 bit master There is a distinction between command and data cycles Tins distinction is used as part of the PTP protocol w hich is discussed below The NCDI bus is a big endian bus Hence all NCDI bus transfers w ill be made with the bvte orientation sho n in Fm *> O 95/12946 D NCDI Bus Transfers There are several different tvpes of transfers on the NCDI bus The\ are made up of read and wπte cycles, command or data C cles and 8 bit verses 16 bit cycles Each of these different cycles will be explained below The signals that distinguish the different kinds of transfer modes are RΛV, to disunguish a read versus a wπte cycle, D/C to distinguish a command or data cycle and BYTE and BS8 to distinguish between 16 bit and 8 bit transfer cycles The basic transfer is the same for all of these vaπations and is shown in the Fig 6 timing diagram Read and Wπte Cycles All data transfers on the NCDI bus take a minimum of BSCK up to a maximum determined by the BUSY signal Fig 6 shows two transfers -- a one cycle wπte operation follo ed by a read operaϋon There is one wait state in the read operation Most of the signal transitions are based off the πsmg edge of BSCK The exceptions to this are D/C. PARITY and data which can be dnven off the falling edge of BSCK Fig 6 assumes that the SCENIC has alreadv acquired the bus After doing so, the SCENIC will start the cvcle by dπvmg Address ID<3 0>, CS, R/W BYTE and BVALID of the πsing edge of BSCK CS is dnven to select the BI and ID<3 0> is dnven with the value assigned to the SCENIC that is the bus master in this cvcle For a wπte cy cle the SCENIC will dnve D/C, PARITY, PO. PI and the date off the falling edge of BSCK For a read operation these signals would be dnven by the slave It is suggested that the slave also dnve these signals off the falling edge of BSCK Dnvmg them sooner has no adverse affect If there are no wait states inserted then the SCENIC will end the cvclejust after the πsing edge of BSCK by de-asserting or changing all of its signals This is true for read or wπte cycles If the cvcle was a read cvcle then the SCENIC will also sample the data PO, PI D/C and PARITY signals on the πs g edge of BSCK Wait states are added bv the slave by asseπing BUSY The SCENIC will sample BUSY on the πsmg edge of BSCK If BUSY is low then the SCENIC will wait another c cle It is not necessary to dnve BUSY low at all if the slave does not require wait states All that is required to have 0 wait states is for BUSY to be de-asseπed and meet the set up and hold times to the πsing edge of BSCK The date size used on die NCDI bus is controlled bv three signals They are BS8, BYTE and A0 The slave dπves BS8 if it onlv suppoπs an 8 bit data size or if it would like to make an 8 bit data transfer when it suppoπs a 16 bit data path When the SCENIC transfers data to and from an 8 bit onlv slave the SCENIC must make two transfers in order to send or receive a complete word Initially, the SCENIC assumes that the slave is a 16 bit slave Hence the first transfer is made without the SCENIC knowing that the slave is an 8 bit device The SCENIC w ill sample BS8 on the πsing edge of BSCK, at the end of the first transfer to see if the slave is an 8 bit sah e If it samples BS8 low then the SCENIC will do a second transfer to the slave In the first transfer the slave receives the LSB of the word on D<15 8> but does not get the MSB on D<7 0> On die second transfer the SCENIC dπves the MSB on D< 15 8> so that the 8 bit slave can receive it The bus master CJJI also specify an 8 bit data size by dπving BYTE high In the case where the SCENIC is wπting to an .s bit slave the first of the tw o transfers will be made ith BYTE dnven low The second transfer w ill be made w ith BYTE dnv en hi eh BYTE and AO <τxc used to signifv die data size and where die data is on die data lines ( high or low bvte in die word) Fig 7 explains tl e relationship between BYTE AO and BS8 Command and Data Cycles Along with read and wπte cy cles there are also command and data cy cles Data cycles are simph cycles where data is being transieπed Command cycles are special cv cles here the data is a PTP command PTP commands are onlv addressed to the Transmit and Receiv e Net ork Poπs on the SCENIC and BI Even network controller on the NCDI bus along w ith the BI has a pair of these poπs Through the use of commands intermixed w ith data, the BI and network controllers such as the SCENIC communicate and perform tasks Command and data cycles are distinguished by the D/C signal Vs hen D/C is dnven high the cy cle ls a data cy cle When dnve low die c cle is a command cvcle As shown in Fig 6 D/C is dnven off the falling edge of BSCK the SCENIC or the BI and is sampled along with the data on the nsing edge at die end of a transfer D/C is alwavs dnven bv the device that dπv es the data Paπtv Checking (PA JTY PO, PI) The NCDI bus has data panty checking through PARITY PO and P I PO and P I indicate odd panty for D< 1 8> and D<7 0> respectiveh This means that the 9 bit combination of D< 15 8-> and PO should sum up to an odd number of bits The same is true for P I and D<7 0> PARrπ IS used to indicate that PO and PI are valid on the bus It is dm en by the current bus master dunng any wπte operation and bv the current Bus Slav e during am read operation If PARITY is not asseπed then the dev ice dπving the data does not suppσπ paπtv for this transfer All dev ices on the NCDI bus when latching data should, use PARITY to determine if or when PO and PI are valid If PARITY is not assened ϋien PO and PI should be ignored since this indicates lack of paπtv suppoπ bv die device dπving die data Valid Bus Cy cles (TJVAUD) All cycles on die NCDI bus are considered to be valid onlv if BVALID is asseπed low Invalid cy cles are used sometimes when it is necessarv to invalidate a transfer that has already staπed One example ot this is w hen the SCENIC reads an EOF command from the BI Once an EOF is read the BI has no more data in die current packet Bv the time the SCENIC interprets the EOF and realizes dial there is no more data to read a new cvcle has already been staπed This new c cle must be invalidated to prevent die BI from being confused BVALID is de-asseπed before the end of die cv cle to invalidate it If there are no bus masters currentlv using the bus then BVALID will not be dnv en low bv anv device Furthermore since the NCDI bus arbiter pulls BVALID high bv an internal pull up BVALID will remain high dunng the dead cvcle Whenever BVALID is high all dev ices on die bus ignore the bus NCDI Device Identifier Code (ID<3 ()>, CS) _ For ease of interlacing more than one SCENIC (or odier NCDI dev ice) to a suppoπing BI chip the NCDI bus has a 4 bit identifier code, ID<3 0>, used to identify up to 16 separate NCDI devices When including the CS in this code the 5 bit identifier code creates 32 separate address spaces The BI normally takes up 16 of the 32 address spaces That leaves the other 16 spaces for the network controllers such as the SCENIC on the NCDI bus Tins breakdow n is made so that each NCDI network controller can be selected individually when die BI needs to access that dev ice On the other hand when die NCDI network controller wants to access the BI the controller must tell die BI which device it is so the BI knows w here the data is coming from O 95/12946 ° LD<3 0> is dnven bv the SCENIC to die BI chip 8> identify hich SCENIC is wπung to the BI chip This is important because many of the transmit and receiv e registers are located at a common NCDI address locauon The BI chip can use d e identifier to know which SCENIC tiiat data being wπtten or read pertains to Hence the bus interface can determine which of its internal FIFOs or buffers to read or wπte d e data from or to When the BI wants to access a SCENIC, it will leave the CS signal de-asseπed and onh dnve the ID code for d e SCENIC it wants to access When using multiple SCENICs in a svstem all of the SCENIC's registers may be mapped to die same 8 bit address locations in NCDI address space The identifier acts like a chip select to die paπicular SCENIC diat die bus interface chip is accessing Thus, in accordance witii an aspect of the invention the SCENIC provides a common signal encoded chip select signal that serves both as a chip select for multiple devices and as an identification signal to a master controller That is, a pnmarv bus user v ould be able to address multiple secondary bus users bv using an encoded chip select At the same time, these encoded chips select signals can be used bv the secondary bus users to mdicate to die pπmarv bus user when thev are accessmg die pnmarv bus user and who they are Hence, the encoded ch p select funcuon is a chip select when the pnma bus user accesses the secondarv users, and an identification code when d e secondary bus users access die pnmarv bus user This is all in reference to die ID<3 0> bits on the SCENIC Normally , a chip select would be a separate signal specificallv connected to separate dev ices that are to be selected This kind of chip select requires decode logic to generate die chip set for each individual signal This also requires many signals to come from the decode logic With the encoded chip select each bus master dπves die same number of signals (4 on die SCENIC) to all the slav es In this sense, the encoded chip select is like an address, but it is different because it is specifically meant to be a chip select regardless of die address being dnven More impoπant than the ID signals being a chip select is that thev are turned around to become an identifier signal As was descπbed above, tiiere is a pπmarv bus user w hich will be called die bus interface or BI here The BI has need to specificallv select one of sev eral different secondary bus devices It uses die encoded chip select to do tins The code used to select die secondary bus device is assigned to tiiat device at an earlier time When one of die secondary devices needs to select the B I it is required that it identify to die B I w hat dev ice it is In tins case die secondary device dπv es die same identification code diat w as used to select n bv d e BI This is die code dial was assigned to it earlier Tlie BI knows diat it is being accessed because of its own address or CS signal It knows who is accessing it b\ decoding die identification signals Note diat in a bus where die BI alwavs knows that hen it is not accessing the bus anodier bus device is access the BI it is not nccessarv for die BI to decode a chip select It onlv needs to understand that it is not accessing the bus Therelore die cuπent cvcle is meant for the BI and die ID codes identify which device is accessing die BI In die case of die SCENIC a special BI chip select is used because this is not alwavs die case It ts not neccssarv diat die ID codes be 4 bits Anv number of bus required for die design w ill work the same Furdiermorc a v anation on svstems diat do require a special chip select as descπbed above for die BI can be looked upon as diough the chip select is an extra identifier bit In such a case die BI is selected b\ half of the total number of codes diat can be dπv en ( e g With 4 ID codes and a special signal for the BI dus is a 5 bit code and di ere are 32 possible code combinations of w hich die BI will be selected whenever die special chip select is asseπcd This w ill occur for half of die 12 possible codes) In this situation die identifier code is still working as a dinl I unction encoded chip select The ID code works to select the device as v\ cll as identifv the dev ice th n is dome the selectine Note that when using the SCENIC widi a BI chip that has a larger address space than S bits it may be necessary to use external decode logic to turn the SCENIC's 8 bit address ID code and CS into an address that correctly maps into the BI's address space In accordance with another aspect of the invention, the SCENIC provides for vaπable sized blocked address space by which it is possible to create a bus where multiple devices of different address space sizes can coexist on the same bus at the same time, the address space for each bus device being separate from die otiiers On me NCDI bus, it is necessary to create separate individual address spaces tiiat would co-exist on d e same bus Tlie purpose of this is so that different kinds of devices can be attached to this bus without havmg to be tied down to a specific address space Another factor is that it is not possible on this bus to place each NCDI device m die same address space, even if that address space was infinite in length since most of tiiese devices must work with d e same address to certain key registers The soluuon to this problem is to use the ID<3 0> signals of the NCDI bus to create separate address spaces that could be of any size It is also necessary to use the same bus as all other devices regardless of the address space needs of those devices, to allow common addresses to be used for certain registers and to allow different devices to be grouped together in the same address space if needed (such a controller device and its RAMO An additional advantage of this mechanism is that not all devices need to suppoπ die maximum address space needed bv some devices This creates a pm savmgs on certain chips An example of the different size address spaces is shown in Fig 8 Tl ree devices are show n Devices 1 2 and 3 Device 1 uses 12 bits of address for a 4096 bv te address space Device 2 uses 8 bits of address for a 256 byte address space Device 3 uses 18 bits of address for a 262 144 byte address space As shown in Fig 9, all three devices are connected to die same set of address signals on die bus Device 1 connects to ADDR<I 1 0> of the bus Device 2 connects to ADDR<7 0> of the bus Device 3 connects to ADDR<17 0> of the bus There are 18 address lines total on the bus and each device only uses d e number of least significant address lines that it needs Each different device on the bus is able to differentiate us address space from another bv using the ID<3 0> signals Each device is assigned a different ID code As descπbed above d e ID<3 0> signals are an encoded Chip Select which is used similar to an address to select a particular device If the device does not see its ID then it ignores the address on die bus Tins allow s die same address to be used for all devices to access similar functioning registers and functions In Fig 8 Devices 1 2 and 3 use ID<3 0> equal to 0 1 and 2 respectively Note dial each device shown in Figs 8 and 9 does not necessaπlv have to be a single device Thev can also be a svstem of components For example a controller of some kind mav have need of a RAM or ROM or the "Device" mav be a set of components diat perform a similar function that requires dial tiiev share the same address space In such a case all devices in a group must decode die ID<3 ()> signals to the same identifier Note also that it ts possible for devices in one address space to access devices in odier address spaces bv dπving die coπect ID signals (1 c ID<3 0> are an output as w ell as an input) Bus Retry (BRT) Bus Retry is used to force die SCENIC to retry the current cv cler at a later time Tins function can be used in situations where die BI chip s receive FIFO is overflowing and cannot take anymore receive data or when the BI s transmit FIFO is e ptv and cannot give am more data to die SCENIC When BRT is asseπed regardless of die state of BUSY, or a bus master preemption (die removal of die BGRANT signal to die cuπent bus master) die SCENIC will release die bus Tlie bus will be immediately requested again to cither perform the same transfer again or if diere w ere odier transfers O 95/12946 pending in the SCENIC, to perform tiiose transfers first In any case. he SCENIC will eventually request the bus and retry the transfer operation 'hat was m progress when BRT was asserted in the first place In accordance with another aspect of the invention, the SCENIC provides a multi-chip FIFO extension protocol Utilizing this protocol, FIFOs that are physically separated can be made to operate as diough they are a single FIFO. By way of background, a signal similar to d e SCENIC/BRT signal is commonly used in microprocessor busses (e.g., 80386 and 80486) to indicate that a bus error occurred. The signal is asserted by a slave device to cause the current bus master to get off the bus and re-request it again When the master gets on the bus again, it performs the same transfer operation again, hence, retrying the operation that it was attempting before. The similarity between this microprocessor bus eπor signal and tiiis aspect of the present invention is die signal alone. The difference is diat an integral part of the SCENIC bus, i.e the bus that the SCENIC uses to connect to a BI chip, is the ability to use this bus retry signal, -BRT, to create a FIFO that is larger than one chip might be able to hold The FIFO m the BI and die FIFO in the SCENIC become one FIFO because of the -BRT signal and how it works. Given a situation where one chip does not have enough FIFO space to cover its needs, a metiiod is needed to extend die size of that FIFO. This can be done using another FIFO in another device These two FIFOs can be considered independent FIFOs, except uiat the secondary' FIFO is always trying to transfer data into die pπmary FIFO. If the pπmary FIFO is not able to accept the data, it needs a protocol diat can tell die secondary FIFO to hold off and come back later This signal is called die -BRT signal on the SCENIC The SCENIC has a FIFO in it and connects to another chip called die Bus Interface or BI The BI also has a FIFO The two FIFOs are expected to work togetiier such that their combined size (die sum of the size of each individual FIFO) creates a larger FIFO without having to place the entire FIFO in a single integrated circuit (or on a single die) In die receive case, the SCENIC will continue to write data to die B I If the BI's FIFO becomes full, and die SCENIC wπtes any more data into it, then the BI's FIFO will overflow with data and cause an eπor By using die -BRT signal, die BI can request that the SCENIC stop sending data and come back later to try again This gives the BI more time to empty out its FIFO and present an overflow diat would have happened othenvisc In the transmit case, die SCENIC will continue to read data from die BI If the B I is unable to prevent die SCENIC from reading all the data from its FIFO, tiien the BI's FIFO w ill underrun and cause an eπor By using die -BRT signal, die BI can request d at die SCENIC stop pulling data from die BI and come back later to try again when the BI has had a chance to fill its FIFO more Basically, mere are two FIFOs involved One FIFO is providing data to anodier and one FIFO is in control of the process of moving data. If die FIFO diat is not in control cannot t.ike anymore data, or does not have anymore data to give, it must be able to notify d e controlling FIFO It does tiiis using die -BRT signal By following tiiis protocol, die two FIFOs can act as if thev w ere a single FIFO witii a length equal to the sum of the two FIFO's length This means that neidier FIFO w ill underrun or overflow unless bodi FIFOs reach such a condition Note that for such a protocol to work, some mediod is needed for the data to be transfeπed from one FIFO to another The method used can be made up of a bus, as in die case of the SCENIC and a BI. or other methods Also it is not necessary that the FIFO's be in physically separate chips This protocol will work if die FIFOs are on the same silicon die or in a multichip module Fig 10 shows a simulation ouφut of a transmit FIFO operation diat was aboπed using -BRT Fig 1 1 -15 show a simulation ouφut of a receive FIFO operation that was aboπcd using -BRT Each of these traces arc taken from the viewpoint of the SCENIC device For the transmit case, die SCENIC is pulling data from d e BI chip. Tlie BI will assert -BRT to tell the SCENIC diat its FIFO does not have data for die SCENIC to read. Tlie signal...busretryz is the - BRT signal. This signal shows five active low pulses representing five times that die transmit FIFO transfer was aborted. The BVALDZ signal is an active low signal that shows when a device is using the bus. It is shown low seven times. The first time is a command by die BI telling the SCENIC to start a transmit operation. The next five assertions of BVALDZ represent five attempts by the SCENIC to read data from the BI's Transmit FIFO. In all five attempts, some data is transfeπed. but the BI's FIFO uses - BRT to tell the SCENIC's FIFO diat there is no more data to read. This causes die SCENIC to re- attempt. The last assertion of BVALDZ shows that the transfer occurred normally since busretryz was not asserted. The odier signals in tiiis simulation are: BSCK e bus clock A[7:0] die address D[15:0] the data RW the read write signal where high means a read and low means a write BREQOZ the bus request signal asserted by the SCENIC to request the bus BGNTOZ die bus grant signal asserted by the bus arbiter to grant the bus to die SCENIC CSZ die chip select signal used to indicate a bus access to or from die BI IDf3:0] a 4 bit identifier code used to select the SCENIC or identify the SCENIC. For the receive case, die situation is very similar, except that the traces are more spread out. Also, in d is case, the SCENIC is trying to write data to the BI, and the BI is telling die SCENIC dial its FIFO does not have any space to accept die data that is being written. Again, several attempts are made to transfer data to die BI In many of the attempts, data is transferred, but also, in many attempts, the BI must request that die SCENIC FIFO hold onto its data until a later time while die BI makes space for die new data. These occuπences are shown by the assertion of the busretryz signal Bus Arbitration Before any transfers can occur on the bus, the bus must be acquired. This is done dirough bus arbitration. On the NCDI bus. a device requests the bus by asserting a BREQ signal and is granted die bus by a BGRANT signal. There are four external BREQ and BGRANT signals and one internal equivalent for each on die SCENIC, making a total of five possible bus masters when using the SCENIC as the Bus Arbiter. The SCENIC can be configured to operate as die active Bus Arbiter by setting die Active Bus Arbiter configuration bit in the boot EEPROM In systems with only one SCENIC, this would be die default. In systems with multiple SCENICs. one. and only one. SCENIC should have its Active Bus Arbiter configuration bit enabled. In accordance widi anodier aspect of the invention, the SCENIC provides a user-programmable priority arbitration mechanism Within a single bus cycle, the arbiter attempts to determine who die next bus owner will be first from a user-programmed register and dien. if a clear "winner" is not found, from a second level default Tlie arbitration scheme used by die SCENIC is a two level, single dead cycle implementation. The user is allowed to program the priority of each bus master dirough a user-accessible register A 3-bit priority scheme is used, tiius allowing a total of 8 priority settings per bus master A convention of 7 hex (3 one ' s) equals die lowest priority As stated above, and as show n in Fig. 16, there are two levels of arbitration used to determine "die winner" level 1 (L I ) - a set of comparators sufficient in number to handle all inputs level2 0_2 ) -a pπontv decoder that takes Lhe inputs from L I and yields a single ouφut It is this ouφut that represents the next owner of the bus Whenever a bus request is made by a bus master, the logic will inject the user-programmed priority settings into the level 1 comparators If there is no bus request pending, tiien the "lowest priority" (7 hex) will be sent instead This means mat if there are no bus requests present, each bus master priority input is bemg continuously sent the lowest setting of 7 hex If a bus request shows up, the comparators compare die injected pπoπty from die request, to whatever pπorities are cuπently sitting at d e inputs to the LI logic (comparators) The results of level 1 are sent to leve!2 whether a winner has been determined or not. The leveI2 decision-making logic bases its decisions off of die connectivity to die bus request inputs to die chip Because of tius. die level2 logic represents the "default settings" of d e arbiter The level2 priority decoder guarantees that only one ouφut will be asseπed at a time This is a necessary step in order to guarantee that only one bus master can own the bus at a time The decision from this block on which bust master should get the bus, goes to a finite state machine so that a bus grant may be awarded to the master synchronously As stated above, die round tπp for tins arbitration takes one clock cycle to complete Bus Arbiter Function There arc four bus request input signals BREQ < 3 0> and four bus grant signals. BGRANT < 3 0 > When die SCENIC becomes the active Bus Arbiter, all BREQ signals become inputs and all BGRANT signals become ouφuts For the odier SCENICs on d e bus. BREQO becomes an ouφut, BGRANTO becomes an input and BREQ < 3 and BGR NT^ 1-" are at a high impedance There are up to five NCDI Bus Masters suppoπed by the active Bus Arbiter This includes four external masters and die internal logic in die active Bus Arbiter itself Tlie Bus Arbiter controls the bus using a 5 level pπoπtv. fairness option, bus preemption, and a bus preempt counter Each of diese features are descπbed below Bus Master Prioπtv and Preemption Each possible bus master can be given its own pπoπtv w itii respect to the others Bus masters can also be given the same pπoπtv Tlie pπoπtv of each bus master is set on a per master basis using a 3 bit pπoπtv level in the Bus Master Pπoπtv Configuration Register Each bus master is allowed to own the bus for as long as it needs die bus or until it is preempted by die Bus Arbiter Bus preemption is accomplished by the Bus Arbiter de-asseπing die BGRANT signal to the cuπent bus master A bus master determines how long it needs the bus based on its FIFO tiiresholds and command transfer needs If given the oppoπunitv . a bus master can keep the bus indefinitel y However, if any other device requests the bus die dien Bus Arbiter will staπ a configurable bus time-out counter that, when it reaches zero, will preempt die current master off die bus by de- asseπing that master's BGRANT signal This timeout counter is programmed by die Bus Preempt Counter Register If Fairness is disabled dien die highest pπoπty device w ill alwavs be given the bus first even if die highest pπoπty device was die last device to request die bus If diere are multiple bus masters witii die same pπoπtv dien an inherent pπoπtv w ill take over, and die highest pnoritv device based on the inherent pπoπiv will be given die bus Note diat it generally does no good to set several devices to die same pπoπty because of dus in die case here two or more requests are made at die same time, the devices will be given die bus first based on the inherent pπoπiv Tins pπoπtv is as follows Bus Arbiter. BREQO, BREQ ! BREQ1 BREQ1 If a bus master gives up the bus an requests it again immediately (perhaps due to preemption) it will not get die bus until after the next lowest pπoπty dev ice has gone first Hence it is not possible for the highest pπoπtv device to own die bus forever since it must vield at least every odier ownership to a lower pπoπty device If there is one bus master at pπoπty 0 and tw o masters at pπoπtv 1, then when die pnoπty 0 device gives up die bus and requests immediateh it ill onlv lose control of the bus to one of the pnoπty 1 devices After one of the pπoπtv 1 devices gives up the bus die pπoπty 0 device will be given d e bus again After the pπonty 0 device is done the second pπoπty 1 device will be given the bus Bus Master Fairness With Fairness enabled, pπoπtv has no meaning as programmed in the Bus Master Pπoπty Configuration Register Any device tiiat is granted the bus ill not be allowed to use the bus again until after all odier pendmg bus requests have been serviced This means diat the Bus Arbiter will ignore the BREQ line from a bus master that has already had the bus until all other BREQ lines are either de- asserted, or bemg ignored themselves (Note that the internal BREQ line that comes from the Bus Arbiter itself is counted in this ) Bus Preempt Counter The Bus Preempt Counter is used by die Bus Arbiter to time how long a bus master is allowed to continue usmg the bus after another bus request has occurred When a new bus request occurs while another master already has the bus. the Bus Arbiter starts the Bus Preempt Counter, which counts down to 0 The counter decrements once each BSCK cvcle When die counter reaches 0 the Bus Arbiter will preempt the current bus master off die bus bv de-assemng the masters BGRANT signal The counter can be loaded with any desired value but is defaults to 40 BSCKs This gives all bus masters about 40 transfers on the bus before being kicked off It is not recommended to set tins counter below 2 BSCK's Bus Arbitration Cycles In all bus requests, the requesting bus master dπves BREQ to the Bus Arbiter Tlie Bus Arbiter samples BREQ and w ill dnve BGRANT at the start of the next BSCK Tins is shown in Fig 17 where there are two bus masters trying to use the bus In die example BREQO is a higher pπoπtv tiian BREQ l eitiier due to die pnoπtv actually' being set in the Bus Master Pπoπty Configuration Register or because by default, in a tie. BREQO wms over BREQ l given evervtiung else being the same (i e , fairness mode is enabled) Once a master owns the bus it may use the bus for as long as it needs it or until it is preempted off die bus bv die remov al of die BGRANT signal As the master uses die bus it w ill continue to hold BREQ low to show that it intends to continue using die bus When die master is finished w idi die bus it will de-assert BREQ on the πsing edge of die last transfer cv cle Tlie Bus Arbiter will notice tins immediately and de-asseπ BGRANT At that point die bus master is onlv allow ed to complete its cuπent transfer If that transfer onlv takes one BSCK (there are no w ail states) then die Bus Arbiter will dnve BGRANT low for die next bus master off the πsing edge of die end of the last transfer cvcle This tells the next bus master dial it mav occup y the bus at the start of die next cv cle (die next πsing edge after the Bus Arbiter asserted BGRANT) If diere are wait states involved in the last transfer dien die bus arbiter will wait for BUSY to be de-asserted The cv cle w here BUSY is de-asseπed becomes the last transfer and the bus arbiter w ill assert BGRANT IO die next master on die πsing edec of BSCK after die data as latched in die prev IOUS transfer In Fig 17, initially there are no bus masters on die bus At the same time. BREQO and BREQl are driven low to request the bus. Tlie Bus Arbiter grants the bus to BREQO first bv dπving BGRANTO low In this example, Bus Master 0 only wants to perform a smgle cycle, so as soon as Master 0 gets die bus. it de-asseπs BREQO to show diat tiiis is its one and only transfer The Bus Arbiter responds by de- asserting BGRANT ' Since Master 1 is still requesting the bus. the Bus Arbiter will grant die bus to Master 1 by driving BGRANT1 low j ust after die πsing edge of die end of master O ' s last transfer Tins tells Master 1 that it may occupy the bus after the next nsing edge Notice diat diere is a single dead cvcle between each bus ownership. This dead cycle allows for one bus master to high impedance us dπvers m plenty of time so as to not conflict with the next bus master Master 1 hangs on to die bus for several transfers, but eventually must be preempted off die bus since Master 0 has made anotiier bus request Fig 17 shows BGRANTl being dnven high off the rising edge of BSCK one cycle before the end of master 1 's last transfer Master 1 responds by de-asserung BREQl no later than just after the rising edge of die dead cycle If Master 1 w ants to request the bus again, it would do so by drivmg BREQl low on die πsing edge of BSCK at the end of die dead cycle. After Master 1 is off the bus. the Bus Arbiter grants the bus to master 0 agam If a wait state occurs m the last transfer for a bus master, die bus arbiter will not grant the bus to any other masters until die wait states have passed In odier words, die Bus Arbiter will only grant die bus to another bus master on the πsmg edge at die end of die last transfer which is d e same as die πsing edge of die dead cycle SCENIC and Interrupts The SCENIC has the ability to pass interrupts to die BI chip Tins is done bv die SCENIC acquiring the bus and writing the interrupt bits into an interrupt status register on die BI There is no interrupt signal from d e SCENIC to die BI because diere is not a cπtical need for tiiese interrupts to reach the BI immediately It is expected, however, diat die BI would attempt to notify die mam system or act upon the interrupt immediately upon receiving the interrupt status The interrupt status given to the BI matches that found in the Interrupt Status register on the SCENIC The contents of tiiis register are written directly to die BI chip Note diat die bit pattern of the interrupt status register is provided for information onlv There would not normally be a need to directly read or wπte to tins register on the SCENIC The interrupt status register on the BI should be designed to be a "set" onlv register from d e NCDI bus. This means that the SCENIC can only set bits in tins register bv wπtin 1 s to die register, but cannot reset bits in die register by writing O ' s It is die responsibility of die B I or the svstem software to clear interrupt bits in die Bi s interrupt status register Once the SCENIC wπtcs an interrupt to die BI, π will clear die interrupt in its own Interrupt Status Register Hence, diere is onlv one indication of an interrupt occumng Even though diere is no interrupt signal between the SCENIC and die BI interrupts will be delivered to die BI in a iimelv manner since intemipts are die highest pπoπtv bus access die SCENIC can do If a interrupt occurs in die SCENIC's Intemipt Status Register (ISR). the SCENIC will give highest pπoπty to wπting the ISR into the BI ' s interrupt register Because of latency on die bus, however. interrupts will generally not be delivered to the BI immediately This is not a problem because die interrupts the SCENIC uses are not critical lniernipis Whenever an interrupt occurs, die bit in the ISR is set dial corresponds to that interrupt The onlv time this will cause die SCENIC to wπte die ISR to die BI is if die mask bit in the Interrupt Mask Register (IMR) corresponding to that interrupt is not set In odier words if die interrupt is masked, dien when it is set in the ISR it will not be wπtten to the BI Hence the mask bits do no t preven t die bn 95/12946 from being set in die ISR. tiiey only prevent the SCENIC from writing die ISR to die BI specifically due to the interrupt that has been masked. If die bit is not masked, dien die SCENIC will write the entire ISR to die BI. including any bits that were masked. Upon doing so, all bits in the ISR will be cleared and die BI must take responsibility of acting upon the interrupts. Note that if it is designed to mask a bit that was wriπen by die SCENIC so diat the bit is not written to the BI, it must be done on the BI since die SCENIC will write die entire ISR, including bits diat have been masked on the BI. C. SCENIC Initialization Upon receiving the RESET puise, die SCENIC begins its initialization procedure. The process involves reading die EEPROM's configuration register and Etiiemet physical address and loading them into the EEPROM Configuration register and d e CAM. As a diagnostic feature, the SCENIC has two registers that can be used to access die EEPROM directly, the Boot EEPROM Command Register (BECR) and the Boot EEPROM Data Register (BEDR). BECR is used to write commands out to the EEPROM and BEDR is used to hold data diat is read or written to and from the EEPROM. These registers would generally be used to verif ' die contents of the EEPROM. but it is possible to program the EEPROM through tiiese registers Because of die limitation of reading data through a 16 bit register, complete. EEPROM reads and writes are not possible. Also, diere are safety measures to ensure diat accidental erasure or overwriting of data does not occur. This interface will always be active, even if the chip has not booted up coπectly for some reason This is die case since, if the chip does not coπectly come up, it may be necessary- to fix die EEPROM to get the chip working. Initialization EEPROM Specification The EEPROM supported by die SCENIC is a NM93C06 256 Bit Electrically Erasable Programmable Memory available from National Semiconductor Corp Other devices of a larger capacity or with different features can be used if needed, but die NM93C06 is all diat is required to fulfill tiie SCENIC's requirements. The NM93C06 is a CMOS EEPROM which is divided into 16 registers of 16 bits each This memory features a serial interface with die instruction, address, and write data input on die Data-in fDI) pin. All read data and device status is ouφut on die Daia-Out (DO) pin A low to high transition on the shift clock (SK) shifts all data in and out There are 7 instructions. They are listed in Fig. 18. Each instruction to die NM93C06 is sent serially to dirough die Dl pin on die NM93C06. Each instruction begins idi a start bit (always 1) followed by the Op Code. The Op Code is followed by an address to a particular register, or by an addition of the Op Code Finally, if it applies, the data to be written is sent There are four interface signals on die SCENIC used to access die NM93C06 EEPROM. Thev are PROMDI. for sending a serial bit stream to the EEPROM. PROMDO. for receiving a serial bit stream from the EEPROM. PROMSK. die clock used by die EEPROM and PROMCS. die chip select for the EEPROM. The NM94C06 has a maximum SK Clock Frequency of 1 MHz. Because of tiiis. the NCDI Clock is divided by 20 This will create a 500 KHz clock when die NCDI bus is operating at 10 MHz. Hence. at 12.5 MHz. die SK clock will be 625 KHz and at 16.5 MHz, die SK clock will be 825 KHz Reading of the EEPROM begins immediately after hardware reset is de-asseπed The total time needed to complete die initialization is based on die SK clock frequency This time is the time required to send a 9 bit command (the start bit plus die 8 bit command) four times to read four 16 bit registers. This is a total of 64 SK clocks for register data and 36 SK clocks for die commands At 10 MHz. tiiis time will be approximately 200 μscc Note that depending on the design it mav not be necessary to use a NM93C06 All that is required is diat the coπect information be provided to die SCENIC dirough its EEPROM interlace when the SCENIC starts up There are manv ways to accomplish this which include usmg a different kind of EEPROM or combinatonal logic The simplest interface is to use a pullup resistor to pull PROMDO high Tlus guarantees die SCENIC will be configured as die bus arbiter w ith an ID code of 1 1 1 1 (Fli) Initialization EEPROM Contents At minimum, die EEPROM will contain a 16 bit configuration register and die 48 bit physical etiiemet address for the SCENIC interface The 16 bit configuration register is found in the first register in the EEPROM, register 0 (A5-A0 = 0) The 48 bit physical network address is found in registers 1 2 and 3 (A5-A2=0, Al-A0=01, 10 and 1 1) Initialization Procedure As soon as RESET is de-asserted, die boot logic takes control of the SCENIC It does tins by asserting BOOTLOCAL to isolate the SCENIC from the NCDI bus After domg this the SCENIC will read die configuration register (register 0) from die EEPROM The contents of this register will be loaded into die EEPROM Configuration Register After configuration of die svstem based on the information m the configuration register the SCENIC ill read die tiiree network address registers 1, 2. and 3 Each register v alue w ill be loaded into die CAM Address Port (CAP) register in the CAM, EEPROM register I w ill be placed in CAPO register 2 will be placed in CAPl and register 3 will be placed in CAP2 Notice tiiat is important to load the EEPROM coπectlv For Ethernet addresses are assigned as a seπes of 6 bvtes by die IEEE An example is given below in hexadecimal numbers 12 34 56 78 9A BC When tins address is transmitted on die network die 12h will be transmitted first In fact die least significant bit of 12h will be transmitted first Hence given die example abov e die bit pattern seen on die network would be as shown in Fig 19 When loading the CAM CAP2 would be loaded itii BC9A CAPl would be leaded w idi 7856 and CAPO would be loaded w itii 3412 Hence register I would be loaded w itii 34 12 register 2 w ould be loaded w itii 7856 and register 3 would be loaded with BC9A D The Packet Transfer Protocol (PTP) The Packet Transfer Protocol (PTP) is die mam protocol used to transmit and receiv e packets on die SCENIC Tlie PTP is made up of a few simple commands used to initiate and control packe t transmission and reception Thev are split up into Transmit PIP commands and Receiv e PTP commands A PTP command is made up of a 16 bit word Bits 14- 12 make up die 3 bit PTP command opcode and bits 1 1-0 make up an optional data or attnbute field for die opcode Bit 15 is a reserved bit and should alwavs be set to 0 PTP commands can be generated by both the SCENIC and die suppoπing BI chip for bodi die receive and transmit paths Tlie SCENIC has tw o command and data poπs die Transmit Netw ork Poπ (TXNP) and die Receive Network Port (RXNP) It is necessarv for the BI chip to hav e a similar pair of registers For tins document tiiese BI registers will be called die Transmit Netw ork BI Poπ and Receiv e Network BI Poπ Tlie B I chip wπtes commands into die SCENIC Transmit Network Poπ to transmit packets or control die transmit process Tlie SCENIC would also wπte comm.inds to the B I Transmi t Net ork Poπ 95/12946 ' ' Tliere is no need for die SCENIC to write data to die Transmit Network BI Poπ. Tlie SCENIC would only-write command, or read commands and transmit data from die BI Transmit Network Port. For reception, the SCENIC would write commands and data to d e BI Receive Network Port, and the BI chip would write only commands to the Receive Network NCDI Port. In all cases, the BI or SCENIC distinguish between a command word and a data word by using die D/C signal. When D/C is asserted high, the word is data. When D/C is asseπed low. the word is a command. Each of tiiese protocols and the packet transfer process is described in the following sections. Transmit PTP and Packet Transmission The Transmit PIP commands are listed in Fig. 20. The SOF command is the only Transmit PTP command with data in the attribute field. Before these attributes can be discussed, however, an understanding of the transmit process is necessary. The Transmit Process When the BI chip needs to transmit a packet, it notifies the SCENIC by writing an SOF command to the SCENIC Transmit Network Port (TXNP). This causes the SCENIC to start reading data from the Transmit Network Port on the BI. Even though the BI starts the transmit, it is die SCENIC ' s job to get die data that needs to be transmitted. There is approximately a five cycle turn-around time between die SCENIC receiving the SOF command from the BI and the first access of the BI by the SCENIC to read transmit data, assuming that no other bus activity delays this operation. As soon as the number of bytes in the transmit FIFO is equal to the transmit FIFO threshold, the SCENIC will start transmitting the packet on the network. If an EOF is read from die BI before the number of bytes in the FIFO reaches the threshold, then the SCENIC will start transmitting immediately upon reading the EOF. The SCENIC will continue reading words from the business interface until an EOF command is read or an error occurs. After reading die EFO, die SCENIC will write the resulting status of the transmit back to the BI's transmit status port. The transmit is completed once this has been done. In order to make sure the transmit FIFO will not underrun. the SCENIC will not start transmitting to the network until it has filled the transmit FIFO to die transmit FIFO tiireshold (set by the FIFO Threshold bits in die Data Configuration Register). Transmission begins when die number of bytes in die FIFO threshold value. As the packet is transmitted, die number of bytes in the FIFO will eventually drop below die transmit FIFO threshold. When tiiis happens, die SCENIC will arbitrate for the bus and pull more packet data out of the BI chip. Tlie number of bytes transferred depends on two tilings If die SCENIC is preempted off die bus and the setting of tiie Block Mode Select (BMS) bit in the Data Configuration Register (DCR). If Block mode is selected, die SCENIC will transfer a number of bytes equal to its transmit FIFO threshold value. If Empty/Fill mode is selected, die opposite of Block mode, the SCENIC will completely fill the Transmit FIFO before giving up the bus In eitiier case, if a preemption occurs, the SCENIC will request the bus again immediately if it has not been able to bring die transmit FIFO bevond its tiireshold There is one PTP command tiiat is involved witii stopping die transmit process before it is complete, the ABORT command. ABORT, when written to die SCENIC Transmit Network Port by the B I chip, would be issued for any reason that the BI wants to abort die packet transmission (e.g.. FIFO underrun on die BI or a halt transmit from tiie system the BI connects to). After receiving an ABORT command, the SCENIC will O 95/12946 immediately flush its transmit FIFO and halt the transmission Tlie transmit status will be returned back to the B I indicatmg at d e aboπ has occurred by setting the TCC bits The ABORT command can be used to abort transmission of a packet only if data for the packet is being transfeπed from die BI chip to die SCENIC This means that ABORT from the BI is only meaningful when issued between the SOF being given to the SCENIC and die EOF being read from the BI chip. If ABORT is issued before die SOF is issued, or after die EOF has been read from the BI chip, the SCENIC will ignore the ABORT Notice that the purpose of ABORT is to tell SCENIC to stop pulling data from die BI chip It is not meant to be a means of halting the packet transmit process, although it can be used to do tins as long as EOF has not been read from the BI chip ABORT, when wnrten to the BI's Transmit Network Port by the SCENIC, is meant to tell the BI that an eπor has occurred, and die SCENIC will not be reading die rest of the current transmit packet Specifically, the eπors that cause the SCENIC to write a Transmit ABORT to the BI are a Parity error or a Transmit FIFO underrun The BI would use this command to flush its own transmit FIFO or, in some other way, dump the remainder of die cuπent transmit packet. Following ABORT, the SCENIC would write status to the BI to indicate why the packet was aboπed Note that there are other fatal transmit eπors that may cause the transmit process to be aboπed, but do not cause the SCENIC to send a Transmit ABORT to the B I These fatal eπors are Excessive Collision. Excessive Deferral and Un-retransmittable Collisions Furthermore, disabling die transmitter (or other causes that create a Cancel Accept sta s in the Transmit Status Register) or a Transmit ABORT command from die BI will not cause the SCENIC to send a transmit ABORT to the BI In all of these cases, the SCENIC will continue to pull transmit data from the BI until an EOF is found ABORT from die SCENIC during a transmit can be disabled by setting the TX ABORT Disable bit in the Transmit Configuration Register (TXCR) When ABORT is disabled, the SCENIC will not send die command to die BI chip Instead, it will continue to read die packet from the BI until an EOF is reached Status would then be returned to die BI chip ' s transmit status poπ The SCENIC's transmit FIFO is designed to handle only one transmit packet at a time. For this reason, it is not possible to queue up multiple SOF commands in die SCENIC When transmitting multiple packets back to back, as soon as the EOF command has been read from die BI chip, the BI would give die SCENIC anodier SOF command The SCENIC will hang on to that SOF until the previous packet is completely out of die FIFO At tiiat time, status will be wπttcn back to the BI and die new SOF will be acted upon bv die SCENIC Transmit Command Options The transmit SOF command has a few options for packet transmission at allow different kinds of transmit configurations to be changed on a per packet basis The bit configurations are listed in Fig 20 Each configuration option is explained in more detail below CRC Inhibit (CRC) Tlie SCENIC's Media Access Controller (MAC) normally calculates the CRC of an outgoing packet so that it can append diat value as die last 4 bytes (die FCS field) of die packet The CRCI option causes the 4 bvte FCS field not to be appended Tins is useful for transmitting packets that may already hav e a CRC value appended Automatic Transmit Paddiπe (ATP) In order to save bandwiddi on the bus. the ATP option can be used to cause die SCENIC to automatically paid runt packets out to 64 bytes in length If CRCi is enabled, then die packet w ill be padded out to 64 bvtes in length If CRCI is not enabled, dien padding will stop 95/12946 at 60 bvtes so that the CRC generated bv die MAC ill fill in die last 4 bvtes Tlie padding operation occurs m die MAC, so no FIFO space is taken up to accomplish this function Program "Out of Window Collision" Timer fPOWC) An out of window collision is a collision that occurs one slot time or 51 2 μs, after the "beginning of the packet " POWC is used to determine when the slot time begms It can be set to either the start of SFD, or the start of preamble Excessive Deferral Time Disable (EXDIS) When the SCENIC cannot transmit on the network due to excessively long network activity, the Excessive Deferral Timer can be used to cause the SCENIC to give up on the transmit When the timer is enabled the SCENIC will wait 1 6 ms before the timer times out When EXDIS is set the SCENIC will keep trying forever to transmit the packet Loopback Control (LB 1.LB0 There are three loopback modes on the SCN1C MAC, ENDEC and Transceiver loopback In all loopback modes the receiver is allowed to receive the packet that is transmitted Hence, receive and transmit activitv is occurring at the same time For MAC loopback, data is not sent from the MAC to either the internal ENDEC or external ENDEC pins Even though the mtemal ENDEC or an external ENDEC is not used in MAC loopback the transmit clock from the ENDEC (TXC) or from an external source connected to TXC must be provided Network activity such as a collision does not affect MAC loopback CSMA/CD MAC protocol is not completely followed in MAC loopback For ENDEC loopback if die internal ENDEC is used data is switched from the transmit section of the ENDEC to the receive section Data is not transmitted from die chip's AUI or TPI interfaces and external network activity is ignored The LBK signal from the MAC tells the mtemal ENDEC to go into ENDEC loopback mode If an external ENDEC is used it should operate in loopback mode when the LBK signal is asseπed CSMA CD MAC protocol is followed even though data is not transmitted from the SCENIC's AUI or TPI poπs The protocol is followed because it is possible for an external ENDEC to transmit loopback data onto a network (I e data leav es die chip via die external ENDEC interface and since the SCENIC has no control over that data CSMA CD MAC protocol must be followed) For Transceiver loopback d e internal transceiv er is disconnected from the outside network so that the loopback operation can be performed itiiout interference from tiie netw ork Since tiie transceiver normall y loops packet data back to die receiver no other switching is needed CSMA/CD MAC protocol is followed even though data does not leave die chip through either the AUI or TPI interfaces Although loopback is similar to full duplex mode (enabled bv setting the TFI bit in the Network Interface configuration register) the two operations should not be confused as being the same Full duplex mode causes the transceiv er and ENDEC to ignore collisions and not loop die transmitted packet back to the receiver (as all transceivers do) Tlie SCENIC is also not isolated from die network Loopback mode disconnects die SCENIC from tiie network and causes all transmitted packets to be looped back to die receiver Because of the differences between loopback and traffic ignore both modes should not be enabled at die same time If TFI is enabled then an attcnipi to perform a loopback transmission will be ignored Tlie packet ill be transmitted normally Transmit Eπor Indications All transmit eπors are indicated in the transmit status that is returned to the BI chip after each transmission If a packet is transmitted without ,ι tatal cπor (an eπor tiiat would odierwise cancel or aboπ die transmission) this is indicated bv the Packet Transmitted OK bit It is possible, however, to have a packet be transmitted OK. but still have some eπors These possible eπors are Out of Window Collision (OWC) Packet Monitored Bad (PMB) Carrier Sense Lost (CRSL) No Camer Sense (NCRS) Defeπed Transmission (DEF) These eπors do not necessaπly mean the packet was transmitted incoπectly. but the stams should be looked at to determine if a significant problem did occur If a fatal eπor occurs, then other bits will indicate what the fatal eπor was Fatal eπors are Transmit Parity Eπor (TXPE) Transmit FIFO Underrun (FU) Excessive Deferral (EXD) Excessive Collision (EXC) Un-Retransmittable Collision (URC) Cancel Accept (due to disabling the transmitter) Transmit PTP ABORT Command Notice that the last three fatal eπors listed are not eπors Instead, they are actually cancel and aboπ conditions These conditions are given in the status through the TCC<I 0> bits All fatal eπors will cause the transmission to be aboπed and status to be returned to die BI If the Transmit ABORT command from SCENIC to the BI is enabled (by the TXAD bit m the Transmit Configuration Register), then the SCENIC will send a Transmit ABORT to the BI. after a fatal eπor, before sending stams to the BI Otherwise, the SCENIC will continue readmg the transmit data from the BI Otherwise, tiie SCENIC will conunue reading the transmit data from the BI until an EOF is encountered This data is ignored and the status is sent to the BI after the BI after the EOF is read Automatic Retransmit on Collision The SCENIC's transmit FIFO has been designed to retransmit the beginning of a packet from the FIFO after a collision has occurred This means that the SCENIC does not have to re-request the start of the packet from the BI after every collision This is accomplished bv not allowing the start of the packet (the SOF) in the FIFO to be overwntten by new transmit data until after a certam number of bytes have been successfully transmitted on the network The number of bytes that have to be transmitted on the network before the SOF can be erased from the FIFO is determined by the Transmit FIFO Threshold and die F64R bit in the Transmit Configuration Register Normally it is suggested that the Transmit FIFO Tiireshold be set to 64 bvtes (splitting the FIFO in half) In this situation, die SCENIC will not overvvnte the SOF in the FIFO until 64 bytes have been transmitted on die network This makes it possible to retransmit the packet, after all collisions that occur dunng the first 64 bytes of die packet from the BI again If the Transmit FIFO Threshold is changed, dien die number of bytes that the SCENIC can retransmit from the FIFO changes The number of bytes diat can be retransmitted is equal to 128 - (Transmit FIFO Threshold) As die Transmit FIFO Tiireshold increases, die number of bytes die SCENIC can transmit before it will allow die SOF to be overwntten decreases This is show n in Fig 21 by the two examples of a 64 bvte tiireshold with a 64 bvtc retransmit size, and die 80 bvte tiireshold widi a 48 bv te re t ransmit size 95/12946 21 The reason tor die relationship give above is because die latency of the FIFO must alw avs be guaranteed As shown in Fig 21 if the Transmit FIFO Threshold is set to 80 bvtes then a latency of 80 bvtes must be guaranteed This can onlv be done if d e SOF is allowed to be overwritten after 48 bytes have been transmitted on die network It is possible to retain the 64 byte retransmittable packet size ev en when the FIFO threshold is greater than 64 bvtes This is accomplished bv setting die F64R bit in die Transmit Configuration Register Fig 21 shows this by the line marked "Forced 64 Bvte Mode " When the threshold is below 64 bvtes the number of bvtes retransmitted from die FIFO will be from 64 to 128 bvtes If the threshold is above 64 bvtes dien die bvtes retransmitted from the FIFO will alwavs be 64 This mode provides the advantage of a 64 bvte retransmitfable packet, but at the disadvantage of a momentary reduction of the latency in the transmit FIFO This momentarv reduction ill occur once for the first 64 bvtes of every transmit packet The purpose of the ability to automatically retransmit from the FIFO on a collision is to reduce band idtii on both die NCDI bus and the external system bus Most collisions occur within the first 64 bvtes of the packet S ce the SCENIC can retransmit the packet after these collisions w ithout using up bus bandwidth a significant savings can be seen in bus utilization The side affect of tins is that when a collision occurs tiiat cannot be retransmitted because the SOF has been ov erw ntten in die FIFO the collision becomes an Un-Retransmittable Collision (URC) In order for a packet to be retransmitted due to a collision m such a case the svstem software or BI must look at die status returned bv die SCENIC and notice tiiat the URC condition is set Upon seeing tins condition the BI must re-issue an SOF to die SCENIC to re-transπut the packet from the start Thus in accordance witii an aspect of die invention, die SCENIC provides for automatic retransmission of collided Ethernet frames from a local RAM while observing two modes of operation ( 1 ) retransmission of as much of die frame as possible witiiout v iolating latency requirements and (2) first guaranteeing the safe retransmission of the first 64 bvtes and dien returning to observation of the latency requirements Because CSMA CD is a contention based protocol collisions become a fact of life The IEEE 802 3 specification states that a legal collision mav occur w ithin the first 64 bvtes of a frame and tiiat it may be retπed a maximum of 16 times In order to retransmit a paπicuiar poπion of a frame a copv of diat trame s data must be kept somewhere There are two possibilities ( 1 ) Tlie svstem can store die data (RAM) or (2) Tlie controller can store die data local to the chip (FIFO) If die packet is stored in memory dien die protocol chip must acquire the bus and retπev e die data from memory Tins is a disadv antage should die expansion bus already be heavily loaded Tlie last dung a sv stem designer needs is to hav e a bus master use up bandw idth to retneve the same data ov er and over Tlie second option although better for die board level designer mav increase die cost of the pan due to the die si/e needed to accommodate an on-board RAM In order lor die system designer to make good use of a prospectiv e bus master that master must bπng its ow n latency into die sy stem This is tvpicallv implemented using a FIFO (on-board RAM widi queuemg logic) If the sv stem desiener needs 32 bvtes of latency . d die bus master has die ability to prov ide 128 bv tes the extra 96 bv tes of latency could be used as memory and prov ide a storage space for he first 64 b tes of an Ethernet trame In other words if die bus requires a relatively low amount of latency then it becomes possible to use anv remaining FIFO space as a local RAM It follow s then dial in a low latency sv stem a deep FIFO ( 128 bvies or greater) could satisfy tlie needs of both the sy stem designer (no ov cmins or underπins) and the netw ork (retrying a collision w ithin the first 64 bvtes of a frame) Using this method lo handle the automatic retransmission « common place in die market todav How ev er w hat is not so standard is the means to handle die worst case scenano a iiieh latencv sv stem As stated above. SCENIC has two different modes 01 operation I OΓ handling such a situation fixed 128 byte FIFO depth is assumed in this discussion In the SCENIC, if the latency of the system is high and tnc designer is unwilling to increase the size of the FIFOs, the board designer will have a choice should die bus master obey the latency 5 requirements of the system at all costs, or should it guarantee the retransmission of die first 64 bytes of a frame. This choice is made through a mode setting In Latenc y Moαe die bus master will give top priority to maintaining the latency requirements of the system Tnat is for a 128 bvte FIFO, if the board designer needs at least 32 bytes of latency, then the bus master w ouid be able to retransmit the first 128- 32 = 96 bytes of an Ethernet frame, should a collision occur Tlie proolεm w ith operating in this mode is 10 when a board designer needs, say 100 bytes of latency In this case die bus master would only be able to retransmit the first 128-100 = 28 bytes of a frame Thus by selecting the mode where bus latency requirements must always be met. the board designer may have to sacrifice die ability to retransmit all frames with legal collisions. Fig. 21 shows the relationship between the FIFO thresholds chosen and the resulting ability to retry a collided frame. 15 The second mode of operation attempts to meet the needs of botii die network and die bus This mode will guarantee die safe retransmission of the first 64 bvtes of a frame In addition, after these 64 bytes have been transmitted, the controller will then go back to the Latency mode of operation mentioned above Fig 21 shows the "retransmittable versus un-reiransmmable' boundaries Tlie graph shows that while operating in this mode, the bus master will be able to retransmit at least the first 64 bytes of a 20 frame, should a collision occur. The disadvantage of this choice is seen in the high latency system If the designer needs 100 bytes of latency in order to guarantee that die controller w ill not overrun or underrun. and the bus master is keeping a copy of the finest 64 bvtes of a frame it becomes clear that tlie latency requirements during this first 64 bytes cannot be met When consideπne die worst case scenarios, die designer must be prepared for a loss of data to occur dunng tins time peπod (due to overrun or underrun) 25 Realize that as soon as the first 64 have gone out. the bus master can offer its entire FIFO in order to hit die system ' s latency requirements Receive PTP and Packet Reception The Receive PTP commands are listed in Fig 22 Only die EOF command has data in its attnbutc field This data is a subset of die normal status dial is given 10 die B I chip s receive status poπ after a 30 packet has been received The Receive Process When a packet staπs coming in off the network, tiie SCENIC w ill staπ filling its receive FIFO with data As the FIFO fills, it will eventually pass the receive FIFO tiireshold Tie receive FIFO tiireshold is very similar to die transmit FIFO threshold except tiiat it is opposite V\ hen die receive FIFO has more 35 than tiie threshold number of bytes in it. die SCENIC will request die bus and staπ transfemng data to die BI chip The first word that is transfcπcd is an SOF command The SOF is followed by die packet data Each time die SCENIC gets on the bus to transfer data from the receiv c FIFO, it will transfer either a number of bvtes equal in tiie receive threshold, when Block Mode is set or it w ill completely emptv the FIFO, if Empty Fill mode is set (see Block Mode Select in the Data onfiguration Register) ■ *" If the SCENIC is preempted off die bus. then it will immediately request die bus aeain if the receive FIFO still has a greater number of bytes in it than the receiv e FIFO tiireshold If an ABORT command is received bv the SCENIC from die BI w hile die SCENIC is wπting received data die BI. then the SCENIC will stop sending data from die cuπcnt packet to die BI chip immediately Tlie rest of the packet will be dropped from die FIFO \π EOF command and status w ill 45 be wπtten to die BI The status will indicate that the packet w as abnπed O 95/12946 23 Unlike die transmit FIFO, die receive FIFO is designed to handle multiple packets or packet fragments at the same ume Hence, it is possible for the end of one packet, a second small packet, and die beginning of a third packet to all reside in the FIFO for example If an ABORT command is issued by the BI to abort the current packet being wπtten to the BI. the receive FIFO will look through tiie FIFO until it sees the next SOF command At diat time, it will start sending data from die new receive packet to die BI Note that an EOF and status will be sent to the BI first As the SCENIC passes a received packet to the BI. it will start witii the SOF command followed by several words of data Eventually, an SOFCS command will be sent to indicate die start of the FCS field This command would be followed by two more words and an EOF Status would dien be written into die BI's Receive Status Register If the SCENIC has been configured to pass runt packets and packets itii CRC eπors. it is possible that very small packets will be passed The smallest packet die SCENIC can receive is 2 bytes In such a case, the data sent to die BI would be an SOF command followed by a word, followed by an EOF command (tiiree transfers) Since not enough bytes were received to do a CRC check, die SOFCS command is not sent This kind of packet transfer can be depicted as follows 2 bytes SOF W, EOF Where SOF is an SOF command. W is a word of data and EOF is an EOF command Following tins nomenclature, packets of length 3 to 8 bytes would be transfeπed as follo s ( where SOFCS is an SOFCS command and B is a single byte) 3 bytes SOF W. B, EOF 4 bytes SOF, SOFCS. W. W, EOF 5 bytes SOF. B . SOFCS, W, W. EOF 6 bytes SOF. W, SOFCS, W, W, EOF 7 bytes SOF W, B. SOFCS. W, W, EOF 8 bytes SOF W W. SOFCS. W, W. EOF Tins pattern w ould continue with W and W, B being added bet een SOF and SOFCS Receive Eπor Indications All receiv e errors are indicated in the receive status diat is w πtlcn to die BI ' s receive status register at die end of each packet Tlie receive status is stored in die Receive Network Status Register, altiiough reading tins register is not recommended since these bits may change at anv time At the end of the reception of each packet die SCENIC will give status for diat packet to the BI bv vv πting die status to the B I 's Receive Netw ork Status Port Automatic Waitine for a Good Packet The receiv c FIFO has been designed to hold the packet diat w as receiv ed from die network, for a selected number ol bv tes bel orc sending it to die B I This feature has been added for die same reason as the Automatic Retransmission on collision feature, namely to reduce bus bandw iddi utilization This feature is optional depending on the setting of bit 14 in the Receive Confi euration Register If die SCENIC is configured to pass on all received runt packets bv setting bit 14 of die RXCR register to a " I " then the Automatic W iting for a Good Packet feature is no loneer applicable Tlie number ol bv tes diat will be held before being sent to the B I is equal to the Receive FIFO threshold w hich is sel ect ed in the Data Configuration Reeister For example if die Receive FIFO threshold is set at 64 bvtes, then the SCENIC will wait until 64 bvtes have been received before»sendιng die packet to the B I If packet reception has ended and less than 64 bvtes were received, then the B I will never see the activity and the management counters will be updated If packet reception has not ended and the receive threshold is exceeded, the packet will be sent to the BI so that the latenc y of the receive FIFO is guaranteed E The Transmit and Receive FIFOs The SCENIC has separate receive and transmit FIFOs which are 128 bvtes in length Tins section will explam the FIFOs in detail There are several options that can be used to control the FIFOs These options are FIFO thresholds, Block Mode vs Empty/Fill Mode, bus preemption and the Bus Retry signal (BRT) and the forced 64 bvte retransmit from the FIFO Each of these are descπbed below FIFO Thresholds The FIFO threshold is the most impoπant pan of controlling the FIFO The threshold controls when the SCENIC requests the bus to empty or fill the FIFO dunng transmit and receive operations The FIFO threshold is programmed in the Data Configuration Register bv setting tiie FT<3 0> bits These 4 bits program both the receive and transmit thresholds which are opposite of each other The Receive threshold can be in a range from 2 to 120 bvtes and the transmit threshold can be in a range from 8 to 126 bytes If the receive threshold is increased then the transmit threshold is decreased The mam purpose of die FIFO threshold is to set the latency needed by the SCENIC The required latency is d e maximum amount of time the SCENIC FIFO can wait before the FIFO underruns or overruns This is from the time the FIFO threshold is "crossed" to the time the SCENIC is allowed to start transfemng data to or from die FIFO Latency time is based on how quickly the network fills or empties the FIFO Widi the default setting of 64 bvtes. the SCENIC's FIFOs have a maximum latencv of 64 bytes times the network speed of 800 ns per bvte This calculates to be 51 2 μs Fig 23 shows an example of the receive and transmit FIFOs with the threshold set to 64 bvtes The FIFOs are shown as buckets either filling or emptying ith data as if the date were water The arrows show that the date is leaving tlie transmit FIFO to be transmitted or enteπng the receive FIFO as it is received In both cases tiie FIFO threshold of 64 bvtes has been "crossed " Notice tiiat tor the transmit FIFO the threshold has been crossed when the number of bvtes in the FIFO is less than the threshold For the receiv e FIFO the threshold has been crossed w hen the number of bvtes in the FIFO is greater than the threshold When the threshold is crossed die SCENIC w ill request tiie bus to either fill tlie transmit FIFO or empty tiie receiv e FIFO With a 64 bvte threshold if the time between tiie threshold being crossed to when the SCENIC starts transfemng data is greater than 51 2 μs, then the FIFO w ill overrun or underrun If more latencv is needed dien die threshold needs to be changed If for example the tiireshold is changed to 48 bvtes for die receive FIFO which is an 80 bvte tiireshold for the transmit FIFO then tiie FIFOs would look as thev do in Fig 24 In such a case the latency is 64 μs Notice in Fig 24 thai ev en though the receive FIFO threshold is 48 die latencv is still 80 bv tes for both the receiv e and transmit FIFOs The transmit FIFO tiireshold is alwavs 128 minus die receive threshold Tlie latencv is alwav s equal to die transmit tiireshold and is die same for bodi FIFOs It is desired that die transmit FIFO constantly be full and die receiv e FIFO constantlv be cmptv With a latency of 80 bvtes tiie SCENIC w ill alwavs attempt to keep greater than 80 bvtes in the transmit FIFO or less tiian 48 bvtes in tiie receiv e FIFO Tins guarantees tii.it the transmit FIFO will not undemin unless more than 80 bvtes are transmitted or die receive FIFO w ill not overrun unless more than X0 bv tes are received from the time the respective threshold is crossed to die time die SCENIC starts transfemng data across the NCDI bus Note that in the discussion above die threshold was refeπed to as being ' crossed ' For the transmit FIFO, bemg crossed means when the number of bvtes in the FIFO is less than the threshold For the receive FIFO, being crossed means when the number of bvtes m tiie FIFO is greater than or equal to tiie threshold In all explanations of the transmit FIFO it is said to be 127 bvtes in length There is a 2 b y te holding register between the FIFO and die NCDI BI logic that effectivel y makes the Transmit FIFO 130 bytes in length This means that the transmit FIFO actually has 68 bates of latency instead of 64 bytes, when the transmit tiireshold is set to 64 The extra t o bvtes of latency however, are canceled out by the 2 bytes used to hold die transmit SOF command so the end result is tiie same (I e , it takes 68 bytes of data in the FIFO, which includes an SOF and 64 bvtes of packet data to transmit 64 bvtes of data on the network) For this reason, and for ease of explanation all the discussions on the transmit FIFO assume that it is only 128 bvtes The extra 2 bytes should ho ever be taken into consideration when doing critical latencv calculations Block Mode v Emptv/FiH Mode When die Block Mode Select (BMS) bit in die Data Configuration register is set to Emptv/Fill mode then whenever die SCENIC transfers data into die transmit FIFO or out of the receiv e FIFO it will completely fill or empty the FIFO in one bus ownership if allowed to (ι e d e SCENIC is not preempted off the bus) This is die default mode of the SCENIC When Block mode is set, the SCENIC will alwavs transfer a number of bytes into or out of the FIFO that is equal to the receive threshold (or 128 minus the transmit threshold) Block mode is based on the idea that if the SCENIC gained ownership of die bus immediately upon crossmg a tiireshold and it could transfer data instantly it would only need to transfer a number of bvtes equal to the receive threshold or 128 minus the transmit threshold to completely emptv the receive FIFO or completely fill the transmit FIFO In the case shown in Fig 23 48 bvtes are all that is needed to "top off the transmit FIFO or emptv out the receive FIFO from the dotted tiireshold line show n This is vvhv the block size for Fig 23 is 48 bvtes Obviously the SCENIC does not gain access to die bus immediately Also since it takes time to transfer data on the bus tiie transmit FIFO w ill continue to loose data to the network while it is being filled from die bus Tlie same is true for the receiv e FIFO except that it w ill gam data from die network as it is emptied to tlie bus Block mode is provided as a means of regulating die time die SCENIC spends on die bus Bus Preemption and Bus Retry When die NCDI bus is activ e it may be unlikely tiiat the SCENIC w ill be allow ed to transfer a complete block size or to completely fill or emptv the FIFO The SCENIC w ill often be preempted off die bus first (depending on die v alue programmed in die Bus Preempt Counter) Along widi bus preemption it is also possible that the SCENIC w ill not be able to complete a block transfer due to a bus retrv occumng Botii of these situations affect die latencv of the NCDI bus and must be considered w hen configuπng die SCENIC or designing a BI"to die NCDI bus If die Bus Preempt Counter is set to a b te count diat is less than the block si e set bv the FIFO tiireshold dien die SCENIC mav hav e to acquire die bus two or more times to bπng a transmit FIFO to a point abov e it threshold or a receiv e FIFO to a point below its threshold 95/12946 Tlie latency does not chance much but it does increase bv the extra ov erhead inv olved in changing die bus masters Trus means extra dead cvcles A bus retry is not as easv to control since usually a bus retrv is a result of die BI's inability to provide or accept data When a bus retry occurs the device that received die bus retry signal mav have to wait a full peπod of maximum latencv before it can attempt to transfer data again Because of this, it is suggested that bus retry only be used to prevent a FEFO overrun or undemin m the BI If the BI is going to loose data due to a FIFO problem it w on t hurt to trv to save that data bv asking the SCENIC for a little more time Sometimes die SCENIC w ill loose the data instead Often however the packet w ill be saved Forced 64 Bvte Retransmit from die FIFO Th s mode is programmed bv the F64R bit in the Transmit Configurauon Register Setting tins mode has a significant affect on the maximum latencv the SCENIC can handle Refe ng back to Fig 21 normally if the transmit threshold is increased the maximum latencv the transmit FIFO can handle is also increased For die 80 bvte threshold example shown the latency is 64 μs This latencv is created because die SCENIC will alwavs trv to keep 80 bvtes in the transmit FIFO Whenever the number of bvtes in the FIFO drops below 80 bvtes die SCENIC has 64 μs to put more data in the FEFO or an underrun will occur When the forced 64 bvte mode is enabled it is impossible for the SCENIC to guarantee that there will alwavs be 80 bv tes in the FEFO waitmg to be transmitted because 64 of the bvtes in the FIFO cannot be erased until after tiiev have been transmitted Tlus means tiiat for the first 64 bytes of eve transmit packet the latency is 51 2 μs not 64 μs If the full 64 μs are needed ev ery time die transmit threshold is crossed dien it is not a good idea to use die forced 64 bvte mode since many transmit packets will end in a FIFO underrun If there is some latencv v anabihtv or occasional lost transmit packets can be tolerated dien the forced 64 bvte mode will prove to be v erv useful In accordance widi anotiier aspect of die invention die SCENIC also prov ides a mechanism for removing unwanted data from a FIFO once it has been determined tiiat the data is no longer wanted One problem w itii a FIFO is tiiat if vou get good data enters into the FIFO followed by bad data and a FIFO reset is normally used to clear die FIFO of bad data then a FIFO reset cannot be performed on die bad data until die eood data has left the FIFO Often before tins happens more good data enters the FIFO follow ing tiie bad data Hence a FIFO reset still cannot be performed It now becomes necessary to get πd of die bad data in anodier way which usually takes up clock cy cles while the logic looks through the bad data to find the staπ of good data In some conv entional interface controllers die tail end of a good packet w ould be in die FIFO Tins tail end would be followed bv a shoπ packet that was not wanted Normally w hen tiiese unwanted packets enter die FIFO die FIFO is simply reset to get πd of diem In die case w here the tail end of a good packet is in the FIFO die FIFO can t be reset until die tail end of the good packet is gone from die FIFO At diat time it would be ok to reset die FIFO Sometimes howev er before the tail end of die good packet left the FIFO die start of anodier good packet would enter die FIFO At tins point it is not possible to reset die FIFO because the beginning ol a desirable packet ould be lost A solution to die problem descπbed above is to do a "FIFO Back Tins means that w hen a block of data starts in a FIFO die starting position of diat data is kept in a holding register Fig 25 shows this as an aπow pointine to SOF .and the note sav ing Sav e tins PTR " Notice diat the ' Read PTR is w here die FIFO is being read (emptied) and die Wπte PTR is w here data is being w ritten into die FIFO Tlie text "EOF' represents the end of die data being read from the FIFO Tins is eood data Tlie 'SOF represents die beeinnin ol d m bcine πttcn to the FIFO The holding rceistcr that sav es the location ol 95/12946 27 the "SOF" is kept until the data being wπtten to die FIFO is considered to be good (or rather until the next block of data starts to come in) If, dunng the process " of loading this block of data mto the FIFO it is discovered that the data is bad, then the FIFO Back operation is performed The FEFO wπte pointer is set equal the value of the holding register (which points to the "SOF") This is the beginmng of the bad data block This operation effectively removes the bad data from the FIFO After the wπte pointer is changed writing the FEFO stops until a new set of data amves Note that in this case, the data is made up of specific packets of network data where one packet may be rejected for one reason or another Waiting for new data means to wait for the next packet to be received The problems descπbed above with the older method of implementing a FEFO are solved because the wπte pointer has been backed up to where it started for the cuπent set of data This has made it possible to flush the bad data out of the FEFO without having to do a FIFO reset If the start of the bad block of data has already left the FIFO then it is ok to do a FIFO reset Instead of doing a FIFO reset, FEFO Back can still be used as long as the holding register is moved with tiie read pointer Whenever the SOF is read from the FIFO, the holding register and the read pointer will be equal When this happens the holding register would start to move with the read pointer Or, said another way a flag would be set to indicate that the holding register is no longer valid because the SOF has left the FIFO The flag indicates that it is ok to do a FIFO reset or if a FIFO Back operation is performed the wπte pointer must be equal to the read pointer not the holding register Note tiiat SOF and EOF are not a part of die FIFO Back function Thev are used on the SCENIC, but are not necessarv for the FIFO Back operauon to work It is onlv necessarv that the holding register point to the first FIFO row that contains the beginning of a block of distinct data tiiat might be removed from die FIFO In the case of the SCENIC, the distinct blocks of data are net ork receive packets and each receive packet is preceded bv an SOF and followed bv an EOF F Network Statistics Counters In accordance with anodier aspect of the invention the SCENIC is capable of supporting both the IEEE 802 3 Laver Management Enhancement (LME) statistics as required in ANSI EEE Std 802 3 Section 5 0 Laver Management and die specifications required bv "Management Information Base for Network Management of TCP/IP-based internets MIB-1 1 " (MIB) as defined in RFC1213 and "Remote Networking Monitoπng Management Information Base" (RMON) as defined in RFC12" 7 ] Both MIB and RMON are a part of die Simple Network Management Protocol or SNMP Because of tlie vanous differences between die IEEE LME statistics MIB and RMON a subset of statistics are available from the SCENIC which can be combined in order to be compliant to these standards This document is not meant to be a tutoπal on IEEE LMB MIB or RMON specifications Where necessarv explanations of the statistics needed for each of tiiese standards are given Refer to tiie appropπate IEEE and RrC documents to understand these standards completely Also since MIB and RMON are still in fiux it is not guaranteed tiiat die SCENIC will be fullv compliant w ith future rev isions of MIB (bevond MIB-1 1 and RMON as explained in RFC 1271 and RFC1213) Minor changes to tiiese standards how ev er should be supported bv the SCENIC s subset of statistics Accessing the Network Statistics Registers Tlie network statistics counters arc all greater than 16 bits wide Thev arc accessed bv reading registers Because of the si/e of the counters tiicv must be read bv reading tw o 1 <> bit registers consecutively Each statistics counter takes up the space of a 32 bit register This means at thev take up two 16 bit address locations Hence t o 16 bit register reads are required to read die contents of a smgle statistics counter The pair of addresses for each counter are listed m the counter's descπption There are two wavs to read die counters The first method is to simpl y read diem In either method, when the counters are read tiiev are automatically cleared after thev are read It is suggested that the lower word of the counter be read first followed bv d e upper word This is because the lower and upper words of the counter are cleared on a word basis when thev are individuall y read, not when both words have been read The second metiiod for reading the statisucs counters takes a snapshot of all the counters at the same time and will cause them to be automaucallv cleared after they are read This metiiod involves freezing the counters usmg the Receive PTP command STATS with the Freeze attribute, reading the counters, and then unfreezing them usmg the Receive PTP command STATS with the Unfreeze attribute Alternatively, the Freeze Statistics bit in the Data Configuration Register can be used to freeze and unfreeze the counters Freezmg the counters prevents them from incrementing which prevents them from counting network events After all the counters have been read (that need to be read), it would be necessarv to unfreeze the counters m order to start collecting network statistics again Unfreezing the counters will clear all counters even the ones that have not been read Therefore if the user does not want any information to be lost on anv paπicular counter and the counters have been frozen the user must read that panicular counter before unfreezing the counters The mam difference between freezmg the counters and not is that freezmg them allows a snapshot of all the counters to be taken at the same time Each counter is frozen at the same time and hence the counters stopped incrementing at the same time This allows time sensitive statistics gathering to be done and makes it possible to combme different statistic counters to obtain different information witii 100% accuracy This accuracy is howev er at the expense of losmg information while the counters are frozen Freezing the counters is reallv meant for a stop watch type of network statistic gatheπng where it is desired to gather 100% accurate statistics dunng a given peπod of time When die counters are read without freezmg them it is not possible to gam 100% accuracy when combining the information from one counter to another because between reading die two counters one or both of them mav have incremented If tins happens then tiie combination of the two counters is in eπor bv a smgle event It is not possible change anv of the counters bv vvπting to them Hence thev cannot be loaded widi a specific value and the onlv wav to clear them aside from software or hardware reset is to unfreeze them or read tiiem while unfrozen Receive Network Statistics Counters The Receive Network Statistics Counters collect all statistics that peπain to network data Before the receive statistics counters can be explained some clanfication of the meaning of ceπain network occuπences must be made Eπor Conditions and Packet Retection There are several situations diat can cause an eπor or rejection of a packet being received from the network These eπors are listed below witii a definition of die eπor and ho it applies to the SCENIC Runt - A packet that is receiv ed w ith a length less than 64 bv tes Tins includes all bvtes received after the Start of Frame Delimiter is received The SCENIC can be configured to reject or accept run packets In anv case if at least one bv te is not received (8 bits) die packet will alwavs be reacted 95/12946 Collision - Anv packet tiiat is received m hich a collision has occurred Collisions commonly cause run packets and CRC (CRCE) or Frame Alignment (FAE) eπors (see below) The SCENIC can be configured to accept packets witii a collision accepting packets witii CRCE and FAE Frame Check Sequence Eπor (CRCE) - A Frame Check Sequence Eπor, or CRC Eπor, occurs whenever the FCS field of die received packet does not match the CRC value calculated by the SCENIC Regardless of whether an FCS field was receiv ed the last 4 bvtes received will be considered to be the FCS field for die sake of checking for tins eπor Tlie SCENIC can be configured to accept packets with a CRCE Frame Alignment Eπor (FAE) - A FAE is a CRCE, but onlv when the total number of bits received is not on an 8 bit boundary A Frame Alignment eπor ovemdes a CRC eπor In other words, if a FAE occurs no CRCE indication is given because an FAE is a CRCE If packets with CRC eπors are being accepted, the packets with Frame Alignment eπors will also be accepted the packets with Frame Alignment eπors will also be accepted In all cases of the LME, MIB and RMON statistics, if a FAE is counted a CRCE is not counted Jabber - Jabber packets are packets received that exceed a length of 1518 bvtes These packets can be rejected automaucallv bv the SCENIC or passed to be buffered CAM Reiect - This is not actually an eπor but a condition of the packet Depending on what modes are enabled in die CAM, a packet can be rejected or accepted based on its destination address The destination address can be a physical (or individual) address a multicast or a broadcast address All three of tiiese conditions can be rejected or accepted individually It is impoπant to note if die CAM is enabled to reject anv land of packet die statistics counters will oniv gather information on the packets that are not rejected For these counters if it is desired to collect statistics on all packets received it will be necessary to disable all rejects bv die CAM Stams bits m die receive status register however w ill still allow the software to reject packets based on the destmation address without the dnver software matching the 48 bit destmation address Invalid Length Field - This is not actually an eπor but a situation diat mav occur often depending on the panicular network protocol being used (I e TCP IP, IPX Appletalk, etc ) The Two bvte field j ust following die source address of a packet is called the Tvpe/Length field When used as a Type field, this 2 bvte quantit y represents the t y pe of protocol the packet is following When used as a Length field the total length of the Data field of die packet (excludmg padding) is shown bv this 2 bvte quantity There are two optional IEEE LME statistics that deal w ith an invalid Length Field The SCENIC performs no action based on the Length field It is listed here because an Invalid Length Field does hav e an affect on the IEEE LME statistics IEEE LME Statistics vs MIB and RMON Statistics The sev en different eπor conditions listed in die prev IOUS section can be broken do n into four different kinds of eπors 1 ) Packet Length eπors which include Runt and Jabber packets 2) Frame Check Sequence eπors which include CRCE FAE and Collision eπors 3) CAM eπors or simply CAM mismatches 4) Invalid Lenεth Field eπors O 95/12946 All receive EEEE LME statistics are incremented based on a packet that is at least 64 bytes in length and tiiat has not been rejected by die CAM. This is because according to die IEEE Layer Management specification for receptions, if a collision occurs during the first 64 bytes (following the Start of Frame Delimiter), the packet will be a runt packet and all runt packets are automatically rejected. Hence, a runt packet conditions supersedes all other LME statistics and is not recorded by any IEE LME counter. The same is true for any packet that is rejected for not meeting the necessary SCENIC rejects due to a CJAM mismatch. Note that this means that if the SCENIC is set up to receive all packets (the CAM is disabled), then the IEEE LME statistics will be taken widi respect to all packets that are not runt, regardless of the destination address. The MIB and RMON statistics deal with eπors in a different way than the IEEE LME statistics do. All of the MEB and RMON statistics are broken down into packets with eπors and packets without eπors where eπors means Frame Check Sequence eπors as listed above. Secondly, MIB and RMON deal with statistics in terms of packet length. This means run, jabber and legal sized packets. MIB and RMON do not deal specifically with CAM matching or invalid Length Field eπors in terms of receive statistics and eπors. Hence, MB and RMON are merely concerned with Frame Check Sequence eπors and Packet Length eπors. Because EEEE LME says that statistics are not gathered on packets tiiat are rejected due to the CAM and because die MIB specification does not specify if the CAM plays a part in the receive statistics or not. all statistics gathered will be on packets that have not been rejected by the CAM. Hence, if it is desired to gatiier statistics on all packets on the network, it will be necessary to enable reception of all physical, broadcast and multicast packets, this will also be necessary because the SCENIC does not collect all die statistics required by IEEE LME, MIB and RMON. The SCENIC only collects statistics on packets that, generally, have eπors. All other "good" packets and/or tiieir status are passed up to the driver software or the BI and it is expected that the statistics for "good" packets can be derived from d e packet data or die returned status. Since the receive statistics returned with each packet includes CAM matching information, it will still be possible to enable reception of all packet address types and still reject certain packets (packets that would have not matched the CAM) by looking at the status instead of matching a 48 bit address. Transmit Network Statistics Counters EEEE LME and MIB have statistics which deal with both transmit and receive packets. RMON does not. however, normally deal with transmit packets since RMON is based on a network monitor which would not normally transmit packets. Since the SCENIC is likely to be used in designs where it is not only monitoring the network, but paπicipating in transmissions, it will become necessarv to collect transmit statistics for RMON. When these transmit statistics are collected, they must be treated as if tiiev were a receive statistic tiiough. This is because RMON deals widi what it sees on the network, not what it did to die network. The transmit statistics collected by the SCENIC are similar to tiie receive statistics collected This means at anytime .an event occurs that cannot be passed back to die system software or the BI by transmit status, tiiat event must be counted in a counter. For the case of IEEE LME and MIB. diere are specific transmit statistics counters supplied to allow the SCENIC to be compliant with these specifications. For the case of RMON. the transmit counters. when added to the information obtained in the receive counters will allow tiie SCENIC to be compliant also. Appendix A at die end of this detailed description (Appendix A is to be considered an integral pan of die detailed description), titled HDL Model, represents the verilog HDL description of one of the statistics counters This description shows how die counter is implemented 95/12946 Appendix B at die end of t his detailed descnption (Appendix B is to be considered an integral part of the detailed descπption), titled Network Statistics, explains die BEE S02 3 LME statistics found in Section 5 of the BEE 802 3 standard, the RMON statistics found in the Internet RFC 1271 ("Remote Network Monitoring Management Information Base"), and die MB II statistics found in RFC 1213 ("Management Information Base for Network Management of TCP IP - based Internets. MB II") Below each statistic descnption is a descπption of how tiiat statistic is obtained from die statistics counter described herein In accordance with an aspect of the invention, subsets of counters are used by the SCENIC to obtain full LME. RMON and MB II statistics By readmg the counters, and combining the real values with information obtamed from the SCENIC's transmit and receive status, the BEE LME Statistics Group and die MB II Interface Group statistics can all be created Hence, a small subset of the LME, MIB and RMON counters is designed in hardware and allows die entire LME, MIB and RMON standards to be suppoπed. This saves silicon space on the SCENIC die BUS INTERFACE CHIP REQUIREMENTS One mam purpose of the NCDI bus is to allow multiple network controllers to be -interfaced to a common or propπetary system bus using a BI chip The function of the B I chip is two fold First, it makes the necessarv conversion from the NCDI bus to the system bus and second, die BI represents die means by which network data is moved to and from the system bus for the sake of the NCDI bus. This second function can be accomplished in many ways and the actual method used does not depend on the SCENIC. The method used can be as complicated as a full bus master interface where the BI reads and writes directly to system RAM, or as simple as a data poπ scheme where die system processor, dirough software or a remote DMA request, reads or writes the data to and from a register poπ (similar to how the SCENIC works) The requirements of tiie BI chip with respect to tiie SCENIC are that it must support the NCDI bus. it must understand and support die NCDI PTP command structure, it must supply certain registers that the SCENIC will need to read and write and it must support a memory or FIFO structure to take network data from and give network data to die SCENIC Each of these requirements are discussed below A BI NCDI Bus Support Aside from supporting functional equivalents of die SCENIC signals diere are a few NCDI Bus support issues tiiat the BI must handle differently All die NCDI bus signals described m the SCENIC pin descπption must be suppoπed This includes die Data and panty signals, NCDI control signals such as D/C and BVALID and bus request signals The function of some of tiiese signals are different, however for die BI The NCDI Device Identifier pins, ID<3 0>. for the SCENIC are dnv en bv die SCENIC to tell the BI which SCENIC is accessing the BI Tlie BI uses ID<3 0> as a chip select however, to select tiie panicular SCENIC diat it would like to communicate witii The CS signal is used bv die SCENIC to chip select die BI The RESET signal on die NCDI bus can come directly from die mam sv stem bus hardware reset signal, or it can be a secondary reset signal tiiat is controlled by die BI Since die SCENIC is most often either pulling data out of die BI or w nting data to die BI. the BI may need to suppoπ the B T signal This signal ill allow die BI to hav e a little more control over when tlie SCENIC attempts to access it B Register Requirements of the BI Tlie BI will most likely have two sets of registers Those registers that are accessibleby the system bus and those that are accessible by the NCDI bus. SOme will be accessible by both busses It does not mater if all the BI registers are accessible by both busses, but it is impoπant that a few registers in the BI be accessible at certain addresses on d e NCDI bus The registers that are required in die BI and die necessary addresses for these registers are listed below. Only a quick list of die registers is given For a complete understanding of the purpose of these registers, see the equivalent SCENIC register or the section of this document that describes that function BI Interrupt Stams Register The lower 8 bit address of this Bi register should be programmed in the Bus Interface Register Offset (BIERO) register on the SCENIC The default for this register is 0008h This is a register that will be wπtten to by the SCENIC whenever an mterrupt occurs in the SCENIC interrupt Stams Register. If the interrupt is not masked in the SCENIC Interrupt Mask Register. then die SCENIC will acquire die bus and write die entire interrupt Stams Register into the BI Interrupt Status Register Note that the BI's Interrupt Sums Register should only allow die SCENIC to write 1 's to it When the SCENIC wπtes a 0 to this register, it should have no effect It is the job of the BI to clear the interrupt (set to 0) in its own register after the interrupt condition has been dealt witii BI Transmit Network Poπ The lower 8 bit address of this BI register should be programmed to die Bus Inteπupt Transmit Network Poπ Offset (TXNPO) register on the SCENIC The default for this register is OOOOh This register is the counterpaπ to the SCENIC transmit Network Port (TXNP) All transmit data will be read from the BI by the SCENIC, after receiving a SOF PTP command from the B I at this register port Any Transmit PTP commands from the SCENIC to the BI will be πtten to tins poπ also BI Transmit Status Register The lower 8 bit address of diis BI register should be 2h greater tiian the address of the BI Transmit Network Port This address would be equal to TXNPO + 2h Hence, die default for tiiis register is 0002h This is the status register that die SCENIC w ill wπte transmit status into after a transmit has been compieted The status diat is wπtten into tins register is the same bit pattern as in tiie SCENIC transmit Status Register (TXSR) BI Receive Network Poπ The lower 8 bit address of this BI register should be programmed in die Bus Interface Receive Network Poπ Offset (RXNPO) register on the SCENIC Tlie default for tins register is 0004h This register is tiie counierpaπ to tiie SCENIC Receive Network Poπ (RXNP) All received network data from the SCENIC will be vvπtten into this poπ ANy receive PRP commands from SCENIC will be πtten into this poπ also BI Receive Status Register The lower 8 bit address of this BI register should be 2h greater tiian the address of die BI Receive Network Port This address would be equal to RXNPO + 2h Hence, die default for this register is 0006h 95/12946 This is die status register diat die SCENIC ill wπte receiv e status into after a reception has been completed The status tiiat is wπtten into this register is the same bit pattern as m the SCENIC Receive Sutus Register (RXSR) C BI Support of the PTP The BI chip uses the SCENIC Transmit Network Port and d e Receive Network port to send PTP commands to die SCENIC These ports work the same as the BI Transmit Network Port and the BI Receive Network Port, as descπbed above The SCENIC uses the BI Transmit Network Poπ and the BI Receive Network Port to send PTP commands to die BI Figs 20 and 22 explam the PTP commands and ho the BI and SCENIC uses each PTP command Smce all network data is either read from the BI Transmit Network Port or wπtten to the BI Receive Network Port, the only dau tiiat the BI will wπte to the SCENIC's Transmit and Receive Network Poπs are PTP commands D BI FIFOs and Suppoπ for Multiple SCENICs Smce the BI chip will have to receive and send network data from and to the SCENIC, it follows that the BI will need to have some kind of FEFO or memory svstem to temporaπlv hold that data while it is being moved to and from die ma svstem memory More specificallv, it will be necessarv to have separate FIFOs or memory svstems for each SCENIC supported bv the BI THis is one of the main purposes for the ID<3 0> signals on the NCDI bus These signals inform the BI which FIFO to use when a SCENIC is accessmg the BI to transfer network data or PTP commands The size or structure of the BI FIFOs is implementation specific, but the main design goal of die FBOs should be to make sure that the SCENIC FIFOs never overflow or underflow The BI FBOs must be able to soak up the needs of the SCENIC It mav not be necessarv to use FIFOs in the BI as long as this basic requirement is met or if it is decided tiiat the requirement is not impoπant Note, however, that not meeting this requirement w ill significantly affect the SCENIC's performance since the SCENIC is optimized for a situation where its FBOs should never overflow or underflow How die FBOs are accessed bv die mam system bus is implementation specific but for the NCDI bus. tiie receive and transmit FIFOs on the BI are accessed through the BI Transmit Netw ork Port and die BI Receive Network Port Tlie SCENIC only requires diat it may read consecutive w ords from die BI s transmit FBO bv reading the BI Transmit Network Port and wπte consecutive w ords to die BI s receive FIFO bv wπtmg the BI Receive Network Poπ Because of die need for one set of BI FBOs for each SCENIC on d e NCDI bus it follows tiiat the BI Transmit Network Port and the BI Receive Network Port must be able to mux data to and from the coπect FIFO depending on which SCENIC is accessing die BI Tins muxing is done bv using die NCDI Dev ice Identifier signals ID*- 3 0> to determine which SCENIC is currently accessing tiie B I It will also be necessarv to keep the returned status from different SCENIC separate Again die ID<3 () > signals would be monitored whenever a SCENIC is wπting to the BI Transmit Status Register or the BI Receive Status Register The signals can be used to mux die status into some form of holding register or tiiev could be used to address physically different status registers How tins is done is an architectural issue and docs not matter the SCENIC Fmallv it will be necessarv to use tiie ID<3 0> signals to separate the inteπupt status form each SCENIC when it is wntten into the BI Interrupt Status Register Again, muxing could be used or physically separate registers could be used Effectively die ID<3 ( ) ■> signals create up to 16 separate NCDI address spaces such diat each SCENIC or other NCDI bus master can access die same register addresses but only need t o dnve different identifier number on ID- 3 ( )~» 95/12946 NETWORK INTERFACING The TEMPL block consists of an Encoder/Decoder (ENDEC) and Twisted Par Interface (TPI) function TEMPL connects between the MAC block and the outside network The network connections provided are twisted pair and AUI Tlie AUI interface can be attached to anv BEE compliant Medium Attachment Umt (MAU) such as 10BASE2, 1 OB ASE5. 1 OB ASE-T and 10BASE-F transceivers The mtemal Encoder/Decoder (ENDEC) provides the interface between the MAC umt and either the TPI module or die AUI interface The mtemal ENDEC can be disabled bv the user bv settmg bit 15 in d e Network Interface Configuration Register, so that an external ENDEC can be connected to die SCENIC through the external ENDEC pins descπbed in section 2 0 Additional information regarding die TEMP block mav be obtained bv reference to die following five co-pendmg applications each of which is commonly assigned herevvitii to National Semiconductor Corporation U S Seπal No 08/113.382, filed August 27, 1993 by Prasun K Paul U S Senal No 07/995, 193, filed December 22, 1992, by Pava K. Segaram et al U S Senal No 07/994 660, filed December 22, 1992 by Pava K Segaram U S Senal No 07/995,598 filed December 22 1992 by Prasun K Paul and U S Senal No 08/133 900 filed October 7 1993 bv Pava K. Segaram Each of these applications is herebv incorporated bv reference to provide additional background information regarding die present invention A ENDEC/AUI Functional Descπption An external oscillator module is needed to generate die 10 MHz transmit clock A 20 MHz oscillator must be used A clock oscillator module witii the following specification is recommended to be used with die SCENIC 1 ) TTL or CMOS ouφut w ith a 0 01 % frequency tolerance 2) 40-60% dutv cvcle 3) ≥2 TTL load ouφut dnve The oscillator clock module would be connected to die ID<3 ()-> as shown in Fie 26 Note dial additional ouφut dnve may be necessarv if die oscillator must also dnve odier components When using a clock oscillator it is recommended that die designer connect the oscillator output to die X I pin and leav e X2 pin floating Manchester Encoder And Oscillator Module Tlie ENDEC unit s encoder begins operation when die MAC section begins sending die senal data stream It com ens NRZ data from die MAC section to MAnchester data for die differen t ial dπvers (TX+/-) In Manchesicr encoding, die first half of die bit cell contains die complementary data and die second half contains die true data (Fig 27) A transition alwavs occurs at the middle of die bit cell As long as the MAC continues sending data die ENDEC section remains in operation At die end of transmission die last transition is alwav s positive occu ng at die center of die bit cell if the last bit is a one or at die end of die bit cell if die last bit is a zero The differential transmit pair can dnve up to 50 meters of tw isted pair AUI cable These outputs are source follow ers w hich require two 270Ω pull-down resistors to ground In addition an isolation transformer is required bet een the transmit pair ouφut and die AU I interface 95/12946 Manchester Decoder The decoder consists of a differential receiver and a phase lock loop (PLI) to separate the Manchester encoded data stream into clock signals and NRZ data The differential input must be externally terminated with two 39Ω resistors connected m senes In addition an isolation transformer is required between die receive mput pair and the AUI interface To prevent noise from falsely tπggeπng the decoder, a squelch circuit at the input rejects signals with a magnitude less tiian -175 mV Signals more negative than -300 mV are decoded Once the input exceeds the squelch requirements, Camer Sense (CRS) is asserted The decoder detects the end of a frame when no more mid-bit transitions are detected Withm one and a half bit times after the last bit, camer sense is de-asseπed Receiv e clock stays active for five more bit times after CRS goes low to guarantee the receive timings of the controller Collision Translator When the Ethernet transceiver (mtemal TPI or the DP8392 CTI for example) detects a collision it generates a 10 MHz signal to the differential collision inputs (CD+ and CD-) of the SCENIC When SCENIC detects these inputs active, its Collision translator converts the 10 MHz signal to ~ an active collision signal to the MAC section Tlus signal causes SCENIC to about its current transmission and reschedule anodier transmission attempt The collision differential inputs are terminated the same way as the differential receive inputs and a pulse transformer is required between the collision input pair and die AUI interface The squelch circuitry is also similar re ectmg pulses with magnitudes less than -175 mV B Twisted Pair Interface (TPI) Functional Descnption The following sections descπbe the major functions of the integrated TPI transceiver internal to the SCENIC The TPI transceiver is fully IEEE compliant and includes the receiver transmitter, collision heartbeat, loopback jabber and link mtegπty functions as defined in the standard There is no need for an external filter on the 10BASE-T interface as mention above, since this is integrated internally Smaπ Squelch The Smaπ Squelch is responsible for determining when valid data is present on the differential receive inputs (RXl±) Tlie TB implements an intelligent receive squelch on the RXI± differential inputs to ensure that impulse noise on the receive inputs w ill not be mistaken for a v aliditv of data on the tw isted pair inputs Fig 28 shows die operation of die smaπ quelch The signal at die start of packet is checked bv die smaπ squelch and anv pulses not exceeding die squelch level (either positive or negative depending upon polaπtv ) will be reiected Once tins first squelch level is overcome coπectlv the opposite squelch level must then be exceeded within 150ns Finallv the signal must exceed the oπgmal squelch lev el withm a further 1 0ns to ensure that the input waveform will not be rejected The checking procedure results in the loss of typically three bits at tiie beginning of each packet Only after all these conditions have been satisfied w ill a control signal be generated to indicate to die remainder of the circuitry that valid data is present At this time the smart squelch circuitry is reset Collision A collision is detected on die TPI cable hen the receive and transmit channels are active simultaneously If die ENDEC is receiving when a collision is detected it is reported to the MAC block immediately (dirough the COL signal) If howev er the ENDEC is transmitting w hen a collision is detected die collision is not repoπed until seven bits have been received while in die collision state Tins prevents a collision being repoπed incoπectly due to noise on die network Tlie COL signal remains for die duration of d e collision Approximately 1 μsec after the transmission of each packet a signal called the Signal Quality Eπor (SQE) consisting of typically 10 cycles of a 10MHz signal is generated by the TPI transceiver onto tiie internal AUI CD± signals This 10MHz signal, also called the Heaπbeat. ensures tiie continued functioning of die collision circuitry The SQE signal shows up on the COL signal as a pulse Link Detector/Generator The link generator is a timer circuit that generates a link pulse as defined by die 10 Base-T specification that will be generated by die transmitter section The pulse which is 100ns wide is transmitted on die transmit ouφut, every 16ms, in die absence of transmit data. The pulse is used to check die integrity of the connection to the remote MAU. The link detection circuit checks for valid pulses form die remote MAU and if valid link pulses are not received the link detector will disable die twisted pair transmitter, receiver and collision detection functions The LNKLED ouφut can directly drive an LED to show that there is a good twisted pair link For normal twisted pair operation, die LNKLED will be on The link integrity function can be disabled When disabled, die transceiver will operate regardless of die presence of link pulses Jabber Time-Out The Jabber function disables the transmitter if it attempts to transmit a longer than legal sized packet The jabber timer momtors d e transmitter and disables the transmission if the transmitter is active for greater than 26ms The transmitter is then disabled for the whole time that the ENDEC module's internal transmit enable is asseπed This signal has to be deseπed for approximately 750ms (the unjab time) before the Jabber re-enables the transmit ouφuts The Jabber function can be enabled or disabled by the JBEN bit Transmit Driver The transmitter consists of four signals, a Manchester encoded data pair for unshielded twisted pair (TXU±) and a Manchester encoded data pair for shielded twisted pair (TXU±) The UTP/STP pin selects eidier the unshielded twisted pair or the shielded tw isted pair driver The SCENIC can be designed to work witii both types of cable See the example provided in Fig 29 Status Information Status information is provided by die TPI on the TXLED, RXLED, COLLED. POLLED and INKLED ouφuts These outputs are suitable for driving status LEDs Tiiese active low signals are open drain outputs Tlie LED is connected to the signal using a resistor connected to V κ and die LED connected to the signal Automatic Polaritv Detection Tlie POLLED output is normally high, and w ill be dnven low when seven consecutive link pulses or tiirce consecutive receive packets are detected with reversed polantv A polarity reversal can be caused by a wiring eπor at eidier end of die TPI cable On detection of a polantv reversal the condition is latched and POLLED is asseπed Tlie transceiver coπccts for this eπor internally and will decode received data coπecth eliminating the need to coπect die wiπng eπor immediately 95/12946 Transceiver Loopback Function When Transceiver loopback is programmed, die TPI redirects its transmitted data back into its receive padi The transit dnver and receive input circuitry are disabled in transceiver loopback mode, hence, d e transceiver is isolated from die network cable This allows for diagnosuc testing of the data patii all the way up to die transceiver without transmitting or bemg interrupted by die media This test can be performed regardless of the link sutus (i.e , a TPI cable does not have to be connected to perform transceiver loopback) Traffic Ignore Mode When die Traffic Ignore mode is enabled, the ENDEC and TPI will disable die collision funcUon and allow transmission and reception at the same time through the twisted pair transmit and receive pairs respectively The normal transceiver loopback function is disabled since it is not used in full duplex mode transmission UTP/STP Select Function The TUP transceiver supports both shielded (150Ω) and unshielded (100Ω) twisted-pair cable The support for each mode is selectable via the Media Select bit This support is provided bv two pair of transmit dnvers The TXU± dnvers are for UTP and the TXS± dnvers are for STP Onlv one pan of dπvers are active at one time but both can be connected using a resistor arrangement as shown in Fig 29 Transmit Filter There is no need for external filters on the TP interface because the filters are integrated into the TPI transceiver Only an isolation transformer and impedance matching resistors are needed for the transmit and receive twisted pair interface The transmit filter ensures that all the harmonics in the transmit signal are attenuated bv at least 80 cB C Network nterface Connection An example of die AUI and TP interface is show in Fig 29 This example represents the case where the AUI Interface is connected to a 15 pin D-Shell connector for an off board transceiver onlv If onlv an on board coaxial interface (CTI) or both the CT1 and AUI connections are desired dien die components used mav differ Regardless of the AUI connection configuration, the TPI configuration does not change Similarly, die TPI configuration does not affect the AUI configuration The TP interface shown would be used for both Shielded (STP) and Unshielded (UTP) twisted pair cables The TXS± signals are used for STP and the TXU± signals are used for UTP Two pair of impedance matching resistors are shown in Fig 29 R6 and R9 are used for UT R7 and R8 are used for STP The values of tiiese resistors are defined in order to match the impedance of the twisted pan cable (100Ω for UTP 150Ω for STP) Because of TI , tiie 1 to isolation transformer, two resistors are needed to match UTP and two resistors are needed to match STP The selection of UTP or STP is made in the Network Interface configuration register Once the selection is made, only one of the two pan of transmitting signals and impedance matching resistor are used In a design where onlv one medium will be used it is onlv necessarv to use the resistors and signals for tiiat cable type since the oilier transmitting pair is inactive The twisted pair receiv e pins RXI±. are used for both STP and UTP in a design that onlv supports STP. die receive impedance matching resistors, R5 and R6 should be 75Ω each For UTP tiiev should be 50Ω each If botii STP and UTP are to be supported then a middle v alue of 60Ω each would be used Tins prov ides a compromise in impedance matching for STP versus UTP TEST DESCRIPTION .The SCENIC contains a number of test features which provide a svstem level "diagnostic" capability that mav be useful in diagnosing system level problems m manufactured svstems The diagnostic capability can be used at both the device and svstem level The test activities will depend upon the programming of the Test Control Register (TCR) and the test pins TE and CLKBYP There are two (five) mam capabiliues that are provided Included in the capabilities is a modified BEE 1149 1 implementation in that only the IO scan cham and bvpass capabilities behave according to a 1 149 1 implementation The test capabilities are the following 1 ) IO scan cham with a unique input, ouφut, and test clock 2) Ability to select a "JTAG" like by pas mode instead of the IO scan chain 3) BIST for the internal receive and transmit FBOs 4) Boot bypass test mode 5) Stand alone ENDEOTPI mode for testing this block of the SCENIC separately from the rest of the A IO Scan The IO scan chain has the ability to do "JTAG-hke" or "BEE 1 149 1-lιke" board level lnterconnectivitv testing The essence of this capability is the abilitv to monitor/sample input signals and to be able to force a value on the ouφut pads There is no upper frequency limitauon on this capability compared with a 6 MHz limit on BEE 1 149 1 operation in more detail, the following capability is provided 1 ) The TE signal selects between "sample" (l e normal) and shift operation 2) Clocks, po er GND test signals and analog signals are not included as part of the IO scan chain 3) The control signals for bi-directionalitv and tπ-state operations are provided via dedicated bits form the scan chain 5) [sic 5)] When the TE pin is non-active TDO ouφut is in tπ-state, regardless of any other operation When the TE pin is active, normal functional ouφuts will be in tπ-state 6) The IO scan chain is clocked with TCLK 7) The elements of the IO scan chain are the "normal" scan flip flops used in the rest of the device 8) The IO scan chain does not "interact" with the internal logic unlike IEEE 1 149 1 "internal capability ' Connecting of the IO scan chain between IO scan input (TDI pin) and IO scan output (TDO) is done bv setting tiie Enable IO Scan (EIOS) bit in the TCR register The TE pin when non-active will enable parallel load operation Tlie operation takes place at the πsing edge of TCLK and the values in the bits coπesponding to die ouφut pads ill be put on those pads in tins mode When the TE pin is active the scan/shift operation is enabled The ouφut signal pads will be tn-stated and die data shifted at even πsing edge of TCLK Fig 30 lists the scan operation control B Bypass Mode The bypass capability has die ability to perform "JTAG-like' or IEEE 1 149 1 scan to provide board level bvpass testing Tlie essence of this capability is tiie ability to bvpass the IO chain In more detail the follow ing have been provided 1 ) The TE signal w ill select between sample" (i e normal) and shift operation 2) When die TE pin is non-active die test data ouφut (TDO) signal w ill be tπ-stated regardless of anv odier operation 3) The bvpass register is made up of normal" scan flip flops as used in die rest of die device 4) Ouφut signal pads are tπ-stated when shifting The bypass capability is invoked by setting the Enable Bypass Scan Cham (EBYPASS) bit in the TCR register, which has the effect of connecting the single bit bypass register between the TDI and TDO pins The operation takes place at the nsmg edge of TCLK When the TE pm is active the scan shift operation is enabled Tlie ouφut signal pads are tπ-stated and the data shifted TDI -> bypass -> TDO, at every πsmg edge of TCLK, EIOS Register TCR, Bit 0 EBYPASS Register TCR, Bit 1 C BIST Built In Self Test (BIST) is provided to enable die testmg of the receive and transmit FBOs withm the SCENIC device The essence of this capability is to determine if there are anv faults, or anv marginal read/wπte problems in anv of the on chip FBOs BIST should NOT be performed dunng normal operation, since the contents of the FBOs bemg tested will be unstable The BIST capability can be mvoked at any time by the user by setting the Receive BIST Enable (RBEN) bit the TCR register, to test the receive FBO, or the Transmit BIST Enable (TBEN) bit mt the TCR register to test the transmit FBO BIST will be activated on cycle after RBEN or TBEN are set and the BSCK p has a free runnmg, 50/50 dutv cvcle signal The svstem will automatically cvcle through the selected FBO doing roaαVwπte/ compare operations The end of the operation will be indicated by two bits m die TCR register The Transmit BIST Done (TBD) bit will be set upon the completion of BIST on the transmit FBO and die Receive BIST DONE will be set upon die completion of BIST on the receive FBO The user determines if the run was successful bv inteπogating the TCR Register and checking to see if die Receive BIST Eπor (RBE) bit or die Transmit BIST Eπor bit are set indicating a BIST eπor in die receive FIFO or transmit FIFO respectively Any marginal timing related faults can be determined bv changing the frequency of operation on the BSCK pin default is 20 MHz D BOOT Bvpass (Comment) Need to add a diagram showing BSCK ClkBvpass and RESET signal levels in order to implement BOOT Bvpass When the SCENIC is put in BOOT bvpass mode it will not perform die normal BOOT procedure of reading and loading the EEPROM contents as descπbed above Tlie EIOS bit in the TCR will automatically be set so the user can enable the IO scan features without having to vvπte to the TCR register In addition Bit 15 in the NICB register will automatically be set w hich will put the SCENIC into stand alone ENDEC/TPI mode (descnbed below) BOOT bvpass should onlv be used for testing purposes and is not intended for normal operation To put die SCENIC in tins mode the user must asseπ the CLKBYP pin "high" at least one BSCK cv cle pπor to the nsmg edge of RESET Tlie TE pin should also be set to die proper state to select the desired scan operation since die EIOS bit will automatically be set once tlie SCENIC has been put into BOOT bvpass mode To put die SCENIC back to normal operation die user should reset the chip w ith CLKBYP "low at least one BSCK cv cle before tiie πsing edge of /RESET E Stand Alone ENDECTPI Tins test feature can be enabled bv setting bit 15 in the NICR register through a register wπte or bv pumng tiie SCENIC in BOOT bvpass mode as descnbed above While in die stand alone ENDEC/TPI mode the SCENIC s other internal blocks arc disabled and die SCENIC functions onlv as an ENDEC TPI 95/12946 module TXE and TXD would become input pins RXC RXD CRS COL and TXC would be ouφut pins This feature is meant only for testing purposes and is not intended for normal SCENIC operation SCENIC REGISTERS This section gives complete descπptions of the SCENIC registers The SCENIC has a 256 address register space The SCE-NIC's 16 bit wide registers are addressed m tins space at even locations Within dus space there are user registers test registers and network statistic registers A Packet Transfer Block Register Descπptions Figs 31-34 contain a listing of all the SCENIC registers Each table lists the register name, title, section number of the register's descπption, if it is readable or wπtable and the 8 bit address of register Note that if the register is readable and wπtable, there may be certam bits in the register that cannot be wπtten to Also, some registers are wπtable, but should be wπtten to since doing so will cause improper SCENIC operation Refer to the specific register descπption for more information The network statistics counter register table shows tw o addresses for each counter in the form of UU/LL The statistics counter registers are greater than 16 bits wide and require 2 reads to get the upper and lower po on of the register The upper portion is addressed at UU and die lower portion is addressed at LL In cases where the register is 16 bits or less in size on the low er address LL is shown Anv address not listed in Figs 31-34 is a reserved address and should not be wπtten to B General Register Descπptions This section descnbes d e general registers used in the SCOULC There are two kinds of registers covered The first kind are registers that support different functions with different bits The second kmd are registers whose function takes all the bits in that register Data Configuration Register (OCR) (A<7 0> = 04h) This register shown in Fig 35, contains the basic configuration needed for proper operation of die SCENIC The most important bit in this register is tiie RST bit This is the software reset bit When set most of the SCENIC is held in a reset state Before die SCENIC w ill function several registers must be configured Many of tiiese registers must not be wπtten to unless RST is set to 1 (see the specific register descπptions for more information) After this configuration RST can be set to 0 Then to staπ transmissions and receptions TXEN and RXEN should be set to 1 below When setting RST to 1 any cuπent transmission or reception will immediately be halted and die FIFOs w ill be cleared All information about the cuπent reception or transmission w ill be lost including status and statistics counter information If it is desired to retain tins information tlie it is suggested that TXEN and RXEN be set to 0 and tiiat all status from the cuπent reception or transmission be received before setting RST to 1 After a hardware reset tins register will be loaded w ith 0010 0000 0001 1 100 (20 ICh) After a software reset this register will be loaded with 000 K xOOO means unchanged Tlie BMS FS and FT 3 ( ) -- bits should onlv be wπtten to when die SCENIC is in software reset mode A software reset w ill automaucallv set RXEN and TXEN to 0 so die only time tiiese bits would be w πtten to is w hen RST is set to 0 It is ok to set RST and change BMS FS and FT<3 0> in one vvπte dien clear RST and set RXEN and TXEN in die second wπtc Interrupt Mask Register (IMR) ( A 7 i)> = ()6h) This register, shown in Fig. 35 is used to mask tiie SCENIC from writing the Interrupt Status Register (ISR) to the BI when the coπesponding interrupt in die ISR is set. If a mask bit is set to a " 1 " in tiiis register, then when the associated interrupt in the ISR is set. the SCENIC will request the bus and write the ISR to the BI. If a bit is set to "O" in this register, then if the interrupt is set in the ISR, the SCENIC will not request the bus and will not attempt to write die ISR to the BI. After a hardware reset, this register will be loaded with OOOOh. After a software reset, this register will be unchanged. Interrupt Status Register (ISR) (A<7:0> = 08h, read only) This register, shown in Fig. 37, will reflect any interrupts which have occurred on the SCENIC. When one of the interrupt conditions described below occurs, tiiat bit will be set. When one or more ISR bits are set, and if die coπesponding mask bit is set (indicating die inteπupt bit is not to be masked) in the Inteπupt Mask Register (EMR). the SCENIC interrupt Handler will request die bus so tiiat the BI chip can be told about the interrupts. When the bus has been granted to the Inteπupt Handler, die SCENIC will write the contents of the ISR to the BI's Interrupt Stams Register. Once the BI chip learns of the interrupt, responsibility of notifying the system software or acting upon the interrupt rests on the BI chip. All bits in the ISR will be cleared after being written to the BI. Note that if two bits in the ISR are set, for example, and one of the bits is masked in the IMR, tiie unmasked bit will cause die SCENIC to write die ISR to die BI. In doing so, botii bits will be written, not just the unmasked bit. Hence, masking a bit only prevents the SCENIC from immediately writing that bit to the BI. After a hardware or software reset, this register will be loaded witii OOOOh. Because a software reset may cause an interrupt to be lost by the clearing of this register, it is suggested tiiat the receiver and transmitter be disabled, and the cuπent reception or transmission be allowed to complete, including possible changes to this register, before setting die RST bit in the DCR. EEPROM Configuration Register (ΕPCR) (A<7:0> - OAh) This register, shown in Fig. 38. will contain tiie first 16 bits pulled out of the BOOT EEPROM. Tiiese bits set up certain operational modes of die SCENIC. Tlie main configuration bits are the ID bits and die Arbiter Select bit. These bits are impoπant for multi-device operation on die NCDI bus This register was set up such tiiat if an external EEPROM is not used, and die PROMDO pin on the SCENIC is tied high, all bits in mis register will be set to 1. This puts the SCENIC in a default mode tiiat will allow it to operate on an NCDI bus by itself with a single BI chip. An affect of tiiis is tiiat all reserved bits must be written as a 1 , not a 0, which is the case for all other registers on the SCENIC. After a hardware reset, but before die EEPROM is read and loaded into tiiis register, this register will be set to FFFFh. After a software reset, this register will be left unchanged. This regis t er should not be changed after an EEPROM load since doing so may render die SCENIC non-functional Network interface Configuration Register (NICR) (A<7 0> = OCh) This register, shown in Fig 39. contains die configuration settings for the internal ENDEC and twisted pair transceiver After a hardware reset, this register will be loaded with 0 1 1 0001 0000 0000 (3 l OOh) After a software reset, diis register will be left unchanged This register should onlv be written when die 95/12946 SCENIC is in soft are reset mode This register should onlv be changed hen the SCENIC is in software reset mode Transmit Network Status Register (TXSR) (A<7 0> = 14h read only) This register shown in Fig 40, contains transmit status generated at die end of a transmission As defined by the Transmit Packet Transfer Protocol, the contents of this register ill be sent back to die supporting BI chip s transmit status register following each transmission This register would not normally be read directlv bv die BI chip If this register is read the state of the bits are meaningless because they mav change at anv time This register descnption is provided mainlv for information purposes For more information about transmit eπors and this register see Section 4 4 1 3 Transmit Eπor Indications After a hardware reset this register will be loaded with OOOOh After a software reset, this register will be left unchanged Transmit Configuration Register (TXCR) (A<7 0> = l6h) This register shown Fig 41 is compπsed of two parts Bits 5 to 0 are configurable modes which apply to all outgoing packets These bits would normally be set once at chip configuration and must be set when die SCENIC is in software reset mode Bits 15 to 10 how ever may change on a per frame basis These bits are loaded on a per frame basis from the attnbute field of d e Transmit PTP SOF command Bits 15 to 10 are also read onlv Wπtmg to tius register will not affect these bits After a hardware reset tins register will be loaded with OOOOh After a software reset tins register will be left unchanged This register should onlv be wπtten when die SCENIC is in software reset mode Receive Network Status Register fRXSR) (A<7 0> = 24h read only ) This register show n in Fig 42 contains the status gathered due to a packet reception As soon as die status is available it will be placed in die receive FBO πght behind the coπesponding Receiv e EOF command so diat it can be πrten to the B I chip s receive status register Tlus register would not normally be read or πtten to bv the BI chip If RXSR is read die result is meaningless because the bits mav change at any time Tins register descπption is provided mainlv for information puφoses After a hardware reset tins reset will be loaded with OOOOh After a software reset tins register will be left unchanged Receive Configuration Receiv e (RXCR) (A<7 0> = 26h) The receive configuration register shown in Fig 43 controls w hat kind of packets are accepted and passed to die BI chip Tins includes eπor conditions and address match information After a hardware reset tins register w ill be loaded witii 001 1 1010 0000 0000 (3 AOOh) After a software reset tins register ill be left unchanged R-XCR should not be w πtten to unless die SCENIC is in software reset mode Bus Master Pπoπtv Configur uion Register (BMPC) (A<7 0> = 36h) This is a programm ible register shown in Fig 44 which contains die pnoritv settings of all bus masters directlv connected lo the NCDI Bus Arbiter Tins register is needed so dia t the Bus Arbiter can make fair decisions on who owns die bus at a given time It is onlv necessary to program tins register on the bus arbiter This register can be ignored on any SCENIC device where die bus arbiter is disabled Each pnoritv setting uses diree bits and may be set somewhere between 0 (highest priority) and 4 (lowest prioπty) If this register is set so that two or more devices have the same pπority, then a second order of precedence will take over It is not possible to set two devices witii the same priority and have them be equal in importance because the inherent order of precedence creates a difference in importance The inherent order of precedence is the Bus Arbiter, the device attached to BREQO. then BREQl, BREQ2 and BREQ3 where die Bus Arbiter takes die highest pπority When Fairness is enabled, pnonty still affects which device will be granted the bus in the event of multiple devices requesting the bus at the same time it becomes available The difference is that once that device gets to use the bus, it must wait for all other bus requests to be serviced before the bus arbiter will grant it the bus agam This is a function of the bus arbiter, not the requesting device The requesting device can request the bus, but the arbiter will not immediately grant die bus to it If it is desired to use fairness, then it is suggested diat die default prioπty specified below be used After a hardware reset, this register will be loaded with 1 100 01 10 1000 1000 (C688h). After a software reset, this register will be left unchanged BMPC should only be changed when the SCENIC is in software reset mode Boot EEPROM Command Register fBECR) (A<7 0> = 40h) The Boot EEPROM Command Register (BECR). shown in Fig 45, is used in combination witii the Boot EEPROM Data Register (BEDR) to directly access the configuration boot EEPROM. The BECR is used to load a command to be serialized and given to die EEPROM If die command involves writing data to die EEPROM. dien die data found in the BEDR will be seπalized and sent to the EEPROM following the EEPROM command If die command involves reading data from the EEPROM. then after the command has been sent to die EEPROM. die data that the EEPROM gives back will be deserialized and placed in die BEDR When the command being sent to die EEPROM is a read command it is only necessarv to write the command into tiiis register and set die ERD bit When die command is a wπte command, the 16 bit data field diat is to be vvπttcn to die EEPROM should be πtten to die BEDR first before vvnting the command mto tins register A πte command is designated by setting tiie EWR bit After a hardware reset, this register will be loaded with OOOOh .After a software reset, tiiis register will be left unchanged Note tiiat there are ceπain dangers involved in vvnting to die configuration EEPROM It is possible to oveπvπte the contents of tiie configuration information required by die SCENIC Doing so mav render a network interface inoperable and may make it impossible to reprogram die EEPROM unless the EEPROM is removed from the board Test Control Register (TCR) (A<7 ()> = 50h) The Test Control Register, shown in Fig 46 is used to provide diagnostic testability of the SCENIC After a hardware reset dus register will be loaded with OOOOh After a software reset, tins register will be left unchanged Silicon Revision (A<7 0> = 0Eh. read onlv ) 95/12946 This read only register contains information on the cuπent revision of the SCENIC The upper 8 bits (bits 15-8) will be used to represent different functional versions of SCENIC (if they are created in the future) The lower 8 bits (bits 7-0) represent different silicon revisions of a particular functional version of SCENIC The initial silicon begins at OOOOh If a new functional version of the SCENIC is created, the upper 8 bits will be incremented and the lower 8 will be set to 0 SCENIC Transmit Network Port (TXNP) (A<7 0> = lOh) This register was formerly called the Transmit Network NCDI Poπ or TXNNP This register is the poπ through which all data passes to the SCENIC The BI inmates a packet transmission by wntmg an SOF command to this port this will cause the SCENIC to request the bus and start pulling out of the BI's Transmit Network Port In effect, all transmit data passes from the BI's Transmit Network Port to the SCENIC's Transmit Network Port Along with the Transmit SOF command, all other Transmit PTP commands onginating from the BI chip will be sent to the SCENIC Transmit Network Port Readmg the TXNP register will return OOOOh This register is a wπte onlv register hence reading the register provides no useful information Bus Interface Transmit Network Port Offset (TXNPO) (A<7 0> = 12h) This register was formerly called the Transmit Network Bus Interface Port Offset or TXNBB The Bus Interface Transport Network Port Offset register contains the low order 8 bit address of the supporting Bus Interface's Transmit Network Port All data bound for the network will effectively oπginate from tiie BI's TXNP register pointed to bv this register In addition anv Transmit PTP commands destined for the B I are to be wπtten to the BI's TXNP register After a hardware reset, this register will be loaded with OOOOh (0008h when IBM mode is set in the EEPROM Configuration Register) After a software reset this register will be left unchanged This register should onlv be changed when the SCENIC is in software reset mode SCENIC Receive Network Port (RXNP) (A<7 0> = 20h) This register was formerly' called the Receive Network NCDI Port or RXNNP All data received by the SCENIC is effectively passed through the SCENIC Receive Network Port on its way to the B I Receive Network Port In addition, anv receive PTP commands destined for the SCENIC would be wπtten to the SCENIC Receive Network Poπ Since the SCENIC wπtes all received data directlv to the B I there is no need for the BI to read the RXNP register If the RXNP register is read die result w ill be OOOOh Bus Interface Receiv e Network Port Offset (RXNPO) (A<T0> = 22h) This register was formerly called the Receive Network Bus Interface Poπ Offset or RXNBIP This register contains the low order 8 bit address for the BI Receive Network Poπ The BI Receive Network Poπ is tiie poπ through which all received data passes to the B I Tlie SCENIC initiates a packet reception bv wntmg an SOF command to the BI Receive Network Poπ follow ed bv the received network data and an EOF command All odier Receive PTP commands onginating from die SCENIC will be sent to the BI Receiv e Network Poπ also which is pointed to bv the RXNPO register After a hardware reset, this register will be loaded witii 0004h (0004h is also the default value loaded with BM mode is set in the EEPROm Configuration Register) After a software reset, tins register will be left unchanged. This register should only be changed when the SCENIC is in software reset mode. Bus Preempt Counter fBPC) (A<7 0> = 32h) BPC is used by the SCENIC's bus arbiter to determine how long a bus master may hold on to the bus. When there are multiple devices requesting to use the bus. The arbiter will staπ the bus preempt counter. That counter will count the number specified in the BPC When the counter reaches 0, the cuπent bus master will be preempted off the bus so that the next request can be serviced If no other devices are requesting the bus, then the preempt counter will not be staπed. and the current bus master will be allowed to use the bus as long as it needs it After a hardware reset, this register will be loaded with 28h This will allow a maximum of 40 cycles, or 80 bytes transfer, per bus ownership. After a software reset, this register will be left unchanged. Although this register can be changed at any time, doing so may allow a device to use tiie bus an excessive amount of time, causing FBO overruns and underruns It is suggested that BPC be programmed in the bus arbiter before any devices on the NCDI bus are allowed to function bevond a reset mode. BPC only needs to be programmed on the bus arbiter device When the bus arbiter in the SCENIC is disabled, this register has no meaning Boot EEPROM Data Register (BEDR) (A<7 0> = 42h) BEDR is the data register used for accesses to the boot EEPROM When performing an EEPRM read, the data read from the EEPROM will be written in this register When performing an EEPROM write, the data to be written to the EEPROM must be placed in this register before executing the wπte command After a hardware reset, this register will be loaded with OOOOh After a software reset, this register will be left unchanged Bus Interface lπtemipt Register Offset (BIRO) (A<7 0> = 4A) This register contains the low order 8 bit address of the BI ' s interrupt status register When tiie SCENIC needs to write interrupt status to the BI. it will drive the lower 8 bits of tins register A<7 0> in order to access the interrupt status register on the B I After a hardware reset, this register will be loaded w ith 00008h (0018h when IBM mode is set in die EEPROM Configuration Register). After a software reset, this register will be left unchanged This register should only be changed when the SCENIC is in software reset mode CAM Address Poπs 2. 1 and 0 (CAP2. CAPl . CAPO (A<7 ( ) > = 44h, 46h and 48 h for CAPO. CAPl and CAP2. respectively) Each CAP register is a 16-bit register used to read or wπte the CAM cells Each CAM cells is I d- bits wide and contains one third of the 48-bit CAM entry which is used by the SCE-NIC for address filteπng Tliere is only one CAM location in the SCENIC CAP <2 0> always point to this one location The CAP2 register is used to access die upper bus (47 32). CAPl die middle bus ( 1 16). and CAPO the low bits (15 0) of the CAM entry (see Fig 47) O 95/12946 The CAP regis t ers are loaded as follo s Giv en the phy sical address 10 20 30 40 50 60 which is made up of 8 octets or bvtes where lOh is die least significant bvte and 60h is die most significant bvte (lOh would be die first bvte received from the network and 60h would be last), CAPO would be loaded with 2010h, CAPl with 4030h and CAP2 w ith 6050h After a hardware reset and before die boot EEPROM loads die CAM tiiese registers will be in an unknown state After a software reset these registers w ill be left unchanged C Receive Statistics Counter Registers This section contains the descπptions of die SCENIC Statistics Counter Registers for receive packets Unless otiierwise specified tiiese counters tall y events that occur to packets that have not been re j ected bv die CAM logic If statistics need to be gathered on packets diat would otiierwise be rejected by the CAM, then the CAM must be configured to accept all physical multicast and broadcast packets or die PREJ signal should not be used Receive Missed Packets (TCXMissedPkts) (A<7 0> = 80h for low order word 82h for high order word) A count of all packets lost due to an internal eπor bv die SCENIC This includes a Receive FBO overflow and anv time a packet is aboπed bv die BI chip bv the Receive PTP command ABORT Note that there mav be other conditions in the B I chip that mav cause a packet not to be received These occurrences must be counted separately and added to the quantity counted by tins counter Note tiiat if this counter is incremented no odier receiv e counters should be incremented This is because if the SCENIC looses a packet bv its own causes all other statistics become invalid Note also tiiat if a packet is determined to be eπored bv anodier reason (e g CRCE or FAE etc ) before die SCENIC looses the packet by other means such as FBO problem then tins counter is not to be incremented Instead, the eπor that occurred should be counted in the counter that would tallv that eπor The size of tins counter is 25 bits Received Runt Packets Without Eπors fRXRun lOK) (A<7 0> = 84h for low order word 86h for high order word) Counts all packets receiv ed that are runt packets and that do not have CRC or Frame Alignment eπors This means anv packet receiv ed that is less tiian b4 bv tes not including preamble that did not have a CRCE or FAE occur The size of tins counter is 25 bits Received Runt Packets Witii Eπors (RXRunEπored) (A<7 ()> = 88h for low order word 8Ah for high order w ord) Counts all packets receiv ed that are runt packets and dial have CRC or Frame Alignment cπors This means anv packet receiv ed that is less than 64 bvtes not including preamble at had a CRCE or FAE occur The size of tins counter is 25 bits Received Jabber Packets Without Eπors (RXJabberOK) (A<7 0> = 8Ch for low order w ord 8Eh for high order word) Counts all packets receiv ed that are longer than 1 18 bv tes and diat do not hav e CRC or Frame Alignment eπors Tins means anv packet receiv ed that is greater tiian 1 18 bvtes that did not have a CRCE or FAE occur Tlie size of tins counter is 18 bus Received Jabber Packets With Eπors (RXJabberEπored) (A<7 0> = 90h for low order word. 92h for high order word) Counts all packets received that are longer than 1518 bytes and that have CRC or Frame Alignment eπors This means any packet received that is greater than 1518 bytes that had a CRCE or FAE occur The size of t is counter is 18 bits Received Frame Alignment Eπor (RXFAEπor) (A<7 0> = 94h for low order word, 96h for high order word) Counts all packets received that are not run or jabber and that have a Frame Alignment eπor This means any packet received that is between 64 and 1518 bytes inclusive that had an FAE occur This counter is not incremented if RXJabberOK or RXJabberEπored are mcremented This is because BEE LME specifies that if a jabber packet is received, it is counted as a jabber packet, regardless of whether it was eπored or not The size of this counter is 23 bits Received Frame Check Sequence Eπor (RXFCSEπor) (A<7 0> = 98h for low order word 9 Ah for high order word) Counts all packets received tiiat are not runt or jabber and that have a CRC eπor which is not also a Frame Alignment eπor This means any packet received that is between 64 and 1518 bvtes inclusive that had a CRCE, but not a FAE occur This counter is not incremented if RXJabberOK, RXJabberEπored or RXFAEπor are incremented This is because these eπors take higher precedence over the more genenc case of a CRC Eπor This is also because BEE LME specifications sav that if a jabber packet is received it is counted as a jabber packet regardless of whether it was eπored or not The size of this counter is 23 bits Received Eπored Bvtes fRXBvtesEπored) (A<7 0> = 9Ch for low order word 9Eh for high order word) Counts total number of bytes received that were from packets that had eπors Tins includes all runt or jabber packets (eπored or not) and legal sized (non-runt and non-jabber) packets with CRC or Frame Alignment eπors The size of this counter is 29 bits Received Packets witii Collisions (RXCoIlisions) (A<7 0> = AOh for low order word, A2h for high order word) A count of all collisions tiiat occur dunng reception Tins counter tallies both in window and out of window collisions It will also tally collisions that occur before the SFD (dunng preamble) Transmit collisions are not counted bv tins counter Receive collisions cannot be detected bv a twisted pair transceiver Hence RXCoIlisions will not be incremented when using tiie TPI transceiver TPI transceivers can onlv detect collisions when thev are transmitting at tiie same time These collisions are counted as transmit collisions not receive collisions Coaxial transceivers can however detect collisions when not transmitting The size of this counter is 25 bits Received Packets with Length 64 Bvtes fRXPkts64Bvtes ) (A<7-0> = A4h for low order word. A6h for high order word) Counts all packets received with a length of 64 bytes This includes all packets witii or without CRC or Frame Alignment eπors The size of this counter is 23 bits Received Packets with Length 65 to 127 Bvtes (TXPkts65to l 27Bytes) (A<7 0> = A8h for low order word. AAh for high order word) Counts all packets received with a length between 65 and 127 bytes This includes all packets witii or without CRC or Frame Alignment eπors The size of this counter is 23 bits Received Packets with Length 128 to 255 Bvtes (RXPktsl28to255Bytes) (A<7 0> = ACh for low order word. AEh for high order word) Counts all packets received witii a length between 128 and 255 bytes This includes all packets with or without CRC or Frame Alignment eπors The size of this counter is 22 bits Received Packets widi Length 256 to 51 1 Bvtes (RXPkts256to 1 1 Bvtes) (A<7 0> = BOh for low order word, B6h for high order word) Counts all packets received with a length between 256 and 51 1 bytes This includes all packets witii or without CRC or Frame Alignment eπors The size of this counter is 21 bits Received Packets with Length 512 to 1023 Bvtes (RXPkts512to l023Bvtes) (A<7 0> = B4h for low order word. B6h for high order word) Counts all packets received widi a length between 512 and 1023 bytes This includes all packets with or without CRC or Frame Alignment eπors The size of tiiis counter is 20 bits Received Packets witii Lengtii 1024 to 1518 Bvtes (RXPkts l024to l 5 I 8Bvtes) (A<7 0> = B8h for low order word, B6h for high order word) Counts all packets received witii a length between 1024 and 1518 bytes This includes all packets witii or without CRC or Frame Alignment eπors The size of this counter is 19 bits D Transmit Statistics Counter Registers This section contains the descπptions of the SCENIC Statistics Counter Registers for transmit packets These counters gather statistics on any eπored packet that is transmitted Packets that are transmitted witii enors are caused bv either a network eπor, such as a collision, or by the svstem software specifically attempting to transmii an eπored packet, such as transmitting a packet without coπect CRC value The latter is not counted bv these counters since it is assumed tiiat the system software can count such events However, since network induced transmit eπors cannot be counted by die svstem software, tiiese counters will gather that information Anytime the SCENIC is not able to complete the transmission of the entire packet tiiat it was given to transmit tiie SCENIC w ill record die following information Transmitted Packets with Length M Bvtes (TXPkts64 Bvtes) 95/12946 (A<7 0> = COh for low order word, C2h for high order word) Counts all packets transmitted with a length equal to 64 bvtes Th s means that anytime a packet of size 64 bvtes leaves the SCENIC, no matter whether it was a good transmitted packet or an mcoπectly or mcompletelv transmitted packet, this counter is incremented This counter is also mcremented even if the SCENIC is responsible for aboπing the packet mcoπectly smce data will have still been transmitted from the chip The size of tins counter is 23 bits Transmitted Packets with Length 65 to 127 Bvtes (TXPkts65to l27Bvtes) (A<7 0> = C4h for low order word, C6h for high order word) Counts all packets transmitted with a length between 65 and 127 bytes This mcludes all packet transmissions wit or without eπors This counter works the same as TXPkts64Bytes The size of this counter is 23 bits Transmitted Packets with Length 128 to 255 Bvtes (TXPktsl28to255Bvtes) (A<7 0> = C8h for low order word, CAh for high order word) Counts all packets transmitted with a length between 128 and 255 bvtes This mcludes all packet transmissions wit or without eπors This counter works the same as TXPkts64Bvtes The size of this counter is 22 bus Transmitted Packets witii Length 256 to 51 1 Bvtes (TXPkts256to51 1 Bvtes) (A<7 0> = CCh for low order word, CEh for high order word) Counts all packets transmitted witii a length between 256 and 51 1 bytes This includes all packet transmissions wit or witiiout eπors Tlus counter works the same as TXPkts64Bvtes The size of tins counter is 21 bits Transmitted Packets with Length 512 to 1023 Bvtes fTXPkts512toI023Bvtes) (A<7 0> = DOh for low order word, D2h for high order word) Counts all packets transmitted ith a length between 65 and 127 bvtes This includes all packet transmissions it or without eπors This counter works the same as TXPkts64Bvtes The size of this counter is 20 bits Transmitted Packets with Length 1024 to 1518 Bvtes (TXPktsl024to l 518Bvtes) (A<7 0> = D4h for low order word D6h for high order word) Counts all packets transmitted w ith a length between 1024 and 1518 bvtes Tins includes all packet transmissions w it or w itiiout eπors Tins counter works tiie same as TXPkts64Bvtes The size of tins counter is 19 bits Transmitted Out of Window Collisions (TXOWC) (A<7 0> = D8h for low order word DAIi for high order word) Counts all occuπcnces of .an Out of Window Collision (OWC) This counter mav be incremented multiple times for die same packet since it is possible for multiple OWCs to occur for a single packet Extended OWCs (EOWC) which arc also called Un-Retransmittable Collisions (URC) are also counted The si7c of the counter is 23 bits Transmitted Runt Packets (TXRuntEπored) ( \<7 0> = DCh for low order w ord DEh for high order word) Counts all run packets that are transmitted by the SCENIC with eπors. This means that anytime an eπor causes the SCENIC to put less than 64 bytes, but more than 0 bytes, not including preamble, onto the network, this counter wϊTl be incremented. This kind of packet may be caused by collisions, transmit aborts and FBO overruns for example. The size of this counter is 25 bits. Transmitted Packets with Errors (TXPktsEmored) (A<7:0> = EOh for low order word, E2h for high order word) Counts all normal sized Ethernet packets transmitted by the SCENIC with eπors. This means anytime an eπor occurs and causes the SCENIC to put out between 64 and 1518 bytes inclusive onto the network, with an eπor (not including preamble). Conditions that may cause this eπor are collisions. transmit aborts and FBO undemins for example. The size of this counter is 23 bits. Transmitted Bvtes with Eπors (TXBvtesErrored) (A<7:0> = BCh for low order word, BEh for high order word) Counts any byte that is transmitted from the SCENIC in a packet that is transmitted with eπors This does not include preamble bytes. The size of this counter is 29 bits. AC SPECBICATIONS Figs. 48-57 show the ACE timing specifications for the SCENIC. Unless otherwise indicated, all input timing shown in the following diagrams is synchronous and cannot be violated without risking possible metastability. Asynchronous input signals are shown with setup and hold timing, but it is not necessary to meet the timing since these signals are double synchronized to avoid metastability problems. If, however, the asynchronous timing is met. then it is guaranteed that the signal will be properly sampled at the specified edge instead of at the next sampling edge. In accordance with another aspect of the invention, the SCENIC provides a means for observing the present states of any state machine within the device. A single register is placed into the user-accessible register space. As shown in Fig,- 58, this register-will serve as a pointer to a present state memory map The designer will have mapped the states of all FSM's into this address space. In order to use this feature, the user would first perform a write cycle to the observation pointer . Tlie data written into this register would coπespond to the chosen state machine's "address" within its memory map. Following tiiis transfer, a write cycle to a test register would set a bit enabling ceπain primary I/I's to become observation points. Once in this mode, tiiese observation points allow tiie presen t states to flow out of the chip, real time. The primary advantage to this feature is seen during the initial debut of first silicon . If the chip locks up while using tiiis feature, the tester is able to give not only tlie lock-up conditions but tiie actual state when the lock-up occuπed. This will speed up the diagnosis of problems . It should be understood that various alternatives to the embodiments of tiie invention described herein may be employed in practicing the invention It is intended that the following claims define the scope of the invention and diat methods and structures within die scope of tiiese claims and their equivalents be covered thereb

Claims: What is claimed is 1 A configurable network interface controller that includes means for removing unwanted data from a FBO after it has been determined that the data is no longer wanted (Lohmever, Ketchum) 2 A configurable network interface controller as in claim 1 that includes means for automatically retransmitung collided Etiiemet frames from a local RAM (Ketchum) 3 A configurable network interface controller as m claim 1 that mcludes a user-programmable, two level pπoπty arbitration svstem (Ketchum) 4 A configurable network interface controller as m claim 1 that includes means for observing the present states of anv internal state machme (Ketchum) 5 A configurable network interface controller as m claim 1 that includes a common encoded dual-function chip select signal that serves both as a chip select for multiple dπves and as- an identification signal to a master controller (Lohmever) b A configurable network interface controller as m claim 1 that provides a multi-chip FBO extension protocol bv which phvsicallv separate FBOs can be made to operate as tiiough they are a single FBO (Lohmever) 7 A configurable network interface controller as in claim 1 that provides for programmed ignore bits in address matching such that filteπng is possible to allow for "don t care" bits witiiin the address field (Saleminik) 8 A configurable network interface controller as in claim 1 tiiat provides for vaπable sized blocked address space bv which it is possible to create a bus where multiple dev ices of different address space sizes can co-exist on the same bus at the same time the address space for each bus device being separate from die otiiers (Lohmever) 9 A configurable network interface controller as in claim 1 that includes receive and transmit network statistics counters tiiat suppoπ LME, MIB and RMON statistics (Saleminik Lohmever)

Inventors: KETCHUM KEVIN DALE, LOHMEYER MICHAEL GLENN, SALEMINIK IRAJ, KETCHUM, KEVIN, DALE, LOHMEYER, MICHAEL, GLENN, SALEMINIK, IRAJ
Applicants: NAT SEMICONDUCTOR CORP, NATIONAL SEMICONDUCTOR CORPORATION
Application year: 1994
Main classification: H04L29
IPC codes: H04L12, H04L29