KR100474658B1 - Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets - Google Patents

Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets Download PDF

Info

Publication number
KR100474658B1
KR100474658B1 KR10-1998-0709203A KR19980709203A KR100474658B1 KR 100474658 B1 KR100474658 B1 KR 100474658B1 KR 19980709203 A KR19980709203 A KR 19980709203A KR 100474658 B1 KR100474658 B1 KR 100474658B1
Authority
KR
South Korea
Prior art keywords
fifo
data
bit
ethernet
size
Prior art date
Application number
KR10-1998-0709203A
Other languages
Korean (ko)
Other versions
KR20000011052A (en
Inventor
앨록 싱
래자트 로이
제리 쿠오
Original Assignee
어드밴스드 마이크로 디바이시즈, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Priority to KR10-1998-0709203A priority Critical patent/KR100474658B1/en
Publication of KR20000011052A publication Critical patent/KR20000011052A/en
Application granted granted Critical
Publication of KR100474658B1 publication Critical patent/KR100474658B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network

Abstract

스테이션과 이서넷 간의 데이터의 전송을 제어하는 이서넷 제어기가 개시되는바, 이 이서넷 제어기는 스테이션 CPU, 메모리 버퍼 및 이서넷 간의 데이터의 전송을 관리하는 4개의 FIFO들을 갖는다. 상기 4개의 FIFO들 각각은 제어기의 성능을 최대화하도록 선택된 사이즈를 갖는다. 이 제어기는 FIFO들 각각으로부터의 어떤 미결 요구가 우선 순위를 가질 것인지를 조정하는 조정기를 포함한다. 이 제어기는 각 FIFO에 의한 데이터의 전송을 허가 마다 32 바이트들로 제한한다. 각 FIFO는 데이터를 제 1 비트 사이즈 포맷에서 제 2 비트 사이즈 포맷으로 변환하는 논리를 포함한다. 이 제어기는 또한 16 비트 어드레스를 8 비트 어드레스 버스를 통해 전송하기 위해 2개의 8 비트 부분들로 변환하는 논리, 및 상기 2개의 8 비트 부분들을16 비트 어드레스로 재포맷하는 논리를 포함한다.An Ethernet controller is disclosed that controls the transfer of data between the station and the Ethernet, which has four FIFOs that manage the transfer of data between the station CPU, the memory buffer, and the Ethernet. Each of the four FIFOs has a size selected to maximize the performance of the controller. The controller includes a coordinator that adjusts which outstanding requests from each of the FIFOs will take priority. This controller limits the transfer of data by each FIFO to 32 bytes per grant. Each FIFO includes logic to convert data from the first bit size format to the second bit size format. The controller also includes logic to convert the 16 bit address into two 8 bit portions for transmission over an 8 bit address bus, and logic to reformat the two 8 bit portions into a 16 bit address.

Description

다수의 전송 패킷들에 대처하기 위한 어드레스 생성 및 SRAM으로/으로부터의 데이터 경로 조정{ADDRESS GENERATION AND DATA PATH ARBITRATION TO AND FROM SRAM TO ACCOMMODATE MULTIPLE TRANSMITTED PACKETS}ADDRESS GENERATION AND DATA PATH ARBITRATION TO AND FROM SRAM TO ACCOMMODATE MULTIPLE TRANSMITTED PACKETS

본 발명은 일반적으로 이서넷(ethernet)과 스테이션 간에 이루어지는 정보의 전송을 제어하는 방법 및 장치에 관한 것으로서, 특히 정보의 전송 성능을 증가시키는 방법 및 장치에 관한 것이다. 보다 구체적으로, 본 발명은 데이터를 제 1 비트 폭으로부터 제 2 비트 폭으로 변환시키고, 이 변환된 데이터에 대한 어드레스들을 생성하며, 그리고 SRAM 버퍼로/로부터의 기록 또는 판독 액세스를 위한 데이터 경로에 대한 액세스를 조정하는 방법 및 장치에 관한 것이다.The present invention relates generally to a method and apparatus for controlling the transmission of information between an ethernet and a station, and more particularly to a method and apparatus for increasing the transmission performance of information. More specifically, the present invention converts data from a first bit width to a second bit width, generates addresses for the converted data, and for a data path for write or read access to / from an SRAM buffer. A method and apparatus for coordinating access.

국부 영역 네트워크("LAN")는 직장, 빌딩, 또는 이러한 빌딩들의 군(cluster)과 같은 제한된 지리적 영역 내에서, 퍼스널 컴퓨터, 워크스테이션, 파일 서버, 중계기, 데이터 단말 장치("DTE") 및 다른 정보 처리 장치가 서로 정보를 전자적으로 전송할 수 있게 하는 통신 시스템이다. LAN 내의 각 정보 처리 장치는 네트워크의 동작을 정의하는 고정 프로토콜(또는 표준 규격)에 따라 LAN 내의 다른 정보 처리 장치와 통신한다.Local Area Networks (“LANs”) are personal computers, workstations, file servers, repeaters, data terminal devices (“DTEs”), and others, within a limited geographic area such as a workplace, building, or cluster of such buildings. A communication system that enables information processing apparatuses to transmit information electronically to each other. Each information processing device in the LAN communicates with other information processing devices in the LAN according to a fixed protocol (or standard specification) that defines the operation of the network.

ISO의 개방형 시스템들의 상호 연결 기본 참조 모델은 LAN에서의 데이터 통신에 대해 7 계층 모델을 정의한다. 모델의 최하위 계층은 물리 계층이다. 이 물리 계층은 (a) 데이터가 전자적으로 전송되는 경로로서, 네트워크 노드들을 서로 연결하는 물리적인 매체, (b) 네트워크 노드들이 물리적인 전송 매체와 인터페이스하는 방식, (c) 물리적인 전송 매체를 통해 데이터를 전송하는 프로세스, 및 (d) 데이터 스트림의 프로토콜을 특징하는 모듈들로 이루어진다.The interconnect basic reference model of ISO's open systems defines a seven-layer model for data communication in the LAN. The lowest layer of the model is the physical layer. This physical layer is (a) a path through which data is transmitted electronically, a physical medium that connects network nodes to each other, (b) how the network nodes interface with a physical transmission medium, and (c) a physical transmission medium. A process of transmitting data, and (d) modules characterizing the protocol of the data stream.

IEEE 표준 802.3, 캐리어 검출 다중 엑서스 ·충돌 검출(CSMA/CD) 엑세스 방법 및 물리 계층 사양은 물리 계층에 대해 가장 널리 이용되는 표준들중 하나이다. 일반적으로 이서넷이라 불리는 IEEE 표준 802.3은, 꼬임쌍 케이블들 또는 이 꼬임쌍 케이블들 보다 비싼 동축 케이블들을 통한 데이터의 전송 다룬다. IEEE 표준 802.3의 10Base-T 프로토콜은 꼬임쌍 케이블들을 통한 데이터의 전송 속도를 10 Mbps로 규정한다.IEEE Standard 802.3, Carrier Detection Multiple Access Collision Detection (CSMA / CD) access method and physical layer specification are one of the most widely used standards for the physical layer. IEEE standard 802.3, commonly called Ethernet, deals with the transmission of data over twisted pair cables or coaxial cables that are more expensive than these twisted pair cables. The 10Base-T protocol of IEEE Standard 802.3 specifies a data transfer rate of 10 Mbps over twisted pair cables.

도면을 참조하여, 도 1은 CPU(12)로 표시되는 워크스테이션, 퍼스널 컴퓨터, 파일 서버, 데이터 단말 장치 또는 다른 정보 처리 장치를 갖는 종래 기술의 시스템(10)이 어떻게 이서넷(22), 또는 매체 독립 인터페이스(24)로 표현되는 다른 타입의 데이터 통신 장치들에 연결되는 지를 도시한다. 도 1에서, 일반적으로 네트워크 인터페이스 제어기라고도 알려져있는 이서넷 제어기(14)는 CPU(12)와 이서넷(22)의 일력(및 출력) 라인들 사이에 위치한다. 전형적으로, 이서넷(22)의 연결은 2쌍의 꼬임쌍 구리 케이블들, 즉 10R로서 언급되는 입력쌍 및 10T로서 언급되는 출 력쌍으로 이루어진다.Referring to the drawings, FIG. 1 illustrates how the prior art system 10 having a workstation, a personal computer, a file server, a data terminal device, or other information processing device, represented by the CPU 12, or the Ethernet 22, or It is connected to other types of data communication devices represented by a media independent interface 24. In FIG. 1, an Ethernet controller 14, also commonly known as a network interface controller, is located between the power line (and output) lines of the CPU 12 and the Ethernet 22. Typically, the connection of Ethernet 22 consists of two pairs of twisted pair copper cables, an input pair referred to as 10R and an output pair referred to as 10T.

이서넷 제어기(14)는 출력쌍 또는 출력 케이블로의 출력 데이터의 전송 및 입력쌍 또는 입력 케이블로부터의 입력 데이터의 수신을 제어한다. 예를 들어, 출 력 데이터는, 출력쌍 또는 출력 케이블로 제공되기 전에, 전자기 간섭을 줄이기 위해 맨체스터 엔코딩(Manchester encoding)된다. 이 맨체스터 엔코딩에 의해, 데이터 스트림의 일부는 10 MHz로 펄스화되고, 데이터 스트림의 다른 부분들은 5 MHz로 펄스화된다.The Ethernet controller 14 controls the transmission of output data to the output pair or output cable and the reception of input data from the input pair or input cable. For example, output data is Manchester encoded to reduce electromagnetic interference before being provided to an output pair or output cable. By this Manchester encoding, part of the data stream is pulsed at 10 MHz and other parts of the data stream are pulsed at 5 MHz.

보다 많은 데이터를 보다 빨리 전송하고자 하는 끊임없는 요구 및 데이터 처리 성능을 증가시키고자 하는 요구는, 1OBase-T 프로토콜에 의해 규정되는 10 Mbps의 속도 보다 상당히 더 높은 데이터 전송 속도로의 확장을 필요로 한다. 그 결과로서, 현재의 기존 시스템들의 꼬임쌍 케이블들을 통해 100 Mbps의 유효 전송 속도로 이동하는 데이터에 대처하기 위해 IEEE 표준 802.3을 확장하는 100Base-TX 프로토콜이 존재한다. 물리적 전송 매체가 100Base-TX 속도 및 이 보다 늦은 1OBase-T 속도 모두에서 꼬임쌍 케이블들을 통해 전송되는 데이터를 처리할 수 있는 것이 바람직한 경우가 있다. 현재, 9.6 마이크로초의 패킷간 간격(interpacket gap)을 갖는 전이중 모드 동작을 지원하기 위해서는, 내부 PCI 버스 상에서 33 MHz의 PCI 속도를 지원하고, 100 Mbps 동작을 위해 최대 25 MHz의 이서넷 속도를 지원할 필요가 있다.The constant need to transfer more data faster and the need to increase data processing performance requires expansion to data rates considerably higher than the 10 Mbps rate specified by the 10Base-T protocol. . As a result, there is a 100Base-TX protocol that extends IEEE standard 802.3 to cope with data traveling at effective transmission rates of 100 Mbps over twisted-pair cables in current existing systems. It is sometimes desirable for a physical transmission medium to be able to process data transmitted over twisted pair cables at both 100Base-TX speeds and later 10Base-T speeds. Currently, to support full-duplex mode operation with an interpacket gap of 9.6 microseconds, it is necessary to support PCI speed of 33 MHz on the internal PCI bus and Ethernet speed of up to 25 MHz for 100 Mbps operation. There is.

이서넷 또는 매체 독립 인터페이스를 통해 서로 다른 속도로 데이터를 전송하는 것과 관련된 문제들에 부가적으로, 퍼스널 컴퓨터, 워크스테이션, 파일 서버,중계기, 데이터 단말 장치 및 이러한 다른 정보 처리 장치의 데이터 처리 성능이 변하는 것과 관련하여 문제들이 발생한다. 예를 들어, 퍼스널 컴퓨터 시스템에서, CPU(12)는 이서넷(22)을 통해 데이터를 수신 또는 전송하는 것 외에, 다른 장치 또는 임무(duty)를 처리해야 한다.In addition to the problems associated with transferring data at different speeds via an Ethernet or media independent interface, the data processing capabilities of personal computers, workstations, file servers, repeaters, data terminal devices, and other such information processing devices may be compromised. Problems arise with regard to change. For example, in a personal computer system, the CPU 12 must handle other devices or duties in addition to receiving or transmitting data via the Ethernet 22.

이서넷 제어기(14)는 CPU(12)에서 이서넷(22)으로의 데이터의 전송을 제어한다. 이서넷 제어기(14)가 직면하는 주요 문제들중 하나는 다양한 구성 요소들의 서로 다른 메모리 디바이스들이 서로 다른 사이즈를 갖는 다는 것이다. 예를 들어, 반도체 디바이스들은 가능한한 작게 유지할 필요가 있다. 이에 따라, 디바이스의 성능을 저하시키지 않으면서, 버스의 사이즈를 가능한한 작게 하는 것이 유리하다. 이해할 수 있는 바와 같이, 16 비트 버스는 32 비트 버스 사이즈의 절반이다. 이러한 16 비트 버스로 32 비트 버스와 같은 성능을 제공할 수 있다면, 그 부분은 16 비트 버스로 설계하는 것이 바람직하다. 또한, 버스 사이즈가 작을수록, 버스에 결함이 덜 생긴다.The Ethernet controller 14 controls the transfer of data from the CPU 12 to the Ethernet 22. One of the main problems faced by the Ethernet controller 14 is that different memory devices of various components have different sizes. For example, semiconductor devices need to be kept as small as possible. Accordingly, it is advantageous to make the size of the bus as small as possible without degrading the performance of the device. As can be appreciated, a 16 bit bus is half the size of a 32 bit bus. If such a 16-bit bus can provide the same performance as a 32-bit bus, it is desirable to design that part as a 16-bit bus. Also, the smaller the bus size, the less defects there are in the bus.

도 2는 서로 다른 사이즈의 구성 요소들을 도시한다. SRAM(16)은 16 비트의 메모리 디바이스이고, 데이터 버스(20)는 16 비트의 데이터 버스이며, 그리고 PCI 버스(18)는 전형적으로 32 비트의 버스이다. 현재에도 64 비트의 PCI 버스가 존재하기는 하지만, 미래의 컴퓨터 시스템들은 모두 64 비트 PCI 버스를 표준 버스 사이즈로서 가질 것이다. SRAM(16)은 이서넷 제어기(14)에 의해 버퍼로서 이용되어, 이서넷(22)으로부터 CPU(12)로, 또는 CPU(12)로부터 이서넷(22)으로 데이터 전송시 지연이 발생하는 것을 방지한다. 이러한 지연은, 예를 들어 CPU(12)에서의 긴 대기 시간에 의해, 또는 이서넷(22) 상에서의 충돌(이에 의해, 송신국은 방금 전송한 정보를 재전송해야 한다)에 의해 야기될 수 있다. BX FIFO(26), MX FIFO(28), BR FIFO(30) 및 MR FIFO(32)와 같은 다양한 FIFO들은 다양한 구성 요소들 간의 데이터전송을 제어한다. 예를 들어, BX FIFO(26)은 PCI 버스(18)를 통해 CPU(12)로부터 데이터를 수신한 다음, 이 데이터의 포맷을 16 비트 데이터 버스(20)를 통해 SRAM(16)으로 전송될 수 있도록 32 비트에서 16 비트로 바꾼다. 또한, 정보가 SRAM(16) 내에 배치되고 MX FIFO(28) 및 BR FIFO(30) 각각에 의해 SRAM(16)으로부터 효율적으로 검색되기 위해서는, BX FIFO(26) 및 MR FIFO(32)가 어드레스들을 생성해야 한다. 상기 MX FIFO(28) 및 BR FIFO(30)는 SRAM(16)으로부터 수신되는 16 비트 포맷을 32 비트 포맷으로 바꾼다.2 shows components of different sizes. SRAM 16 is a 16-bit memory device, data bus 20 is a 16-bit data bus, and PCI bus 18 is typically a 32-bit bus. Although there is now a 64-bit PCI bus, all future computer systems will have a 64-bit PCI bus as the standard bus size. The SRAM 16 is used as a buffer by the Ethernet controller 14 to prevent a delay in transferring data from the Ethernet 22 to the CPU 12 or from the CPU 12 to the Ethernet 22. prevent. This delay can be caused, for example, by a long wait time in the CPU 12 or by a collision on the Ethernet 22 (by which the transmitting station must retransmit the information just sent). . Various FIFOs, such as BX FIFO 26, MX FIFO 28, BR FIFO 30, and MR FIFO 32, control the data transfer between the various components. For example, the BX FIFO 26 may receive data from the CPU 12 via the PCI bus 18 and then transfer the format of this data to the SRAM 16 via the 16-bit data bus 20. Switch from 32 bits to 16 bits so that. In addition, the BX FIFO 26 and the MR FIFO 32 are required to locate addresses in order for the information to be placed in the SRAM 16 and efficiently retrieved from the SRAM 16 by the MX FIFO 28 and the BR FIFO 30, respectively. Should be created. The MX FIFO 28 and BR FIFO 30 convert the 16-bit format received from the SRAM 16 into a 32-bit format.

또한, 데이터를 수신할 필요가 있는 동시에 이서넷(22)을 통해 데이터를 전송할 필요가 있을 수 있고, 이서넷 제어기(14)가 CPU(12)로부터 데이터를 수신해야할 필요가 있는 동시에 CPU(12)로 데이터를 전송할 필요가 있을 수 있기 때문에, 이서넷 제어기(14)는 어떤 데이터가 먼저 전송 또는 수신될 것인지, 그리고 어떤 순서로 이후의 데이터가 전송 또는 수신될 것인지를 지능적으로 선택해야 할 필요가 있다.In addition, it may be necessary to receive the data and at the same time it may be necessary to transmit the data via the Ethernet 22, while the Ethernet controller 14 needs to receive the data from the CPU 12 and at the same time the CPU 12 Since it may be necessary to transmit data in a network, the Ethernet controller 14 needs to intelligently select which data will be transmitted or received first, and in what order subsequent data will be transmitted or received. .

메모리 디바이스에 저장하기 위해 데이터의 사이즈를 32 비트에서 16 비트로 효율적으로 바꾸는 방법, SRAM에 저장될 16 비트 데이터에 대한 어드레스들을 생성하는 방법, SRAM으로부터 검색하기 위해 데이터의 사이즈를 16 비트에서 32 비트로 효율적으로 바꾸고, 검색된 32 비트 데이터에 대한 어드레스들을 생성하는 방법, 및 이서넷 제어기에 의해 제어되는 다양한 기록 및 판독 기능들 사이에서 조정을 수행하는 방법이 필요하다.How to efficiently change the size of data from 32 bits to 16 bits for storage in a memory device, How to generate addresses for 16 bit data to be stored in SRAM, Efficiently size data from 16 to 32 bits to retrieve from SRAM And a method of generating addresses for retrieved 32-bit data, and a method of performing an adjustment between the various write and read functions controlled by the Ethernet controller.

EA-A-150 084호는 네트워크와 CPU 간의 데이터 전송을 제어하는 네트워크 제어기를 개시하는바, 이는 메모리, 데이터의 전송을 관리하는 FIFO, 및 이 FIFO를 제어하는 조정기(arbiter)를 포함한다. 하지만, 이는 이서넷 네트워크에 대해서는 개시하지 않는다.EA-A-150 084 discloses a network controller for controlling data transfer between a network and a CPU, which includes a memory, a FIFO for managing the transfer of data, and an arbiter for controlling this FIFO. However, this does not disclose for Ethernet networks.

명세서에 포함되어 본 발명의 일부를 형성하는 첨부 도면들은 상세한 설명과 함께 본 발명의 원리들을 설명한다.The accompanying drawings, which are incorporated in and form a part of the invention, together with the description, explain the principles of the invention.

도 1은 이서넷 및 매체 독립 인터페이스에 연결된 이서넷 제어기, 및 CPU를 갖는 종래 기술에 의한 시스템의 개관도이다.1 is an overview of a prior art system having an Ethernet controller coupled to an Ethernet and media independent interface, and a CPU.

도 2는 본 발명에 의해 교시되는 시스템을 도시한다.2 illustrates a system taught by the present invention.

도 3은 이서넷 제어기의 상세도이다.3 is a detailed view of the Ethernet controller.

도 4는 판독 및 기록 액세스들의 순서를 조정하기 위해 이서넷 제어기에 의해 이용되는 조정 알고리즘을 도시한다.4 shows a tuning algorithm used by the Ethernet controller to adjust the order of read and write accesses.

도 5는 서로 다른 비트 사이즈의 데이터가 어떻게 서로 다른 사이즈의 메모리 위치들에 위치되는 지를 도시한다.5 shows how data of different bit sizes are located in memory locations of different sizes.

도 6은 SRAM 버퍼 메모리에 데이터를 기록하기 위한 어드레스를 생성하는 방법을 도시한다.6 shows a method of generating an address for writing data to an SRAM buffer memory.

도 7은 SRAM 버퍼 메모리로부터 데이터를 검색하기 위한 어드레스를 생성하는 방법을 도시한다.7 shows a method of generating an address for retrieving data from an SRAM buffer memory.

실시예Example

도 1은 이서넷(22) 및 매체 독립 인터페이스(24)에 연결된 이서넷 제어기(14), 및 CPU(12)를 갖는 종래 기술에 의한 시스템(10)의 개관도이다. CPU(12)는 버스(17)에 의해 이서넷 제어기(14)에 연결된다.1 is an overview of a prior art system 10 having an Ethernet controller 14 connected to an Ethernet 22 and a media independent interface 24, and a CPU 12. CPU 12 is connected to Ethernet controller 14 by bus 17.

도 2는 본 발명에 따른 시스템(11)을 도시한다. 도면들에서, 동일한 부호는 동일한 구성 요소를 나타낸다. 이서넷 제어기(14)의 일부가 도 2에 도시된다. 이해될 사항으로서, 이서넷 제어기(14)는 본 발명에 의해 교시되는 기능 이외의 다른 많은 기능들을 갖지만, 본원에서는 본 발명과 관련된 기능들에 대해서만 설명한다.2 shows a system 11 according to the invention. In the drawings, like numerals represent like components. A portion of the Ethernet controller 14 is shown in FIG. As will be appreciated, the Ethernet controller 14 has many other functions than those taught by the present invention, but only the functions related to the present invention are described herein.

이서넷 제어기(14)의 도시된 부분의 기능은 이서넷(22) 그리고/또는 매체 독립 인터페이스(24)로/로부터의 데이터의 전송을 관리하는 것이다. 이서넷 제어기(14)는 CPU(12) 또는 이서넷(22) 또는 매체 독립 인터페이스(24)로/로부터의 데이터의 전송이 느려지는 것을 막기 위해, SRAM(16)을 버퍼로서 이용하여 데이터의 전송을 관리한다. 데이터의 전송이 느려지는 데에는 여러 가지 이유가 있는바, 예를들어 CPU(12)의 대기 시간이 길 수 있고, CPU(12)가 다른 인터럽트들로부터 자유(free)롭게 될 때 까지 이서넷(22)으로부터의 데이터의 전송이 중지될 수 있기 때문에 데이터의 전송이 느려진다. 역으로, CPU(12)가 이서넷(22)를 통해 데이터를 전송하고자 시도할 때 이 이서넷(22)은 사용중일 수 있기 때문에, CPU(12)로부터의 데이터는 이서넷(22)의 사용이 끝날 때까지 정지 또는 홀드된다.The function of the illustrated portion of the Ethernet controller 14 is to manage the transmission of data to / from the Ethernet 22 and / or the media independent interface 24. The Ethernet controller 14 uses the SRAM 16 as a buffer to transfer data to and from the CPU 12 or the Ethernet 22 or the media independent interface 24 to slow down. Manage. There are various reasons for the slow data transfer, for example, the CPU 12 may have a long wait time and the Ethernet 22 until the CPU 12 is free from other interrupts. The transfer of data is slowed down because the transfer of data from < RTI ID = 0.0 > Conversely, the data from the CPU 12 may not be used when the CPU 12 attempts to transfer data through the Ethernet 22, so that data from the CPU 12 may be used. It is stopped or held until it is finished.

정보의 전송 또는 수신을 완료할 수 없음으로써 야기되는 문제들을 해결하기위해, 이서넷 제어기(14)는 4개의 FIFO들을 갖는바, 각 FIFO는 이서넷 제어기(14)의 성능을 최대화할 수 있도록 선택된 사이즈를 갖는다. BX FIFO(26)는 180 바이트의 FIFO이고, MX FIFO(28)는 112 바이트의 FIFO이며, BR FIFO(30)는 160 바이트의FIFO이고, MR FIFO(32)는 108 바이트의 FIFO이다. BX FIFO(26) 및 BR FIFO(30)는 이서넷 제어기(14)의 BUS측에 있고, MX FIFO(28) 및 MR FIFO(32)는 이서넷 제어기(14)의 MAC(매체 액세스 제어)측에 있다. FIFO들 각각은 입력 기능 또는 출력 기능을 관리한다. BX FIFO(26)는 CPU(12)로부터 SRAM(16)으로의 데이터의 전송을 관리한다. MX FIFO(28)는 SRAM(16)으로부터 이서넷(22) 또는 매체 독립 인터페이스(24)로의 데이터의 전송을 관리한다. 유사하게, MR FIFO(32)는 이서넷(22) 또는 매체 독립 인터페이스(24)로부터의 데이터의 전송을 관리한다.To solve problems caused by the inability to complete the transmission or reception of information, the Ethernet controller 14 has four FIFOs, each of which is selected to maximize the performance of the Ethernet controller 14. Has a size. BX FIFO 26 is a 180 byte FIFO, MX FIFO 28 is a 112 byte FIFO, BR FIFO 30 is a 160 byte FIFO, and MR FIFO 32 is a 108 byte FIFO. The BX FIFO 26 and BR FIFO 30 are on the BUS side of the Ethernet Controller 14, and the MX FIFO 28 and MR FIFO 32 are on the MAC (Media Access Control) side of the Ethernet Controller 14 Is in. Each of the FIFOs manages an input function or an output function. The BX FIFO 26 manages the transfer of data from the CPU 12 to the SRAM 16. The MX FIFO 28 manages the transfer of data from the SRAM 16 to the Ethernet 22 or the media independent interface 24. Similarly, MR FIFO 32 manages the transfer of data from Ethernet 22 or media independent interface 24.

도 3은 이서넷 제어기(14)를 보다 상세히 도시한다. 도 2와 관련하여 설명된4개의 FIFO들 각각은 논리 블록을 포함하거나, 또는 이 논리 블록에 결합된다. BX FIFO(26)는 BX 논리(34)에 결합되는바, 이 BX 논리(34)는 SRAM(16)에 대한 어드레스들을 생성하고, CPU(12)로부터 16 비트 데이터 경로(20)를 통해 SRAM(16)으로 전송될 32 비트 데이터를 준비한다. MX FIFO(28)는 MX 논리(36)에 결합되는바, 이 MX논리(36)는 SRAM(16)으로부터 검색될 16 비트 데이터에 대한 어드레스들을 생성하고, SRAM(16) 내의 16 비트 데이터를 판독하고, SRAM(16)로부터 검색된 16 비트 데이터를 32 비트로 변환한 다음, 이 32 비트 데이터를 MX FIFO(28)에 기록한다. MR FIFO(32)는 MR 논리(38)에 결합되는바, 이 MR 논리(38)는 이서넷(22)으로부터 MR FIFO(32)에 의해 수신된 데이터를 16 비트 사이즈로 변환하고, SRAM(16)에 기록될16 비트 데이터에 대한 어드레스들을 생성한다. BR FIFO(30)는 BR 논리(40)에 결합되는바, 이 BR 논리(40)는 이서넷(22)으로부터 수신된 SRAM(16) 내의 데이터를 판독하여, 이 데이터를 16 비트 사이즈에서 32 비트 사이즈로 바꾼 다음, 이 32 비트사이즈의 데이터를 BR FIFO(30)에 기록한다. 이 32 비트 사이즈의 데이터는 BR FIFO(30)로부터 CPU(12)로 전송된다.3 shows the Ethernet controller 14 in more detail. Each of the four FIFOs described in connection with FIG. 2 includes or is coupled to a logical block. The BX FIFO 26 is coupled to the BX logic 34, which generates addresses for the SRAM 16, and from the CPU 12 through the 16 bit data path 20 through the SRAM ( 16) Prepare 32-bit data to be transferred. MX FIFO 28 is coupled to MX logic 36, which generates the addresses for the 16 bit data to be retrieved from SRAM 16, and reads the 16 bit data in SRAM 16. The 16-bit data retrieved from the SRAM 16 is converted into 32 bits, and the 32-bit data is recorded in the MX FIFO 28. The MR FIFO 32 is coupled to the MR logic 38, which converts the data received by the MR FIFO 32 from the Ethernet 22 into a 16 bit size, and the SRAM 16 Generate addresses for the 16-bit data to be written. The BR FIFO 30 is coupled to the BR logic 40, which reads the data in the SRAM 16 received from the Ethernet 22 and converts the data into 32 bits in a 16 bit size. After changing to the size, this 32-bit size data is recorded in the BR FIFO 30. This 32-bit size data is transferred from the BR FIFO 30 to the CPU 12.

SRAM 제어기(42)는 4개의 FIFO들을 제어하는바, 충돌이 발생하는 경우, 즉 1개 이상의 FIFO가 데이터를 전송하기 위해 버스에 대한 액세스를 요구하면, 이 SRAM 제어기(42)는 어떤 순서로 어떤 FIFO가 우선 순위를 가질 것인 지를 결정하는 소정의 알고리즘에 따라 이러한 상황을 조정한다. 이 알고리즘에 대해서는 하기에서 설명한다.SRAM controller 42 controls four FIFOs. If a collision occurs, that is, if one or more FIFOs require access to the bus to transfer data, then the SRAM controller 42 is in what order. Adjust this situation according to some algorithm that determines whether the FIFO will have priority. This algorithm is described below.

도 3에 도시된 시스템의 전체적인 동작은 다음과 같다. 이서넷 제어기(14)는CPU(12)로부터 이서넷(22)으로의 데이터의 전송에 대한 전체 동작 및 이서넷(22)으로부터 CPU(12)로의 데이터의 전송을 관리한다. 상기 설명된 바와 같이, 이서넷(22)으로/으로부터의 데이터 전송에 있어서의 주요 문제들중 하나는 이러한 임의 데이터의 전송에 영향을 줄 수 있는 여러 가지 요인들이 있다는 것이다. 한 요인은 서로 다른 속도들에 대처해야한다는 것이다. PCI 버스(18)는 33 MHz의 속도로 동작하고, 이서넷(22)은 9.6 마이크로초의 패킷간 간격을 갖는 전이중 동작을 지원하는100 Mbps의 동작에 대해 최대 25 MHz로 동작한다. 이서넷 제어기(14)의 주요 기능 들중 하나는 이러한 데이터의 수신 또는 전송시의 모든 지연을 최소화하는 방식으로 다양한 구성 요소들 간의 데이터의 전송을 관리하는 것이다. 예를 들어, CPU(12)(미도시)가 이서넷(22)으로 데이터를 전송하기를 원하면, 이 CPU(12)는 BX FIFO(26)와 통신하여 이 BX FIFO(26)에 데이터를 전송한다. BX FIFO(26)는 BX 요구라인(44)을 통해 SRAM 제어기(42)로부터 버스에 대한 액세스를 요구한다. BX 논리(34)가 BX 제어 라인(46)을 통해 SRAM 제어기(42)로부터 허가(grant)를 수신하면, 이 BX 논리(34)는 CPU(12)로부터 수신된 32 비트 사이즈의 데이터를 16 비트 사이즈의 데이터로 변경한 다음, 이 16 비트 포맷의 데이터를 저장하기 위해 SRAM(16)에 대한 어드레스들을 생성한다. 변환된 데이터는 16 비트 버스(20)를 통해SRAM(16)으로 전송되어 이 내에 기록된다. BX 논리(34)는 BX FIFO(26)로부터SRAM(16)으로의 데이터의 흐름을 제어하는 상태 머신(state machine)으로서, SRAM제어기(42)로부터 허가 신호를 얻으면 동작한다. BX FIFO(26)는 32 비트 폭을 갖고 데이터 버스(20)는 16 비트 폭을 갖는다. 이에 따라, 각 사이를 마다 16 비트 사이즈의 데이터 버스 상에서 단지 16 비트 만을 기록할 수 있기 때문에, BX 논리(34)가 16 비트 사이즈의 데이터를 SRAM(16)에 기록하기 위해서는 2개의 사이클이 필요하다. BX FIFO(26)가 180 바이트의 사이즈를 가질 때, 이 BX FIFO(26)를 통한 데이터 전송이 최대화되는 것으로, 즉 BX FIFO(26)를 통한 데이터 전송시의 모든 지연이 최소화되는 것으로 밝혀졌다. 하기 설명되는 바와 같이, SRAM 제어기(42)는 시스템(11)의 성능을 최대화하는 조정 알고리즘에 따라, BX FIFO(26)를 포함하는 모든 FIFO들을 통한 데이터의 수신 및 전송을 관리한다.The overall operation of the system shown in FIG. 3 is as follows. The Ethernet controller 14 manages the overall operation of the transfer of data from the CPU 12 to the Ethernet 22 and the transfer of the data from the Ethernet 22 to the CPU 12. As described above, one of the major problems in the transmission of data to and from Ethernet 22 is that there are a number of factors that can affect the transmission of such arbitrary data. One factor is the need to cope with different speeds. PCI bus 18 operates at a rate of 33 MHz, and Ethernet 22 operates at up to 25 MHz for 100 Mbps operation supporting full duplex operation with an inter-packet interval of 9.6 microseconds. One of the main functions of the Ethernet controller 14 is to manage the transmission of data between the various components in a manner that minimizes all delays in receiving or transmitting such data. For example, if CPU 12 (not shown) wants to send data to Ethernet 22, this CPU 12 communicates with BX FIFO 26 to send data to this BX FIFO 26. do. The BX FIFO 26 requests access to the bus from the SRAM controller 42 via the BX request line 44. When the BX logic 34 receives a grant from the SRAM controller 42 via the BX control line 46, the BX logic 34 receives 16 bits of 32-bit data received from the CPU 12. After changing to size data, addresses for SRAM 16 are generated to store this 16-bit format data. The converted data is transferred to the SRAM 16 via the 16 bit bus 20 and written therein. The BX logic 34 is a state machine that controls the flow of data from the BX FIFO 26 to the SRAM 16 and operates when a permission signal is obtained from the SRAM controller 42. The BX FIFO 26 is 32 bits wide and the data bus 20 is 16 bits wide. Accordingly, since only 16 bits can be written on the 16-bit data bus between each, two cycles are required for the BX logic 34 to write 16-bit size data to the SRAM 16. . When the BX FIFO 26 has a size of 180 bytes, it has been found that data transmission through this BX FIFO 26 is maximized, that is, all delays in data transmission through the BX FIFO 26 are minimized. As described below, the SRAM controller 42 manages the reception and transmission of data through all FIFOs, including the BX FIFO 26, in accordance with a tuning algorithm that maximizes the performance of the system 11.

SRAM(16)의 사이즈는 선택가능한바, 이 실시예에서는 64 킬로 바이트로 선택되었지만, 적어도 128 킬로 바이트까지 확장할 수 있다. 따라서, 각 메모리 위치를 액세스하기 위해서는 16 비트의 어드레스를 가질 필요가 있다. 그러나, 이서넷 제어기(14)는 공간을 절약하고 보다 비용 효율적으로 하기 위해 단지 8비트의 어드레스 포트들 만을 갖는다. 이러한 이유로, 16 비트 어드레스는 상위 8 비트 부분 및 하위 8 비트 부분으로 분할되어 8 비트 어드레스 버스를 통해 전송된 다음, 이서넷제어기(14)의 외부에서 16 비트 어드레스로 재조립되어야 한다. 어드레스 생성 및 전송에 대한 상세한 사항은 도 6 및 7을 참조하여 하기에서 설명된다.The size of the SRAM 16 is selectable, although in this embodiment it has been chosen to be 64 kilobytes, it may extend to at least 128 kilobytes. Thus, in order to access each memory location, it is necessary to have a 16-bit address. However, the Ethernet controller 14 has only 8 bit address ports to save space and make it more cost effective. For this reason, the 16 bit address must be divided into an upper 8 bit portion and a lower 8 bit portion, transmitted over an 8 bit address bus, and then reassembled into a 16 bit address outside of the Ethernet controller 14. Details of address generation and transmission are described below with reference to FIGS. 6 and 7.

이서넷 제어기(14)는 MX FIFO(28)를 통해 이서넷 네트워크와 항상 통신하고 있어, 이용되는 프로토콜의 형태에 따라, 시스템은 언제 이서넷(22)을 통해 데이터가 전송될 수 있는 지를 결정한다. 이서넷(22)을 통해 데이터가 전송될 수 있게 되면, MX FIFO(28)는 MX 요구 라인(47)을 통해 SRAM 제어기(42)로부터 데이터 버스(20)에 대한 액세스를 요구한다. 액세스가 허가되어 MX 제어 라인(48)을 통해 MX 논리(36)로 전송되면, SRAM(16)에 임시적으로 기록되었거나 또는 MX FIFO(28)에 있는 데이터는 CPU(12)로부터 BX FIFO(26)에 의해 수신된 원래의 32 비트 형태로 변환되어, MX FIFO(28)에 의해 이서넷(22)을 통해 전송된다. MX FIFO(28)는 SRAM(16)으로부터 MX FIFO(28)로의 데이터의 흐름을 제어하는 상태 머신으로서, SRAM 제어기(42)로부터 허가 신호를 얻으면 동작한다. MX FIFO(28)는 32 비트 폭을 갖고 데이터 버스(20)는 16 비트 폭을 갖는다. 따라서, MX 논리(36)가 16 비트 데이트를 2번 판독한 다음 논리를 이용하여 이들을 이중 워드(32 비트)로 조립한 후, 기록 신호가 MX FIFO(28)에 제공된다. 이는 MX FIFO(28)에 대한 기록은 1 사이클 걸러서 이루어지고, SRAM(16)으로부터의 판독은 매 사이클 마다 이루어진다는 것을 의미한다. MX FIFO(28)는 SRAM(16)으로부터의 판독 및 MX FIFO(28)에 대한 기록을 제어한다.The Ethernet controller 14 is always in communication with the Ethernet network via the MX FIFO 28 so that, depending on the type of protocol used, the system determines when data can be transmitted over the Ethernet 22. . Once the data can be transmitted over Ethernet 22, MX FIFO 28 requests access to data bus 20 from SRAM controller 42 via MX request line 47. When access is granted and sent to the MX logic 36 via the MX control line 48, data written to the SRAM 16 temporarily or in the MX FIFO 28 is transferred from the CPU 12 to the BX FIFO 26. Converted to the original 32-bit form received by < RTI ID = 0.0 > and transmitted via < / RTI > The MX FIFO 28 is a state machine that controls the flow of data from the SRAM 16 to the MX FIFO 28 and operates upon obtaining a permission signal from the SRAM controller 42. The MX FIFO 28 is 32 bits wide and the data bus 20 is 16 bits wide. Thus, after the MX logic 36 reads the 16 bit data twice and assembles them into double words (32 bits) using logic, a write signal is provided to the MX FIFO 28. This means that writing to the MX FIFO 28 is made every other cycle, and reading from the SRAM 16 is made every cycle. MX FIFO 28 controls reading from SRAM 16 and writing to MX FIFO 28.

MR FIFO(32)가 이서넷으로부터 수신될 데이터가 존재하는 지를 감지하면, 이MR FIFO(32)는 MR 요구 라인(50)을 통해 SRAM 제어기(42)로부터 데이터 버스(20)에대한 액세스를 요구한다. SRAM 제어기(42)가 MR 제어 라인(52)을 통해 액세스를 허가하면, MR FIFO(32)에 의해 수신되는 데이터는 MR 논리(38)에 의해 16 비트 포맷으로 변환된 다음 16 비트 데이터 버스(20)를 통해 SRAM(16)으로 전송된다. MR 논리(38)의 동작은 상기 설명된 BX 논리(34)의 동작과 유사하다.If the MR FIFO 32 detects that there is data to be received from the Ethernet, the MR FIFO 32 requests access to the data bus 20 from the SRAM controller 42 via the MR request line 50. do. When the SRAM controller 42 grants access via the MR control line 52, the data received by the MR FIFO 32 is converted by the MR logic 38 into a 16 bit format and then a 16 bit data bus 20 Is transmitted to the SRAM 16 via. The operation of MR logic 38 is similar to the operation of BX logic 34 described above.

CPU가 이서넷으로부터 수신된 데이터를 수신할 준비가 되면, BR FIFO(30)는BR 요구 라인(54)을 통해 SRAM 제어기(42)로부터 데이터 버스(20)에 대한 액세스를 요구한다. 액세스가 허가되면, SRAM 제어기(42)는 BR 논리(40)와 통신하는바, 이 BR 논리(40)는 SRAM(16)으로부터 데이터를 판독하여, 16 비트 데이터 포맷으로 저장된 데이터를 32 비트 데이터 포맷으로 변환한 다음 BR FIFO(30)로 전송한다. BR FIFO(30)는 이 데이터를 CPU로 전송한다. BR 논리(40)의 동작은 상기 설명한 MX 논리(36)의 동작과 유사하다.When the CPU is ready to receive data received from the Ethernet, the BR FIFO 30 requests access to the data bus 20 from the SRAM controller 42 via the BR request line 54. If access is granted, the SRAM controller 42 communicates with the BR logic 40, which reads data from the SRAM 16 to convert the data stored in the 16-bit data format into the 32-bit data format. After conversion to the BR FIFO (30). The BR FIFO 30 sends this data to the CPU. The operation of the BR logic 40 is similar to the operation of the MX logic 36 described above.

도 4는, 동시에 다수의 요구들이 있는 경우, SRAM 제어기(42)(도 4)가 어떤 순서로 버스에 대한 요구들을 처리하는 지를 나타내는 조정 알고리즘(56)을 도시한다. SRAM 제어기(42)는 도 4에 보인 알고리즘 방식을 이용하여 4개의 모든 논리 블록들로부터의 요구들을 처리한다.4 shows an adjustment algorithm 56 that indicates in what order the SRAM controller 42 (FIG. 4) processes requests for the bus when there are multiple requests at the same time. SRAM controller 42 processes the requests from all four logical blocks using the algorithmic scheme shown in FIG.

또한, 본 발명은 이서넷 제어기(42)의 구성 요소들 간에 전송되어야 하는 최적수의 바이트들이 존재한다는 것을 교시한다. 바이트들의 최적수는 약 32개인 것으로 결정되었다. 이는, 예를 들어 BX FIFO(26)에 의해 버스에 대한 요구가 이루어지기 전에, BX FIFO(26) 내에서 32 바이트의 데이터가 조립되어야 함을 의미한다(유일한 예외는, 전송될 마지막 바이트가 BX FIFO(26) 내에서 검출되는 때이다). 또한, 한 구성 요소에서 다음 구성 요소로 전송되는 바이트들의 최적의 수는 32개의 바이트들인 것으로 결정되었다. 한계(이 경우 32 바이트)에 도달하면, 시스템은 전송 또는 수신을 중단한 다음, 다른 기능들을 폴링하여 전송 또는 수신될 필요가 있는 다른 정보가 있는 지를 결정한다.In addition, the present invention teaches that there is an optimal number of bytes that must be transmitted between the components of the Ethernet controller 42. The optimal number of bytes was determined to be about 32. This means, for example, that 32 bytes of data must be assembled within the BX FIFO 26 before a request to the bus is made by the BX FIFO 26 (the only exception is that the last byte to be transmitted is BX When detected within the FIFO 26). In addition, the optimal number of bytes sent from one component to the next was determined to be 32 bytes. When the limit (32 bytes in this case) is reached, the system stops transmitting or receiving and then polls other functions to determine if there is any other information that needs to be sent or received.

도 4를 다시 참조하여, 다수의 요구들이 동시에 존재하고 시스템이 아이들(idle) 상태(58)에 있는 제 1 경우, 이 시스템은 먼저 수신측(60)을 주목한 다음, MAC측(62)의 수신에 대한 액세스를 처음으로 허가한다. 62에서 어떠한 미결 요구도 없으면 시스템은 전송측(64)으로 가고, 버스 전송(66)에서 미결 요구가 있으면 버스 전송에 대한 액세스를 허가한다. 버스 전송에서 어떠한 미결 요구도 없으면, 시스템은 수신측(60)으로 가서, 버스 수신(68)에 대한 액세스를 허가한다. 68에서 어떠한 미결 요구도 없으면, 시스템은 전송측(64)을 주목한 다음, MAC 전송(70)을 주목한다.Referring back to FIG. 4, in the first case where multiple requests exist simultaneously and the system is in an idle state 58, the system first looks at the receiving side 60 and then the MAC side 62. Grant access to the reception for the first time. If no outstanding request is made at 62, the system goes to the transmitting side 64, and if there is a pending request at bus transmission 66, grants access to the bus transmission. If there is no outstanding request in the bus transmission, the system goes to the receiving side 60 and grants access to the bus receiving 68. If there is no outstanding request at 68, the system looks at the transmitting side 64 and then the MAC transmission 70.

다른 기능들을 폴링하여 데이터 버스에 대한 미결 요구들이 있는 지의 여부를 결정하기 위해 시스템이 정지하는 경우, 이 시스템은 상기 설명한 것과 같은 순서로 미결 요구를 허가한다. 도 5는 바이트 사이즈의 데이터가 시스템의 다양한 구성 요소들에 어떻게 저장되는 지를 도시한다. 72 및 74로 표시된 위치들에는, FIFO에 저장된 5개의 데이터 바이트들(D0 내지 D4)을 갖는 BX FIFO(26)의 작은 부분이 도시되어 있다. 또한, 76으로 표시된 위치에는, 8 비트 바이트들로 저장된 32비트의 STATUS 데이터(S0 내지 S3)가 도시되어 있다. 78로 표시된 메모리 위치에는, 8비트 바이트들로 저장된 32 비트의 DESCRIPTOR 데이터(DA0 내지 DA3)가 도시되어 있다. BX 논리(34)는 BX FIFO(26)로부터 32 비트 데이터를 판독하여, 80에서 16 비트 사이즈로 변환한 다음, 이 16 비트 데이터를 16 비트 데이터 버스(20)로 전송한다. 이 16 비트 데이터는 도시된 바와 같이 SRAM(16) 내에 기록된다. 제 1 메모리위치(82)는 시스템에 의해 예약되고, 2개의 8 비트 바이트들(EOP0 및 EOP1)을 포함하는바, 이들은 어디에 패킷의 끝이 위치하는지, 즉 어느 메모리 위치에 데이터 바이트(D4)가 위치하는 지에 대한 정보를 나타낸다. 제 2 메모리 위치(84) 또한 시스템에 의해 예약되고, 2개의 8비트 바이트들을 포함하는바, 이 예에서 이들은 상위바이트 위치에서는 HEX10이고 하위 바이트 위치에서는 HEX00이다. 메모리 위치들(86)에는 데이터(D0 내지 D4)가 있고, 계속하여 메모리 위치들(88 및 90)에는 2개의 16 비트 데이터가 뒤를 따르는바, 이 메모리 위치들(88 및 90)에는 4개의 8 비트 바이트의 STATUS 데이터들(S0 내지 S3)이 위치한다. 이러한 STAWS 데이터 정보메모리 위치들에 이어서, 메모리 위치들(92 및 94)에 위치하는 4개의 8비트 바이트의 DESCRIPTOR 데이터(DA0 내지 DA3)가 뒤를 따른다.If the system stops to poll other functions to determine whether there are open requests for the data bus, the system grants open requests in the same order as described above. 5 illustrates how byte sized data is stored in various components of the system. At the locations indicated by 72 and 74, a small portion of the BX FIFO 26 is shown with five data bytes D0-D4 stored in the FIFO. Also, at the position indicated by 76, 32 bits of STATUS data S0 to S3 stored in 8 bit bytes are shown. In the memory location indicated by 78, 32 bits of DESCRIPTOR data DA0 to DA3 stored in 8 bit bytes are shown. The BX logic 34 reads 32 bit data from the BX FIFO 26, converts it to 80 to 16 bit size, and then transfers the 16 bit data to the 16 bit data bus 20. This 16-bit data is written into the SRAM 16 as shown. The first memory location 82 is reserved by the system and includes two 8-bit bytes (EOP0 and EOP1), where the end of the packet is located, i.e. in which memory location the data byte D4 is located. Indicates information about where it is located. The second memory location 84 is also reserved by the system and contains two 8-bit bytes, in this example they are HEX10 in the upper byte position and HEX00 in the lower byte position. Memory locations 86 contain data D0 through D4, followed by two 16-bit data followed by memory locations 88 and 90, four eights in memory locations 88 and 90. STATUS data S0 to S3 of the bit byte are located. Following these STAWS data information memory locations, four 8-bit bytes of DESCRIPTOR data DA0 to DA3 located at memory locations 92 and 94 are followed.

MX FIFO(28)가 상기 설명한 바와 같이 데이터 버스(20)에 대한 액세스를 허가받으면, SRAM(16)으로부터 16 비트 데이터가 판독되어, 96에서 32 비트 데이터로 변환된 다음, MX FIFO(28)로 전송된다.When the MX FIFO 28 is granted access to the data bus 20 as described above, 16 bit data is read from the SRAM 16, converted into 96 to 32 bit data, and then to the MX FIFO 28. Is sent.

상기에서는, 이서넷 제어기(14)의 버스측으로부터 MAC측으로, 즉 CPU(12)(미도시)로부터 BX FIFO(26), SRAM(16), MX FIFO(28) 및 이서넷(22)으로의 데이터의 전송에 대해 설명했다. 이해될 사항으로서, MR FIFO(32)에서 데이터가 수신되어, SRAM(16)으로 전송되고, BR FIFO(30)에 의해 판독된 다음, CPU(12)로 전송될 때에도 동일한 설명이 적용될 수 있다.In the above, from the bus side of the Ethernet controller 14 to the MAC side, that is, from the CPU 12 (not shown) to the BX FIFO 26, the SRAM 16, the MX FIFO 28 and the Ethernet 22. The transfer of data has been described. As will be appreciated, the same description may also apply when data is received at MR FIFO 32, transmitted to SRAM 16, read by BR FIFO 30, and then transmitted to CPU 12.

도 6은 데이터가 SRAM(16) 내에 기록되고 있을 때 어드레스를 생성하는 방법을 도시한다. BX 논리(34)의 어드레스 생성부는 점선(98)에 있고, MR 논리(38)(도3)의 어드레스 생성부 또한 이 내에 있다. SRAM(16)에 대한 어드레스들을 생성하는 방법은, BX 기록 포인터(100)가 정보의 다음 패킷이 기록될 메모리 위치를 지시하는 것으로부터 시작된다. 패킷이 메모리 내에 기록되기 시작할 때, 개시 메모리 위치가 개시 패킷 포인터(102)에 저장된다. 따라서, 개시 패킷 포인터(102)는 BX 논리(34)가 패킷을 기록하기 시작하는 SRAM(16) 내의 메모리 위치의 어드레스를 홀드한다. 개시 메모리의 위치는 패킷의 끝의 메모리 위치와 함께 기록된다. 16 비트 어드레스는 8 비트 어드레스 버스를 통해 전송되어야하기 때문에, 이 16 비트 어드레스는 2개의 8 비트 부분들로 분할되어야 한다. 데이터가 기록될 때 어드레스들을 생성하기 위해서는, 각 바이트가 기록될 때 마다 어드레스의 하위 8 비트 부분을 증분(increment)시킬 필요가 있다. 상위 8 비트 부분은, 페이지가 기록될 때 마다, 즉 하위 8 비트가 HEXFF일 때 증분된다. 따라서, BX 기록 포인터(100)는 바이트가 SRAM(16) 내에 기록될 때 마다 BX 기록 포인터(100)를 증분시키는 하위 증분 입력(increment lower input)(104) 및 새로운 페이지가 시작될 때 마다, 즉 하위 어드레스 바이트가 HEXFF 값에 이른 후 BX 기록 포인터(100)를 증분시키는 상위 증분 입력(increment upper input)(106)을 갖는다. BX 기록 포인터(100)는 바이트가 방금 기록되었던 메모리 위치의 16 비트 어드레스를 포함한다. 16 비트 어드레스는 8비트 어드레스 버스를 통해 전송되기 때문에, MUX(108)는 16 비트 어드레스를 110으로 표현된 8 비트 버스를 통해 SRAM(16)으로 전송하기 위해 상위 8 비트 부분 및 하위 8 비트 부분으로 재포맷하는바, 도 6에는 SRAM(16)의 일부가 점선(112)으로 도시된다. 114에서 SRAM(16)은 2개의 8 비트 어드레스 부분들을 116으로 나타낸 16비트 어드레스(116)로 변환시킨다. 패킷의 끝이 SRAM(16) 내에 기록되면, 이 패킷 의 끝이 기록된 메모리 위치는, 개시 패킷 포인터(102)에 기록된 개시 메모리 위치내에 기록된다.6 shows a method of generating an address when data is being written into the SRAM 16. The address generator of the BX logic 34 is in the dotted line 98, and the address generator of the MR logic 38 (Fig. 3) is also therein. The method of generating addresses for the SRAM 16 begins with the BX write pointer 100 indicating the memory location where the next packet of information is to be written. When a packet begins to be written into memory, the starting memory location is stored in the starting packet pointer 102. Thus, the start packet pointer 102 holds the address of the memory location in the SRAM 16 where the BX logic 34 begins to write the packet. The location of the starting memory is recorded along with the memory location at the end of the packet. Since the 16 bit address must be transmitted over the 8 bit address bus, this 16 bit address must be divided into two 8 bit portions. In order to generate addresses when data is written, it is necessary to increment the lower 8 bit portion of the address as each byte is written. The upper 8 bit portion is incremented each time a page is written, ie when the lower 8 bits are HEXFF. Thus, the BX write pointer 100 is incremented lower input 104 which increments the BX write pointer 100 each time a byte is written into the SRAM 16 and whenever a new page is started, i.e., the lower one. It has an incremental upper input 106 that increments the BX write pointer 100 after the address byte reaches the HEXFF value. The BX write pointer 100 contains the 16 bit address of the memory location where the byte was just written. Since the 16-bit address is transmitted over the 8-bit address bus, the MUX 108 is sent to the upper 8-bit portion and the lower 8-bit portion to transfer the 16-bit address to the SRAM 16 via the 8-bit bus, represented by 110. Reformatted, FIG. 6 shows a portion of SRAM 16 as dotted line 112. At 114 SRAM 16 converts the two 8-bit address portions to 16-bit address 116, represented by 116. When the end of a packet is written into the SRAM 16, the memory location where the end of this packet is written is written into the start memory location recorded in the start packet pointer 102.

도 7은 SRAM(16)으로부터 데이터를 판독하기 위한 판독 어드레스를 생성하는MX 논리(36)의 점선(124) 내에 표시된 판독 어드레스 생성부를 도시한다. (점선(127) 내에 도시된) SRAM(16)의 일부의 판독 포인터(126)는 방금 판독된 바이트가 위치되는 16 비트 메모리 위치를 지시한다. 이 16 비트 메모리 위치는, MUX(128)에의해, 130으로 나타낸 8 비트 어드레스 버스 상에 배치되는 2개의 8 비트 부분들로 변환된다. 이러한 2개의 8 비트 어드레스 부분들은 MX 논리(36)에 의해 수신되어,플립 플롭(132)에 의해 16비트 어드레스(134)로 재조립된다.7 shows a read address generator shown in dotted line 124 of the MX logic 36 for generating a read address for reading data from the SRAM 16. A read pointer 126 of a portion of SRAM 16 (shown in dashed line 127) indicates the 16-bit memory location where the byte just read is located. This 16-bit memory location is converted by MUX 128 into two 8-bit portions disposed on the 8-bit address bus, indicated at 130. These two 8 bit address portions are received by the MX logic 36 and reassembled to the 16 bit address 134 by the flip flop 132.

본 발명의 바람직한 실시예에 대한 상기의 설명은 단지 예시의 목적으로 제시된 것으로서, 본 발명을 개시된 형태로 한정하고자 하는 것은 아니다. 상기 설명에 비추어 명백한 수정들 및 변형들이 이루어질 수 있다. 상기 설명된 실시예는 본발명의 원리들 및 실제 응용에 대한 최상의 예를 제공함으로써, 당업자로 하여금 고려되는 특정 용도에 따라 적절히 변형을 수행하여 본 발명을 다양한 실시예들에 이용할 수 있게 한다. 이러한 모든 변형 및 수정은 첨부된 청구항들에 의해 정의되는 본 발명의 범위 내에 포함된다.The foregoing description of the preferred embodiments of the present invention has been presented for purposes of illustration only, and is not intended to limit the present invention to the disclosed form. Obvious modifications and variations may be made in light of the above description. The embodiments described above provide the best examples of the principles and practical applications of the present invention, enabling those skilled in the art to make appropriate adaptations to the various embodiments in accordance with the particular application contemplated. All such variations and modifications are included within the scope of the invention as defined by the appended claims.

본 발명은 CPU를 갖는 스테이션과 네트워크 간의 데이터의 전송을 제어하는 네트워크 제어기-이 네트워크 제어기는 메모리, 데이터 전송을 관리하는 적어도 1개의 FIFO 및 상기 각 FIFO를 제어하는 조정기(42)(본 발명의 일 실시예에서는 SRAM 제어기이다)를 포함한다-를 제공하는바,The present invention relates to a network controller for controlling the transfer of data between a station having a CPU and a network, the network controller comprising a memory, at least one FIFO managing data transfer, and a coordinator 42 controlling each of the FIFOs. Embodiment is an SRAM controller).

상기 네트워크는 이서넷 네트워크이고;The network is an Ethernet network;

상기 적어도 1개의 FIFO는:The at least one FIFO is:

상기 CPU로부터 상기 메모리로의 CPU 데이터의 전송을 관리하는 제 1 FIFO(26), 및 상기 제 1 FIFO에 결합되어 상기 CPU 데이터를 제 1 비트 사이즈에서 제 2 비트 사이즈로 변환하고 상기 제 2 비트 사이즈의 상기 CPU 데이터를 상기 메모리에 기록하기 위한 어드레스들을 생성하는 제 1 논리(34)와;A first FIFO 26 for managing transfer of CPU data from the CPU to the memory, and coupled to the first FIFO to convert the CPU data from a first bit size to a second bit size and the second bit size First logic (34) for generating addresses for writing the CPU data of the memory to the memory;

상기 메모리로부터 상기 이서넷으로의 상기 CPU 데이터의 전송을 관리하는 제 2 FIFO(28), 및 상기 제 2 FIFO에 결합되어 상기 메모리 내의 상기 CPU 데이터를 판독하기 위한 어드레스들을 생성하고 상기 데이터를 상기 제 2 비트 사이즈에서 제 1 비트 사이즈로 변환하는 제 2 논리를 포함하며;A second FIFO 28 for managing the transfer of the CPU data from the memory to the Ethernet, and coupled to the second FIFO to generate addresses for reading the CPU data in the memory and storing the data; Second logic for converting from a two bit size to a first bit size;

상기 조정기는 상기 각 FIFO를 제어하고, 상기 각 FIFO를 통한 전송을 선택된 수의 바이트들로 제한하며, 상기 선택된 수의 바이트들이 전송된 후 상기 각FIFO를 폴링하여 전송 요구가 미결인지의 여부를 결정하는 것을 특징으로 한다. The coordinator controls each of the FIFOs, limits the transmission over each FIFO to a selected number of bytes, and polls each FIFO after the selected number of bytes are transmitted to determine whether a transmission request is outstanding. Characterized in that.

이서넷 제어기는 스테이션 CPU에서 버퍼 메모리로, 버퍼 메모리에서 이서넷으로, 이서넷에서 버퍼 메모리로, 그리고 버퍼 메모리에서 스테이션 CPU로의 데이터 전송을 관리하는 관련된 논리 형태를 갖는 4개의 FIFO들을 포함한다. 이서넷 제어기는 어떤 FIFO가 데이터 전송에 대해 우선 순위를 갖게 될 것인 지를 조정하는 조정기를 포함한다.The Ethernet controller includes four FIFOs with associated logic forms that manage data transfer from station CPU to buffer memory, from buffer memory to Ethernet, from Ethernet to buffer memory, and from buffer memory to station CPU. The Ethernet controller includes a coordinator that adjusts which FIFOs will be prioritized for data transmission.

각 FIFO와 관련된 논리는 데이터의 비트 사이즈를 제 1 비트 사이즈로부터 제 2 비트 사이즈로 변환하고, 버퍼 메모리로의 기록 또는 이 버퍼 메모리로부터의 판독을 위한 어드레스들을 생성한다. 이 논리는 또한 16 비트 어드레스를 8 비트 어드레스 버스를 통해 전송될 수 있도록 2개의 8 비트 부분들로 변환하며, 또한 이2개의 8 비트 부분들을 원래의 16 비트 어드레스로 변환한다.The logic associated with each FIFO converts the bit size of the data from the first bit size to the second bit size and generates addresses for writing to or reading from the buffer memory. This logic also converts the 16-bit address into two 8-bit portions so that it can be transmitted over an 8-bit address bus, and also converts these two 8-bit portions into the original 16-bit address.

조정기는 각 FIFO를 요구 마다 32 바이트 전송으로 제한하고, 각 32 바이트전송 후에 다른 FIFO들을 폴링하여 미결의 전송 요구가 있는 지의 여부를 결정한다. 이 조정기는 조정 알고리즘에 의해 요구들을 허가한다.The coordinator limits each FIFO to 32 byte transfers per request, and polls other FIFOs after each 32 byte transfer to determine whether there is an outstanding transfer request. This coordinator grants requests by the coordination algorithm.

각 FIFO는 이서넷 제어기의 성능을 최대화할 수 있도록 선택된 사이즈를 갖는다.Each FIFO has a size chosen to maximize the performance of the Ethernet controller.

본 발명은 첨부 도면을 참조하여 하기 설명되는 상세한 설명으로부터 명확해질 것이다. 하기의 설명으로부터 당업자에게 자명한 바와 같이, 본 발명을 수행하기 위한 최상의 방법으로서 고려되는 바람직한 실시예가 예시적으로 도시되어 설명된다. 알 수 있는 바와 같이, 본 발명의 범위를 벗어나지 않으면서, 다른 실시예들이 가능하며, 다양하고 명백한 양상들로 변형이 이루어질 수 있다. 따라서, 도면들 및 상세한 설명은 제한적인 것이 아닌 예시적인 것으로서 간주된다.The present invention will become apparent from the following detailed description with reference to the accompanying drawings. As will be apparent to those skilled in the art from the following description, the preferred embodiments to be considered as the best way for carrying out the invention are illustrated and described by way of example. As can be appreciated, other embodiments are possible without departing from the scope of the present invention, and variations may be made in various and obvious aspects. Accordingly, the drawings and detailed description are to be regarded as illustrative rather than restrictive.

Claims (16)

CPU를 갖는 스테이션과 네트워크 간의 데이터의 전송을 제어하는 네트워크 제어기-이 네트워크 제어기는 메모리, 데이터 전송을 관리하는 적어도 1개의 FIFO및 상기 각 FIFO를 제어하는 조정기(42)를 포함한다-에 있어서,A network controller for controlling the transfer of data between a station having a CPU and a network, the network controller comprising a memory, at least one FIFO for managing data transfer and a coordinator 42 for controlling each of the FIFOs. 상기 네트워크는 이서넷 네트워크이고;The network is an Ethernet network; 상기 적어도 1개의 FIFO는:The at least one FIFO is: 상기 CPU로부터 상기 메모리로의 CPU 데이터의 전송을 관리하는 제 1 FIFO(26), 및 상기 제 1 FIFO에 결합되어 상기 CPU 데이터를 제 1 비트 사이즈에서 제 2 비트 사이즈로 변환하고 상기 제 2 비트 사이즈의 상기 CPU 데이터를 상기 메모리에 기록하기 위한 어드레스들을 생성하는 제 1 논리(34)와;A first FIFO 26 for managing transfer of CPU data from the CPU to the memory, and coupled to the first FIFO to convert the CPU data from a first bit size to a second bit size and the second bit size First logic (34) for generating addresses for writing the CPU data of the memory to the memory; 상기 메모리로부터 상기 이서넷으로의 상기 CPU 데이터의 전송을 관리하는 제 2 FIFO(28), 및 상기 제 2 FIFO에 결합되어 상기 메모리 내의 상기 CPU 데이터를 판독하기 위한 어드레스들을 생성하고 상기 데이터를 상기 제 2 비트 사이즈에서 제 1 비트 사이즈로 변환하는 제 2 논리를 포함하며;A second FIFO 28 for managing the transfer of the CPU data from the memory to the Ethernet, and coupled to the second FIFO to generate addresses for reading the CPU data in the memory and storing the data; Second logic for converting from a two bit size to a first bit size; 상기 조정기는 상기 각 FIFO를 제어하고, 상기 각 FIFO를 통한 전송을 선택된 수의 바이트들로 제한하며, 상기 선택된 수의 바이트들이 전송된 후 상기 각FIFO를 폴링하여 전송 요구가 미결인지의 여부를 결정하는 것을 특징으로 하는 네트워크 제어기.The coordinator controls each of the FIFOs, limits the transmission over each FIFO to a selected number of bytes, and polls each FIFO after the selected number of bytes are transmitted to determine whether a transmission request is outstanding. Network controller, characterized in that. 제 1 항에 있어서,The method of claim 1, 상기 이서넷으로부터 상기 메모리로의 이서넷 데이터의 전송을 관리하는 제 3 FIFO(32)와; 그리고A third FIFO (32) for managing the transfer of Ethernet data from the Ethernet to the memory; And 상기 메모리로부터 상기 CPU로의 상기 이서넷 데이터의 전송을 관리하는 제 4 FIFO(30)를 더 포함하며;A fourth FIFO (30) for managing the transfer of the Ethernet data from the memory to the CPU; 상기 조정기가 상기 제 3 FIFO 및 상기 제 4 FIFO를 제어하는 것을 특징으로 하는 네트워크 제어기.And the coordinator controls the third FIFO and the fourth FIFO. 제 2 항에 있어서,The method of claim 2, 상기 제 3 FIFO에 결합되어, 상기 이서넷 데이터를 상기 제 1 비트 사이즈로부터 상기 제 2 비트 사이즈로 변환하고, 상기 메모리에 상기 제 2 비트 사이즈의 상기 이서넷 데이터를 기록하기 위한 어드레스들을 생성하는 제 3 논리(38)와; 그리고Coupled to the third FIFO, converting the Ethernet data from the first bit size to the second bit size and generating addresses for writing the Ethernet data of the second bit size to the memory; 3 logic 38; And 상기 제 4 FIFO에 결합되어, 상기 메모리 내의 상기 이서넷 데이터를 판독하기 위한 어드레스들을 생성하고 상기 이서넷 데이터를 상기 제 2 비트 사이즈로부터 상기 제 1 비트 사이즈로 변환하는 제 4 논리(40)를 더 포함하는 것을 특징으로 하는 네트워크 제어기.Further coupled to the fourth FIFO, fourth logic 40 for generating addresses for reading the Ethernet data in the memory and converting the Ethernet data from the second bit size to the first bit size. Network controller comprising a. 제 1 항 내지 제 3 항 중의 어느 항에 있어서, The method according to any one of claims 1 to 3, 상기 선택된 수의 바이트들은 32개의 바이트들인 것을 특징으로 하는 네트워크 제어기.And said selected number of bytes is 32 bytes. 제 1 항에 있어서,The method of claim 1, 상기 조정기는 조정 알고리즘에 따라 상기 FIFO들로부터의 요구들을 허가하는 것을 특징으로 하는 네트워크 제어기.The coordinator granting requests from the FIFOs in accordance with a coordination algorithm. 제 5 항에 있어서,The method of claim 5, 상기 조정 알고리즘은 제 1 레벨에서 수신 FIFO의 액세스에 우선 순위를 주고, 수신 FIFO들 사이에서는 상기 이서넷 제어기의 매체 액세스측의 미결의 요구를 갖는 수신 FIFO에 우선 순위를 주며, 그리고 상기 제 1 레벨에서 전송 FIFO에 제 2의 우선 순위를 주고, 전송 FIFO들 사이에서는 상기 이서넷 제어기의 버스측의 미결의 요구를 갖는 전송 FIFO에 우선 순위를 주는 것을 특징으로 하는 네트워크 제어기.The arbitration algorithm prioritizes access of the receiving FIFO at a first level, among receiving FIFOs, prioritizing a receiving FIFO with an open request on the media access side of the Ethernet controller, and at the first level. Give a second priority to the transmit FIFO in a second order, and give a priority to the transmit FIFO with pending requests on the bus side of the Ethernet controller among the transmit FIFOs. 제 1 항에 있어서,The method of claim 1, 상기 제 1 FIFO는 제 1의 선택된 사이즈를 갖는 것을 특징으로 하는 네트워크 제어기.And wherein the first FIFO has a first selected size. 제 7 항에 있어서,The method of claim 7, wherein 상기 제 1의 선택된 사이즈는 180 바이트인 것을 특징으로 하는 네트워크 제어기.And said first selected size is 180 bytes. 제 1 항에 있어서,The method of claim 1, 상기 제 2 FIFO는 제 2의 선택된 사이즈를 갖는 것을 특징으로 하는 네트워크 제어기.And wherein the second FIFO has a second selected size. 제 9 항에 있어서,The method of claim 9, 상기 제 2의 선택된 사이즈는 112 바이트인 것을 특징으로 하는 네트워크 제어기.And said second selected size is 112 bytes. 제 2 항에 있어서,The method of claim 2, 상기 제 3 FIFO는 제 3의 선택된 사이즈를 갖는 것을 특징으로 하는 네트워크 제어기.And wherein the third FIFO has a third selected size. 제 11 항에 있어서,The method of claim 11, 상기 제 3의 선택된 사이즈는 108 바이트인 것을 특징으로 하는 네트워크 제어기.And said third selected size is 108 bytes. 제 2 항에 있어서,The method of claim 2, 상기 제 4 FIFO는 제 4의 선택된 사이즈를 갖는 것을 특징으로 하는 네트워크 제어기.And said fourth FIFO has a fourth selected size. 제 13 항에 있어서,The method of claim 13, 상기 제 4의 선택된 사이즈는 160 바이트인 것을 특징으로 하는 네트워크 제어기.And said fourth selected size is 160 bytes. 제 1 항에 있어서,The method of claim 1, 16 비트 어드레스를 8 비트 어드레스 버스를 통해 전송하기 위해 제 1의 8 비트 부분 및 제 2의 8 비트 부분으로 재포맷하는 제 1 수단을 더 포함하는 것을 특징으로 하는 네트워크 제어기.And first means for reformatting the 16-bit address into a first 8-bit portion and a second 8-bit portion for transmitting over an 8-bit address bus. 제 15 항에 있어서,The method of claim 15, 상기 8 비트 어드레스 버스를 통해 전송된 후 상기 제 1, 2의 8 비트 어드레스 부분들을 상기 16 비트 어드레스로 재포맷하는 제 2 수단을 더 포함하는 것을 특징으로 하는 네트워크 제어기.And second means for reformatting the first and second eight bit address portions to the sixteen bit address after being transmitted over the eight bit address bus.
KR10-1998-0709203A 1996-06-06 1997-02-04 Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets KR100474658B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1998-0709203A KR100474658B1 (en) 1996-06-06 1997-02-04 Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/659,728 1996-06-06
KR10-1998-0709203A KR100474658B1 (en) 1996-06-06 1997-02-04 Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets

Publications (2)

Publication Number Publication Date
KR20000011052A KR20000011052A (en) 2000-02-25
KR100474658B1 true KR100474658B1 (en) 2005-07-12

Family

ID=43666804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0709203A KR100474658B1 (en) 1996-06-06 1997-02-04 Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets

Country Status (1)

Country Link
KR (1) KR100474658B1 (en)

Also Published As

Publication number Publication date
KR20000011052A (en) 2000-02-25

Similar Documents

Publication Publication Date Title
EP0976054B1 (en) Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets
JP3684405B2 (en) Data structure to support multiple transmission packets with high performance
US5247626A (en) Fddi controller having flexible buffer management
US6957269B2 (en) Method and apparatus for performing priority-based flow control
US7149833B2 (en) Method and apparatus for extending the range of the universal serial bus protocol
US5764895A (en) Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus
US7110359B1 (en) System and method for dynamically updating weights of weighted round robin in output queues
US6980520B1 (en) Method and apparatus for performing source-based flow control across multiple network devices
JPH04233352A (en) Network adaptor controlling flow of data arranged in packet from system memory to network and control method of data flow
KR20010080608A (en) A multi link layer to single physical layer interface in a node of a data communication system
US6084878A (en) External rules checker interface
US5811995A (en) Circuit for switching between different frequency clock domains that are out of phase
US6771654B1 (en) Apparatus and method for sharing memory using a single ring data bus connection configuration
US6195334B1 (en) Apparatus and method for terminating a data transfer in a network switch in response to a detected collision
US6108694A (en) Memory disk sharing method and its implementing apparatus
US6256313B1 (en) Triplet architecture in a multi-port bridge for a local area network
KR100474658B1 (en) Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets
US5819113A (en) Method of identifying end of pocket by writing the address of last data into the first location of the memory
US6954427B1 (en) Method and apparatus for performing priority-based admission control
KR970007249B1 (en) Transformation unit of data bus bandwidth
JPH06125365A (en) Communication controller
US6996120B2 (en) Methods for improving bus performance and bandwidth utilization of a parallel bus LAN
US6917623B1 (en) System and method for transferring data in a network device
US6963536B1 (en) Admission control in a network device
Tsurumi et al. The μBTRON Bus: Functions and Applications Ken Sakamura Department of Information Science, Faculty of Science, University of Tokyo Kazushi Tamai, Katuya Tanaka, Shigeo Tsunoda Fourth Laboratory, Applied Electronics R & D Laboratories, Yamaha Corporation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110201

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee