KR20000011052A - Address generation and data path control to and from multi-transmitting packet - Google Patents

Address generation and data path control to and from multi-transmitting packet Download PDF

Info

Publication number
KR20000011052A
KR20000011052A KR1019980709203A KR19980709203A KR20000011052A KR 20000011052 A KR20000011052 A KR 20000011052A KR 1019980709203 A KR1019980709203 A KR 1019980709203A KR 19980709203 A KR19980709203 A KR 19980709203A KR 20000011052 A KR20000011052 A KR 20000011052A
Authority
KR
South Korea
Prior art keywords
fifo
data
bit
ethernet
cpu
Prior art date
Application number
KR1019980709203A
Other languages
Korean (ko)
Other versions
KR100474658B1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

PURPOSE: An ethernet controller is provided to generate an address by efficiently converting 16-bit data into 32-bit data and control various write/read functions controlled by an ethernet. CONSTITUTION: The controller comprises a memory, a first FIFO(first-in, first-out) for managing transmission of CPU(central processing unit) data in a CPU, a second FIFO for managing transmission of the CPU data from the memory to an ethernet, and an arbiter for controlling the first and the second FIFOs. The controller controls data transmission between a station having the CPU and the ethernet.

Description

다중 전송 패킷을 조정할 SRAM으로 및 그로부터의 어드레스 생성 및 데이터 경로 조정Address generation and data path adjustment to and from the SRM to coordinate multiple transport packets

근거리 통신망("LAN")은 퍼스널 컴퓨터, 워크 스테이션, 파일 서버, 중계 장치, 데이터 단말 장비("DTE") 및, 서로 전자적으로 정보를 전달하도록 사무실, 빌딩 또는 빌딩의 클러스터와 같은 제한된 지리적 지역 내역 위치된 그런 다른 정보 처리 장비를 인에이블하는 통신 시스템이다. LAN 내의 정보 처리 장비의 각 부품은 망 운영을 정의하는 고정 프로토콜(또는 표준 규격)에 따라 LAN 내의 다른 정보 처리 장비와 통신한다.A local area network ("LAN") is a limited geographic area description, such as a personal computer, workstation, file server, relay device, data terminal equipment ("DTE"), and an office, building, or cluster of buildings to communicate information electronically with each other. Communication system that enables such other information processing equipment located. Each part of the information processing equipment in the LAN communicates with other information processing equipment in the LAN according to a fixed protocol (or standard) that defines network operations.

국제 표준화 기구 개방형 시스템 상호 접속 기본 참조 모델은 LAN 내의 데이터 통신을 위한 7개의 층 모델을 정의한다. 모델의 최하위 층은 모듈로 이루어진 물리적 층인데, 상기 모듈은 (1) 망 노드를 상호 접속하고, 데이터를 전자적으로 전송할 수 있는 물리적 매체, (2) 망 노드가 물리적 전송 매체에 인터페이스하는 방식, (3) 물리적 매체를 통해 데이터를 전달하는 프로세스 및, (4) 데이터 스트림의 프로토콜을 지정한다.The International Organization for Standardization Open Systems Interconnection Basic Reference Model defines a seven-layer model for data communication within a LAN. The lowest layer of the model is the physical layer of modules, which module comprises: (1) a physical medium capable of interconnecting network nodes and transmitting data electronically, (2) a manner in which network nodes interface to physical transmission media, ( 3) specify the process of delivering data over the physical medium, and (4) the protocol of the data stream.

IEEE 표준 802.3, 반송자 감지 다중 접근/충돌 검출(CSMA/CD) 접근 방법 및 물리적 층 명세서는 가장 널리 이용된 물리적 층에 대한 표준 규격의 하나이다. 일반적으로 이서네트라 칭하는 IEEE 표준 802.3은 통상적으로 트위스트 페어(twisted-pair) 케이블보다 더 값비싼 동축 케이블 또는 트위스트 페어 케이블을 통한 데이터 전달을 다루고 있다. IEEE 표준 802.3의 10 베이스-T 프로토콜은 트위스트 페어 케이블을 통해 데이터를 전달하기 위한 10 메가비트/초("Mbps")의 율을 규정하고 있다.IEEE Standard 802.3, Carrier Sense Multiple Access / Collision Detection (CSMA / CD) approach and physical layer specification is one of the standard specifications for the most widely used physical layer. IEEE Standard 802.3, commonly referred to as Ethernet, addresses data transfer over coaxial or twisted pair cables, which are typically more expensive than twisted-pair cables. The 10 Base-T protocol of IEEE Standard 802.3 specifies a rate of 10 megabits per second ("Mbps") for transferring data over twisted pair cable.

도면에서, 도 1은 CPU(12)로 표시되는 워크스테이션, 퍼스널 컴퓨터, 파일 서버, 데이터 단말 장비 또는 그런 다른 정보 처리 장비를 가진 종래 기술의 시스템(10)이 이서네트(22) 또는 매체 독립 인터페이스(24)로 표시되는 다른 형의 데이터 통신 장비에 접속된다. 도 1에서, 일반적으로 망 인터페이스 제어기로 공지된 이서네트 제어기(14)는 CPU(12) 및 도래(및 유출) 이서네트(22) 라인 사이에 위치된다. 통상적으로, 이서네트(22) 커넥션은 트위스트 페어 구리 케이블의 2개의 페어, 즉 (10R)로 언급된 도래 페어 및, (10T)로 언급된 유출 페어로 이루어진다.In the drawings, FIG. 1 shows that a prior art system 10 having a workstation, personal computer, file server, data terminal equipment, or such other information processing equipment, represented by CPU 12, is an Ethernet 22 or media independent interface. It is connected to data communication equipment of another type indicated by 24. In FIG. 1, an Ethernet controller 14, commonly known as a network interface controller, is located between the CPU 12 and the advent (and outgoing) Ethernet 22 lines. Typically, the Ethernet 22 connection consists of two pairs of twisted pair copper cables, the advent pair referred to as (10R) and the outflow pair referred to (10T).

이서네트 제어기(14)는 유출 페어 또는 케이블로의 유출 데이터의 전송 및, 도래 페어 또는 케이블로 부터의 도래 데이터의 수신을 제어한다. 예를 들면, 유출 페어 또는 케이블에 제공되기 전에, 유출 데이터는 전자기 간섭을 감소시키도록 맨체스터 엔코드된다. 맨체스터 엔코딩은 데이터 스트림의 어떤 부분이 10 MHz로 펄스되게 하고, 데이터 스트림의 다른 부분은 5 MHz로 펄스되게 한다.The Ethernet controller 14 controls the transmission of outgoing data to the outgoing pair or cable and the receipt of the incoming data from the coming pair or cable. For example, before being provided to an outflow pair or cable, the outflow data is Manchester encoded to reduce electromagnetic interference. Manchester encoding causes some portion of the data stream to pulse at 10 MHz and other portions of the data stream to pulse at 5 MHz.

데이터 처리 능력의 증가에 따라 더욱 많은 정보를 더욱 고속으로 전달할 필요성으로 10 베이스-T 프로토콜에 규정한 10 Mbps 율보다 상당히 더 높은 데이터 전송율으로 확장되어야 한다. 결과적으로, 현존하는 시스템의 트위스트 페어 케이블을 통해 100 Mbps의 효율적인 전송율로 이동하는 데이터를 조정하도록 IEEE 표준 802.3을 확장하는 100 베이스-TX 프로토콜이 있다. 물리적 전송 매체가 100 베이스-TX 율 및 저 10 베이스-T 율로 트위스트 페어 케이블을 통해 전달된 데이터를 다룰 수 있는 것이 바람직한 상황이 있다. 현재에는, 내부 PCI 버스상에 33 MHz의 PCI 속도를 지원하고, 초 동작마다 100 M 비트에 대한 최대 25 MHz의 이서네트 속도를 지원하여, 9.6 마이크로초의 인터패킷 갭에 따른 동작 전 2중 모드를 지원할 필요성이 있다.As data throughput increases, the need to deliver more information at higher speeds has to be extended to data rates considerably higher than the 10 Mbps rates specified in the 10 Base-T protocol. As a result, there is a 100 base-TX protocol that extends the IEEE standard 802.3 to handle data traveling at an efficient data rate of 100 Mbps over twisted pair cables in existing systems. There are situations where it is desirable for a physical transmission medium to be able to handle data delivered over twisted pair cable at 100 base-TX rates and low 10 base-T rates. Currently, it supports PCI speeds of 33 MHz on the internal PCI bus and Ethernet speeds of up to 25 MHz for 100 M bits per second operation, enabling pre-operation dual mode with an interpacket gap of 9.6 microseconds. There is a need to support.

이서네트 또는 매체 독립 인터페이스를 통해 서로 다른 율에서의 데이터 전송에 관련된 문제점 이외에, 퍼스널 컴퓨터, 워크스테이션, 파일 서버, 중계 장치, 데이터 단말 장비 및, 그런 다른 정보 처리 장비의 가변 데이터 조정 능력에 관련된 문제점이 있다. 예를 들면, 퍼스널 컴퓨터 시스템에서, CPU(12)가 이서네트(22)를 통해 데이터의 수신 또는 전송 이외에 유의해야 하는 다른 장비 또는 듀티(duty)가 있을 수 있다.In addition to the problems associated with data transfer at different rates over an Ethernet or media independent interface, problems related to the variable data coordination capabilities of personal computers, workstations, file servers, relays, data terminal equipment, and such other information processing equipment. There is this. For example, in a personal computer system, there may be other equipment or duty that the CPU 12 should pay attention to in addition to the reception or transmission of 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 major problems facing the Ethernet controller 14 is that different memory elements of the various components have different sizes. For example, there is a need to keep the semiconductor device as small as possible. For this reason, it is advantageous to have a bus size as small as possible without degrading the performance of the device. As can be seen, it is desirable to design a component with a 16-bit bus if the 16-bit bus is half the size of the 32-bit bus and the 16-bit bus can provide the same performance as the 32-bit bus. In addition, the smaller the bus size, the less likely there is a manufacturing defect 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)상의 충돌로 유발된다. 각종 FIFO, BX FIFO(26), MX FIFO(28), BR FIFO(30) 및 MR FIFO(32)는 각종 부품간에 데이터의 전송을 제어한다. 예를 들면, BX FIFO(26)은 PCI BUS(18)를 통해 CPU(12)로부터 데이터를 수신하고, 포맷을 32 비트에서 16 비트로 변경함으로써 16 비트 데이터 버스(20)를 통해 SRAM(16)으로 전송될 수 있다. 게다가, 정보가 SRAM(16)내에 위치되어, 제각기 MX FIFO(28) 및 BR FIFO(30)에 의해 효율적으로 검색되도록 어스레스가 BX FIFO(26) 및 MR FIFO(32)에 의해 생성될 필요가 있는데, 상기 MX FIFO(28) 및 BR FIFO(30)는 SRAM(16)에서 수신된 16 비트 포맷을 32 비트 포맷으로 변경시킨다.In Fig. 2, different size parts are described. 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. There is now a 64-bit PCI bus, and all future computer systems can have a 64-bit PCI bus as a standard bus size. The SRAM 16 is used as a buffer by the Ethernet controller 14 so that there is no delay in transferring data from the Ethernet 22 to the CPU 12 or from the CPU 12 to the Ethernet 22. . Such a delay is caused, for example, by high latency of the CPU 12 or by a collision on the Ethernet 22 where the transmitting station retransmits the information just sent. Various FIFOs, BX FIFOs 26, MX FIFOs 28, BR FIFOs 30, and MR FIFOs 32 control the transfer of data between various components. For example, the BX FIFO 26 receives data from the CPU 12 via the PCI BUS 18 and changes the format from 32 bits to 16 bits to the SRAM 16 via the 16 bit data bus 20. Can be sent. In addition, an address needs to be created by the BX FIFO 26 and the MR FIFO 32 so that the information is located in the SRAM 16 and efficiently retrieved by the MX FIFO 28 and the BR FIFO 30, respectively. The MX FIFO 28 and BR FIFO 30 change the 16-bit format received from the SRAM 16 into a 32-bit format.

게다가, 이서네트(22)를 통해 데이터를 전송할 필요가 있을 시에 데이터를 수신할 필요가 있고, 또한 데이터를 CPU(12)로 전송할 필요가 있을 시에 이서네트 제어기(14)가 CPU(12)로부터 데이터를 수신할 필요성이 있을 가능성이 있기 때문에, 이서네트 제어기(14)는 지능 선택을 하게 할 필요성이 있고, 이를 위해 데이터가 먼저 전송되거나 수신되며, 어떤 시퀀스에서 다음 데이터가 전송되거나 수신된다.In addition, when the data needs to be transmitted through the Ethernet 22, the data needs to be received, and when the data needs to be transmitted to the CPU 12, the Ethernet controller 14 causes the CPU 12 to receive the data. Since there is a possibility that there is a need to receive data from, the Ethernet controller 14 needs to make an intelligent selection, for which data is transmitted or received first, in which sequence the next data is transmitted or received.

메모리 소자내에 저장하기 위해 데이터의 사이즈를 32 비트에서 16 비트로 효율적으로 변경하는 방법, SRAM내에 저장될 16 비트 데이터를 위한 어드레스 생성 방법, SRAM으로 부터 검색하기 위해 데이터의 사이즈를 16 비트에서 32 비트로 효율적으로 변경하여, 검색된 32 비트 데이터를 위한 어드레스를 생성하는 방법과, 이서네트 제어기에 의해 제어된 각종 기록 및 판독 기능간에 조정하는 방법이 요구된다.Efficiently change the size of data from 32 bits to 16 bits for storage in memory devices, address generation method for 16-bit data to be stored in SRAM, efficiently size data from 16 bits to 32 bits for retrieval from SRAM A method of generating an address for retrieved 32-bit data and a method of adjusting between various write and read functions controlled by an Ethernet controller are required.

발명의 요약Summary of the Invention

본 발명에 따르면, 스테이션과 이서네트 간에 데이터 전송을 제어하는 이서네트 제어기가 제공된다. 이서네트 제어기는 스테이션 CPU에서 버퍼 메모리로, 그리고 버퍼 메모리에서 스테이션 CPU로 데이터의 전송을 관리하는 논리형의 4개의 FIFO를 포함한다. 이서네트 제어기는 FIFO가 데이터의 전송에 대한 우선 순위를 가짐을 조정하는 아비터(arbiter)를 포함한다.According to the present invention, there is provided an Ethernet controller for controlling data transmission between a station and Ethernet. The Ethernet controller includes four logical FIFOs that manage the transfer of data from the station CPU to the buffer memory and from the buffer memory to the station CPU. The Ethernet controller includes an arbiter that adjusts the FIFO to prioritize the transmission of data.

각 FIFO와 관련된 논리는 데이터의 비트 사이즈를 제 1 비트 사이즈에서 제 2 비트 사이즈로 변환하고, 버퍼 메모리로 또는 그로부터 기록 또는 판독을 위해 어드레스를 생성시킨다. 논리는 또한 8 비트 어드레스 버스를 통해 통신하기 위해 16 비트 어드레스를 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 an address for writing or reading to or from the buffer memory. The logic also converts the 16-bit address into two 8-bit portions and also the two 8-bit portions into the original 16-bit address for communicating over an 8-bit address bus.

아비터는 각 FIFO를 요청마다 32 바이트 전송으로 제한하고, 각 32 바이트 전송 후에 전송을 위한 보류 요청이 있는 지를 결정하도록 다른 FIFO를 폴(poll)한다. 아비터는 조정 알고리듬마다 요청을 허용한다.The arbitr limits each FIFO to 32 byte transfers per request, and polls another FIFO to determine if there is a pending request for transmission after each 32 byte transfer. The arbiter allows requests for each tuning algorithm.

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

본 발명은 첨부한 도면을 참조로 아래의 상세한 설명으로 더욱 더 이해된다. 아래의 설명으로 부터 본 기술 분야의 숙련자에게는 명백해지는 바와 같이, 본 발명은 실시하는 데에 최상의 모드로 본 발명의 양호한 실시예가 기술된다. 실현되는 바와 같이, 본 발명은 서로 다른 실시예일 수 있고, 그의 상세 사항은 본 발명의 범주내에서 다양하게 수정할 수 있다는 것이다. 따라서, 도면 및 설명은 본래 설명을 위한 것이고, 제한을 위한 것은 아니다.The invention is further understood by 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 of the present invention are described in the best mode for carrying out the present invention. As will be realized, the invention may be of different embodiments, the details of which may vary within the scope of the invention. Accordingly, the drawings and descriptions are to be regarded as illustrative in nature and not as restrictive.

본 발명은 일반적으로 이서네트(ethernet)로 및 그로부터 스테이션에 의해 정보의 전송을 제어하는 방법 및 소자에 관한 것으로, 특히 정보 전송 능력을 증가시키는 방법 및 소자, 더욱 상세히 말하자면, 데이터를 제 1 비트폭에서 제 2 비트폭으로 변환하고, 변환된 데이터에 대한 어드레스를 생성시키며, 그리고 SRAM 버퍼로 및 그로부터 판독 및 기록 액세스를 위한 데이터 경로에 대한 액세스를 조정하는 방법 및 소자에 관한 것이다.FIELD OF THE INVENTION The present invention generally relates to methods and elements for controlling the transmission of information to and from the ethernet by means of stations, in particular methods and elements for increasing the information transmission capability, and more particularly to data in a first bit width. To a second bit width, to generate an address for the converted data, and to adjust access to the data path for read and write access to and from the SRAM buffer.

본 명세서에 포함된 첨부한 도면은 본 발명을 설명한 것이고, 본 발명의 원리를 설명한 것이다.The accompanying drawings included in the specification are intended to explain the invention and to explain the principles of the invention.

도 1은 이서네트 커넥션 및 매체 독립 인터페이스 커넥션에 따른 이서네트 제어기 및 CPU를 가진 종래 기술의 시스템의 개관도이다.1 is an overview of a prior art system having an Ethernet controller and a CPU in accordance with an Ethernet connection and a media independent interface connection.

도 2는 본 발명에 의한 시스템을 도시한 것이다.2 shows a system according to the invention.

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

도 4는 판독 및 기록 액세스의 시퀀스를 조정하도록 이서네트 제어기로 이용된 조정 알고리듬을 설명한 것이다.4 illustrates a tuning algorithm used with an Ethernet controller to adjust the sequence of read and write accesses.

도 5는 서로 다른 비트 사이즈 데이터가 서로 다른 사이즈 메모리 위치내에 위치되는 방법을 설명한 것이다.5 illustrates how different bit size data is located in different size memory locations.

도 6은 데이터를 SRAM 버퍼 메모리에 기록하기 위한 어드레스 생성 방법을 설명한 것이다.6 illustrates an address generation method for writing data to an SRAM buffer memory.

도 7은 SRAM 버퍼 메모리로부터 데이터를 검색하기 위한 어드레스 생성 방법을 설명한 것이다.7 illustrates an address generation method for retrieving data from an SRAM buffer memory.

상세한 설명details

도 1에서, CPU(12) 및, 커넥션 이서네트(22) 및 매체 독립 인터페이스(24)를 가진 이서네트 제어기(14)를 가진 종래 기술의 시스템(10)의 개관도가 도시된다. CPU(12)는 버스(17)에 의해 이서네트 제어기(14)에 접속된다.In FIG. 1, an overview of a prior art system 10 having a CPU 12 and an Ethernet controller 14 with a connection Ethernet 22 and a media independent interface 24 is shown. The CPU 12 is connected to the Ethernet controller 14 by the bus 17.

도 2에서, 본 발명에 의한 시스템(11)이 도시된다. 도면에서는 동일 번호가 동일 소자를 나타낸다. 이서네트 제어기(14)의 일부는 도 2에 도시된다. 이서네트 제어기(14)는 본 발명에 의한 기능과 다른 많은 기능을 갖고 있고, 본 발명에 속하는 부품만을 기술하기로 한다.In Fig. 2 a system 11 according to the invention is shown. In the drawings, like numerals denote like elements. A portion of the Ethernet controller 14 is shown in FIG. The Ethernet controller 14 has many functions different from those of the present invention, and only components belonging to the present invention will be described.

이서네트 제어기(14)의 설명된 부분의 기능은 이서네트(22) 및/또는 매체 독립 인터페이스(24)로 및 그로부터 데이터의 전송을 관리하는 것이다. 이서네트 제어기(14)는 CPU(12)나, 이서네트(22) 또는 매체 독립 인터페이스(24)로 및 그로부터 데이터의 전송의 감속을 방지하는 버퍼로서 SRAM(16)을 이용함으로서 데이터 전송을 관리한다. 데이터의 전송이 감속될 수 있는 여러 가지 이유가 있는데, 예를 들면, CPU(12)의 대기 시간이 많고, 이서네트(22)로 부터의 데이터 전송은 CPU(12)가 다른 인터럽트로부터 벗어날 때까지 정지될 때이다. 역으로, CPU(12)는 이서네트(22)를 통해 데이터를 전송하려고 하고, 이서네트(22)는 사용중일 때 CPU(12)로 부터의 데이터가 정지되게 하거나, 이서네트(22)가 없어질 때까지 유지되게 한다.The function of the described portion of the Ethernet controller 14 is to manage the transfer of data to and from the Ethernet 22 and / or media independent interface 24. The Ethernet controller 14 manages data transfer by using the SRAM 16 as a buffer to prevent deceleration of data transfer to and from the CPU 12 or the Ethernet 22 or media independent interface 24. . There are a number of reasons why the transfer of data may be slowed down, for example, the CPU 12 has a long wait time, and the data transfer from the Ethernet 22 will continue until the CPU 12 escapes from another interrupt. It is time to stop. Conversely, the CPU 12 attempts to transfer data through the Ethernet 22, and the Ethernet 22 causes the data from the CPU 12 to stop when in use, or there is no Ethernet 22. Keep until you lose.

정보의 전송 또는 수신을 완료할 수 없음으로써 유발된 문제점을 해결하기 위하여, 이서네트 제어기(14)는 4개의 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 the problems caused by the inability to complete the transmission or reception of information, the Ethernet controller 14 has four FIFOs, each of which has a selection size that will maximize the performance of the Ethernet controller 14. . 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 the MAC (Media Access Control) of the Ethernet Controller 14. Is on. Each of the FIFOs manages input or output functions. 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 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)에 대한 어드레스를 생성시키고, 16 비트 데이터 경로(20)를 통해 SRAM(16)으로 전송되도록 CPU로부터 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)는 MR FIFO(32)에 의해 수신된 데이터를 이서네트(22)에서 16 비트 사이즈로 변환하고, SRAM(16)내에 기록될 수 있는 16 비트 데이터에 대한 어드레스를 생성시키며, BR FIFO(30)는 BR 논리(40)와 결합되고, BR 논리(40)는 이서네트(22)에서 수신된 SRAM(16)내의 데이터를 판독하고, 데이터를 16 비트 사이즈에서 32 비트 사이즈로 변경하며, BR FIFO(30)내에 32 비트 사이즈 데이터를 기록하는데, 이런 BR FIFO(30)에서 상기 데이터는 CPU(12)로 전송된다.In Fig. 3, the Ethernet controller 14 is shown 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 an address for the SRAM 16 and sends it from the CPU to the SRAM 16 via the 16-bit data path 20. Preparing 32-bit data, MX FIFO 28 is coupled with MX logic 36, MX logic 36 generates an address for the 16-bit data retrieved from SRAM 16, and 16 in SRAM 16. Read bit data, convert 16 bit data retrieved from SRAM 16 into 32 bits, and write 32 bit data to MX FIFO 28. The MR FIFO 32 is coupled with the MR logic 38, which converts the data received by the MR FIFO 32 into the 16-bit size in the Ethernet 22 and into the SRAM 16. Generates an address for 16-bit data that can be written, and the BR FIFO 30 is coupled with the BR logic 40 and the BR logic 40 stores data in the SRAM 16 received at the Ethernet 22. It reads, changes data from 16 bit size to 32 bit size, and writes 32 bit size data in BR FIFO 30, in which the data is transferred to CPU 12.

SRAM 제어기(42)는 4개의 FIFO를 제어하며, 충돌(conflict)의 경우, 즉 하나 이상의 FIFO가 버스에 요청하여 데이터를 전송할 시에, SRAM 제어기(42)는 FIFO가 우선 순위를 가져 어느 순서로 행함을 결정하는 예정된 알고리듬에 따라 조정한다. 이런 알고리듬은 아래에 기술된다.The SRAM controller 42 controls four FIFOs, and in the event of a conflict, that is, when one or more FIFOs request the bus to transmit data, the SRAM controller 42 has the FIFOs prioritized in any order. Adjust according to the intended algorithm for determining behavior. This algorithm is described below.

도 3에 도시된 시스템의 전체 동작은 아래와 같다. 이서네트 제어기(14)는 CPU(12)에서 이서네트(22)로 데이터의 전송에 대한 전체 동작과, 이서네트(22)에서 CPU(12)로 데이터의 전송을 책임지고 있다. 전술된 바와 같이, 이서네트(22)로 및 그로부터 데이터의 전송에 따른 주요 문제점중의 하나는 어느 그런 데이터의 효율적인 전송에 영향을 줄 수 있는 여러 가지 요인이 있다는 것이다. 한가지 요인은 조정되어야 하는 서로 다른 속도이다. PCI 버스(18)는 33 MHz의 속도로 동작하고, 이서네트(22)는 0.96 마이크로초의 인터패킷 갭에 전 2중 동작을 지원하는 100 M 비트 동작 동안 25 MHz의 최대 속도로 동작한다. 이서네트 제어기(14)의 주요 기능중의 하나는 그런 데이터를 수신 또는 전송함에 있어 어느 지연을 최소화하는 방식으로 각종 소자간에 데이터의 전송을 관리하는 것이다. 예를 들면, (도시되지 않은) CPU(12)가 데이터를 이서네트(22)로 전송하기를 원할 시에, 이는 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)으로 데이터의 흐름을 제어하는 상태 머신으로, SRAM 제어기(42)로부터 허용 신호를 수신할 경우에 동작한다. BX FIFO(26)가 32 비트이고, 데이터 버스(20)가 16 비트이기 때문에, 각 사이클에서 16 비트 사이즈 데이터 버스상에 16 비트만을 기록할 수 있을 시에 16 비트 사이즈 데이터를 SRAM(16)에 기록하도록 BX 논리(34)의 2개의 사이클을 취한다. BX FIFO(26)를 통한 데이터 전송이 최대화되는 것으로 결정된다. 즉, BX FIFO(26)를 통한 데이터의 전송에서의 어느 지연은 180 바이트에서 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 is responsible for the overall operation of the data transfer from the CPU 12 to the Ethernet 22 and the transfer of the data from the Ethernet 22 to the CPU 12. As mentioned above, one of the major problems with the transmission of data to and from Ethernet 22 is that there are a number of factors that can affect the efficient transmission of any such data. One factor is the different speeds that must be adjusted. PCI bus 18 operates at a rate of 33 MHz, and Ethernet 22 operates at a maximum rate of 25 MHz during 100 M bit operation supporting full duplex operation in an interpacket gap of 0.96 microseconds. One of the main functions of the Ethernet controller 14 is to manage the transmission of data between the various elements in a manner that minimizes any delay in receiving or transmitting such data. For example, when CPU 12 (not shown) wishes to send data to Ethernet 22, it communicates with BX FIFO 26 to send data to BX FIFO 26. BX FIFO 26 requests access to the bus from SRAM controller 42 via 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 size data received from the CPU 12. Change to size data and generate an address for SRAM 16 for storage of data in 16-bit format. The converted data is communicated with 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 receiving a permission signal from the SRAM controller 42. Since the BX FIFO 26 is 32 bits and the data bus 20 is 16 bits, 16 bits size data is written to the SRAM 16 when only 16 bits can be written on the 16 bits size data bus in each cycle. Take two cycles of BX logic 34 to write. It is determined that data transmission through the BX FIFO 26 is maximized. That is, any delay in the transmission of data through the BX FIFO 26 is minimized by having the size of the BX FIFO 26 at 180 bytes. 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 K 바이트로 선택되었지만, 적어도 128 K 바이트로 확장할 수 있다. 그래서, 각 메모리 위치를 액세스하도록 어드레스의 16 비트를 가질 필요가 있다. 그러나, 이서네트 제어기(14)는 공간을 줄이고, 비용을 더욱 효율이게 하도록 어드레스 포트의 8 비트만을 가진다. 이런 이유로, 16 비트 어드레스는 상위 8 비트부 및 하위 8 비트부로 분할되고, 8 비트 어드레스 버스를 통해 전송되며, 그리고 이서네트 제어기(14) 외부에서 16 비트 어드레스로 리어셈블된다. 어드레스 생성 및 전송에 대한 상세 사항은 도 6 및 7를 참조로 아래에 기술된다.The size of the SRAM 16 is selectable, and in this embodiment it has been selected as 64 K bytes, but can be extended to at least 128 K bytes. Thus, it is necessary to have 16 bits of address to access each memory location. However, the Ethernet controller 14 has only 8 bits of the address port to save space and make the cost more efficient. For this reason, the 16 bit address is divided into an upper 8 bit portion and a lower 8 bit portion, transmitted over an 8 bit address bus, and reassembled into a 16 bit address outside 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)는 SRAM 제어기(42)로부터 MX 요구 라인(47)을 통해 데이터 버스(20)에 대한 액세스를 요구한다. 액세스가 허용되고, MX 제어 라인(48)을 통해 MX 논리(36)와 통신될 시에, SRAM(16)내에 임시 기록되거나, MX FIFO(28)내에 있는 데이터는 BX FIFO(26)에 의해 CPU(12)로부터 수신됨에 따라 원래의 32 비트형으로 변환되고, 이서네트(22)를 통해 MX FIFO(28)에 의해 전송된다. MX FIFO(28)는 SRAM(16)에서 MX FIFO(28)로 데이터 흐름을 제어하고, SRAM 제어기(42)로부터 허용 신호를 수신할 시에 동작하는 상태 머신이다. MX FIFO(28)는 32 비트이고, 데이터 버스(20)는 16 비트이므로, MX 논리(36)가 데이터의 16 비트를 두 번 판독하여, 논리를 이용하여 이를 두배 워드(32 비트)로 어셈블한 후에, 기록 신호는 MX FIFO(28)에 제공된다. 이는 선택적인 사이클마다 MX FIFO(28)에 기록되고, 사이클마다 SRAM(16)에서 판독된다는 것을 의미한다. MX FIFO(28)는 SRAM(16)에서의 판독과, MX FIFO(28)에 대한 기록을 제어한다.The Ethernet controller 14 communicates constantly with the Ethernet network via the MX FIFO 28, and depends on some type of protocol, and the system determines when it is transmitted over the data Ethernet 22. When data is sent over Ethernet 22, MX FIFO 28 requests access to data bus 20 from SRAM controller 42 via MX request line 47. When access is allowed and communicated with the MX logic 36 via the MX control line 48, data written temporarily in the SRAM 16 or in the MX FIFO 28 is stored by the BX FIFO 26 by the CPU. As received from 12, it is converted to the original 32-bit type and transmitted by MX FIFO 28 via Ethernet 22. The MX FIFO 28 is a state machine that operates upon controlling the data flow from the SRAM 16 to the MX FIFO 28 and receiving a permit signal from the SRAM controller 42. Since MX FIFO 28 is 32 bits and data bus 20 is 16 bits, MX logic 36 reads 16 bits of data twice and assembles them into double words (32 bits) using logic. Later, a write signal is provided to the MX FIFO 28. This means that it is written to MX FIFO 28 every optional cycle and read from SRAM 16 every cycle. The MX FIFO 28 controls reading from the SRAM 16 and writing to the 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)의 동작과 유사하다.Upon sensing whether there is information from the Ethernet to be received, the MR FIFO 32 requests access from the SRAM controller 42 to the data bus 20 via the MR request line 50. do. When the SRAM controller 42 allows 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, which results in a 16-bit data bus. Transferred to SRAM 16 via 20. 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)는 SRAM(16)으로부터 데이터를 판독하는 BR 논리(40)와 통신하고, 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 from the SRAM controller 42 to the data bus 20 via the BR request line 54. When access is allowed, the SRAM controller 42 communicates with the BR logic 40 that reads data from the SRAM 16, converts the data stored in the 16-bit data format to the 32-bit data format, and Is forwarded to the BR FIFO 30, which in turn sends 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)가 동일 시간에 다중 요구문이 있는 경우에 버스에 대한 요구문을 조정함을 나타내는 조정 알고리듬(56) (도 4)이 도시된다. SRAM 제어기(42)는 도 4에 도시된 조정 스킴(scheme)을 이용하여, 모든 4개의 논리 블록에서의 요구문을 조정한다.In FIG. 4, an adjustment algorithm 56 (FIG. 4) is shown that indicates in which order the SRAM controller 42 adjusts the request for the bus when there are multiple requests at the same time. The SRAM controller 42 uses the adjustment scheme shown in FIG. 4 to coordinate the requests in all four logic blocks.

게다가, 본 발명은 이서네트 제어기(42)내의 소자간에 전송되는 최적수의 바이트가 있음을 제시하고 있다. 이런 최적수의 바이트는 대략 32인 것으로 결정되었다. 이는 예를 들어 버스에 대해 BX FIFO(26)에 의해 요구되기 전에 데이터의 32 바이트를 BX FIFO(26)내에서 어셈블되는 것을 의미한다(유일한 예외는 전달될 최종 바이트가 BX FIFO(26)내에 있도록 검출되는 시기이다). 게다가, 32 바이트가 한 소자에서 다음 소자로 전달될 최적수의 바이트인 것으로 또한 결정되었다. 이런 경우 한계 32 바이트가 도달되었을 시에, 시스템은 전송 또는 수신을 중지하고, 전송되거나 수신될 필요가 있는 다른 정보가 있는 지를 결정하도록 다른 기능을 폴한다.In addition, the present invention suggests that there is an optimal number of bytes transferred between the elements in the Ethernet controller 42. This optimal number of bytes was determined to be approximately 32. This means, for example, that 32 bytes of data are assembled in the BX FIFO 26 before being requested by the BX FIFO 26 for the bus (the only exception is that the last byte to be delivered is in the BX FIFO 26). When it is detected). In addition, it has also been determined that 32 bytes is the optimal number of bytes to be transferred from one device to the next. In this case, when the limit of 32 bytes has been reached, the system stops sending or receiving and polls other functions to determine if there is any other information that needs to be sent or received.

도 4에서, 동일 시간에 다중 요구문이 있고, 시스템이 휴지 상태(58)에 있는 제 1 경우에, 시스템은 첫 번째 수신측(60)로 지향하고, 첫 번째 MAC측 수신부(62)로 액세스를 허용한다. (62)에서 보류한 요구문이 없을 경우, 시스템은 전송측(64)으로 진행하고, 버스 전송부(66)에서 보류한 요구문이 있을 경우에는 버스 전송부로 액세스를 허용한다. 버스 전송부에서 보류한 요구문이 없을 경우, 시스템은 철회하여 수신측(60)으로 진행하고, 버스 수신부(68)로 액세스를 허용한다. (68)에서 보류한 요구문이 없을 경우, 시스템은 그때 전송부(64)로 지향하고 나서, MAC 전송부(70)로 지향한다.In FIG. 4, in the first case where there are multiple requests at the same time and the system is in the idle state 58, the system is directed to the first receiving side 60 and accessing the first MAC side receiving unit 62. Allow. If there is no pending request at 62, the system proceeds to the transmitting side 64, and if there is a pending request at the bus transmitting unit 66, the access is allowed to the bus transmitting unit. If there is no request pending at the bus transmitter, the system withdraws and proceeds to the receiver 60, allowing access to the bus receiver 68. If there is no pending request at 68, the system then directs to the transmitter 64 and then to the MAC transmitter 70.

시스템이 데이터 버스에 대한 보류 요구문이 있는 지를 결정할 다른 기능을 폴하도록 중지하는 경우에, 시스템은 전술된 바와 같이 동일 순서에서 보류 요구문을 허용한다. 도 5에서, 바이즈 사이즈 데이터가 시스템내의 각종 소자내에 저장되는 방법이 설명된다. (72 및 74)로 표시된 위치내의 FIFO내에 저장된 데이터의 5 바이트(D0 내지 D4)를 가진 BX FIFO(26)의 작은 부분이 도시된다. 또한, (76)으로 표시된 위치내의 8 비트 바이트(S0 내지 S3)로 저장된 STATUS 데이터의 32 비트가 도시된다. (78)로 표시된 메모리 위치내의 8 비트 바이트로 저장된 DESCRIPTOR 데이터의 32 비트가 도시된다. BX 논리(34)는 BX FIFO(26)로부터 32 비트 데이터를 판독하여, (80)에서 16 비트 사이즈로 변환하고, 16 비트 데이터는 SRAM(16)내에 기록되고, 도시된 바와 같이 기록된다. 제 1 메모리 위치(82)는 시스템에 의해 예약되고, EOP0 및 EOP1으로 레이블된(labeled) 2개의 8 비트 바이트를 포함하는 데, 상기 바이트는 패킷 종료(end-of-packet)가 위치되는 곳에 관한 정보, 즉, 메모리 위치 데이터 바이트 D4가 위치되는 정보를 나타낸다. 제 2 메모리 위치(84)는 또한 시스템에 의해 예약되고, 본 예에서 상위 바이트 위치내의 HEX10 및, 하위 바이트 위치내의 HEX00을 판독하는 2개의 16비트 메모리 위치(88 및 90)에 위치된다. STATUS 데이터에 뒤따라, 정보 메모리 위치는 메모리 위치(92 및 94)에 위치된 DESCRIPTOR 데이터(DA0 내지 DA3)의 4개의 8 비트 바이트이다.If the system stops to poll another function to determine if there is a hold request for the data bus, the system allows the hold request in the same order as described above. In Fig. 5, a method is described in which the visor size data is stored in various elements in the system. A small portion of the BX FIFO 26 is shown with five bytes (D0-D4) of data stored in the FIFO in the locations indicated by 72 and 74. Further, 32 bits of STATUS data stored as 8-bit bytes S0 to S3 in the position indicated by 76 are shown. Thirty-two bits of DESCRIPTOR data stored as eight-bit bytes in the memory location indicated by 78 are shown. The BX logic 34 reads 32 bit data from the BX FIFO 26, converts it into 16 bit size at 80, and the 16 bit data is written into the SRAM 16 and recorded as shown. The first memory location 82 contains two 8-bit bytes, reserved by the system and labeled EOP0 and EOP1, which are associated with where the packet end-of-packet is located. Information, that is, information in which memory location data byte D4 is located. The second memory location 84 is also reserved by the system and is located in two 16-bit memory locations 88 and 90 which in this example read HEX10 in the upper byte position and HEX00 in the lower byte position. Following the STATUS data, the information memory location is four 8-bit bytes of the DESCRIPTOR data DA0 to DA3 located in the memory locations 92 and 94.

MX FIFO(28)가 전술된 바와 같이 데이터 버스(20)로 액세스를 허용할 시에, 16 비트 데이터는 SRAM(16)에서 판독되고, (96)에서 32 비트 데이터로 변환되며, MX FIFO(28)로 순방향된다.When MX FIFO 28 allows access to data bus 20 as described above, 16 bit data is read from SRAM 16, converted to 32 bit data at 96, and MX FIFO 28 Forward).

전술된 것은 버스측에서 이서네트 제어기(14)의 MAC측으로, 즉, (도시되지 않은) CPU(12)에서, BX FIFO(26), SRAM(16), MX FIFO(28), 이서네트(22)로 데이터의 전송에 대한 것이다. 데이터가 MR FIFO(32)에서 수신되고, SRAM(16)을 전송하며, BR FIFO(30)에 의해 판독되어, CPU(12)로 전송될 시에 전술된 바와 동일한 설명이 적용 가능하다.The foregoing is from the bus side to the MAC side of the Ethernet controller 14, i.e., in the CPU 12 (not shown), the BX FIFO 26, the SRAM 16, the MX FIFO 28, and the Ethernet 22. ) Is for the transfer of data. The same description as described above is applicable when data is received at MR FIFO 32, transmits SRAM 16, read by BR FIFO 30, and transmitted to CPU 12.

도 6에서, 데이터가 SRAM(16)내에 기록될 시에 어드레스 생성의 방법이 설명된다. BX 논리(26)의 어드레스 생성부는 점선(98)내에 도시되고, MR 논리(38) (도 3)의 어드레스 생성부도 이내에 있다. SRAM(16)에 대한 어드레스 생성 방법은 정보의 다음 패빗이 기록되는 메모리 위치에서 포인트 하는 BX 기록 포인터(100)으로 시작한다. 패킷이 메모리내에 기록되도록 시작할 시에, 개시 메모리 위치는 레지스터 개시 패킷 포인터(102)내에 저장된다. 그래서, 개시 패킷 포인터(102)는 BX 논리(26)가 패킷을 기록하기 시작하는 SRAM(16)내에 메모리 위치에 어드레스를 홀드(hold)한다. 개시 메모리 위치는 패킷 종료의 메모리 위치로 기록된다. 16 비트 어드레스가 8 비트 어드레스 버스를 통해 통신되어야 하기 때문에, 16 비트 어드레스는 2개의 8 비트부로 분할된다. 데이터가 기록될 시에 어드레스를 생성하기 위하여는 각 바이트가 기록될 시에 어드레스의 하위 8 비트부를 증가시킬 필요가 있다. 페이지가 기록되었을 때마다, 즉, 하위 8 비트가 HEXFF를 판독할 시에 상위 8 비트부는 증가된다. 그래서, BX 기록 포인터(100)는 바이트가 SRAM(16)내에 기록될 때마다 BX 기록 포인터(100)를 증가시키는 증가 하위 입력(104)을 가지며, 증가 상위 입력(106)은 신규 페이지가 개시될 때마다, 즉 하위 어드레스 바이트가 값 HEXFF에 도달 한 후에 BX 기록 포인터(100)를 증가시킨다. BX 기록 포인터(100)는 그때 방금 기록된 바이트가 기록되는 메모리 위치의 16 비트 어드레스를 포함한다. 16 비트 어드레스가 8 비트 어드레스 버스를 통해 통신되기 때문에, MUX (108)은 16 비트 어드레스를 상위 8 비트부 및 하위 8 비트부로 리포맷(reformat)하며, 상기 8 비트부는 (110)으로 표시된 8 비트 버스를 통해 SRAM(16)과 통신하며, 그의 일부는 점선(112)내에 도시되어 있다. (114)에서의 SRAM(16)은 2개의 8 비트 어드레스부를 16 비트 어드레스(116)로 변환시킨다. 패킷의 종료가 SRAM(16)내에 기록되었을 시에, 패킷의 종료가 기록된 메모리 위치는 개시 패킷 포인터(102)내에 기록된 개시 메모리 위치내로 기록된다.In Fig. 6, the method of address generation when data is written into the SRAM 16 is described. The address generator of the BX logic 26 is shown in the dotted line 98, and is also within the address generator of the MR logic 38 (FIG. 3). The address generation method for the SRAM 16 begins with the BX write pointer 100 pointed at the memory location where the next bit of information is written. At the beginning of the packet to be written into memory, the starting memory location is stored in the register starting packet pointer 102. Thus, the start packet pointer 102 holds the address at a memory location in the SRAM 16 where the BX logic 26 begins to write the packet. The starting memory location is written to the memory location at the end of the packet. Since the 16 bit address must be communicated via an 8 bit address bus, the 16 bit address is divided into two 8 bit portions. In order to generate an address when data is recorded, it is necessary to increase the lower 8 bits of the address when each byte is written. Each time a page is written, i.e., when the lower 8 bits read HEXFF, the upper 8 bits portion is incremented. Thus, the BX write pointer 100 has an increment lower input 104 that increments the BX write pointer 100 each time a byte is written into the SRAM 16, and the increment upper input 106 causes a new page to be started. Each time, that is, the BX write pointer 100 is incremented after the lower address byte reaches the value HEXFF. The BX write pointer 100 then contains the 16 bit address of the memory location where the just written byte is written. Since the 16 bit address is communicated via an 8 bit address bus, the MUX 108 reformats the 16 bit address into an upper 8 bit portion and a lower 8 bit portion, wherein the 8 bit portion is 8 bits indicated by (110). It communicates with the SRAM 16 via a bus, a portion of which is shown in dashed line 112. SRAM 16 at 114 converts the two 8-bit address portions to 16-bit addresses 116. When the end of the packet is written into the SRAM 16, the memory location where the end of the packet is recorded 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)로 리어셈블된다.In Fig. 7, the 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 is shown. The read pointer 126 of the portion of SRAM 16 (shown in dashed line 127) points to the 16-bit memory location where the byte just read is located. The 16 bit memory location is converted into two 8 bit portions to be located on the 8 bit address bus, indicated by 130 by MUX 128. Two 8-bit address portions are received by MX logic 36 and reassembled to 16-bit address 134 by flip-flop 132.

본 발명의 양호한 실시예에 대해 전술한 것은 단지 설명을 위한 것으로, 본 발명은 제한할려고 의도된 것은 아니다. 상기 요지에 따라 수정 또는 변형이 가능하다. 본 발명의 원리 및 실제 응용에 대한 최상의 설명을 제공하여 본 기술 분양의 숙련자가 특정 사용에 적합한 각종 수정 및 각종 실시예로 본 발명을 이용하게 하도록 실시예를 선택하여 기술하였다. 그런 모든 변형 및 수정은 첨부한 청구의 범위로 결정되는 바와 같이 본 발명의 범주내에서 가능하다.The foregoing description of the preferred embodiment of the present invention is merely illustrative, and the present invention is not intended to be limiting. Modifications or variations are possible in light of the above teachings. The embodiments have been selected and described in order to provide a best description of the principles and practical applications of the invention to enable those skilled in the art to make and use the invention in various modifications and in various embodiments suitable for a particular use. All such variations and modifications are possible within the scope of the invention as determined by the appended claims.

Claims (19)

CPU를 가진 스테이션과 이서네트(ethernet)간에 데이터의 전송을 제어하는 이서네트 제어기에 있어서,In an Ethernet controller for controlling the transfer of data between a station having a CPU and an Ethernet, 메모리,Memory, CPU에서 메모리 CPU 데이터의 전송을 관리하는 제 1 FIFO,A first FIFO for managing the transfer of memory CPU data from the CPU, 메모리에서 이서네트로 CPU 데이터의 전송을 관리하는 제 2 FIFO 및,A second FIFO for managing transfer of CPU data from memory to Ethernet, and 상기 제 1 및 2 FIFO를 제어하는 아비터(arbiter)를 구비하는 것을 특징으로 하는 이서네트 제어기.And an arbiter for controlling the first and second FIFOs. 제 1 항에 있어서,The method of claim 1, 상기 제 1 FIFO에 결합되어, CPU 데이터를 제 1 비트 사이즈에서 제 2 비트 사이즈로 변환하고, 제 2 비트 사이즈의 CPU 데이터를 메모리내에 기록하기 위해 어드레스를 생성하는 제 1 논리와,First logic coupled to the first FIFO for converting CPU data from a first bit size to a second bit size and generating an address for writing the second bit size of CPU data into memory; 상기 제 2 FIFO에 결합되어, 상기 메모리내의 CPU 데이터를 판독하기 위해 어드레스를 생성하고, 상기 데이터를 제 2 비트 사이즈에서 제 1 비트 사이즈로 변환하는 제 2 논리를 더 포함하는 것을 특징으로 하는 이서네트 제어기.And a second logic coupled to the second FIFO to generate an address for reading CPU data in the memory and to convert the data from a second bit size to a first bit size. Controller. 제 2 항에 있어서,The method of claim 2, 이서네트에서 메모리로 이서네트 데이터의 전송을 관리하는 제 3 FIFO 및,A third FIFO that manages the transfer of Ethernet data from Ethernet to memory, and 메모리에서 CPU로 이서네트 데이터의 전송을 관리하는 제 4 FIFO를 더 포함하는 데, 상기 아비터는 상기 제 3 및 4 FIFO를 제어하는 것을 특징으로 하는 이서네트 제어기.And a fourth FIFO for managing the transfer of Ethernet data from memory to the CPU, wherein the arbiter controls the third and fourth FIFOs. 제 3 항에 있어서,The method of claim 3, wherein 상기 제 3 FIFO에 결합되어, 이서네트 데이터를 제 1 비트 사이즈에서 제 2 비트 사이즈로 변환하고, 제 2 비트 사이즈의 이서네트 데이터를 메모리내에 기록하기 위해 어드레스를 생성하는 제 3 논리와,Third logic coupled to the third FIFO for converting Ethernet data from a first bit size to a second bit size and generating an address for writing the second bit size of Ethernet data into memory; 상기 제 4 FIFO에 결합되어, 상기 메모리내의 이서네트 데이터를 판독하기 위해 어드레스를 생성하고, 상기 이서네트 데이터를 제 2 비트 사이즈에서 제 1 비트 사이즈로 변환하는 제 4 논리를 더 포함하는 것을 특징으로 하는 이서네트 제어기.And a fourth logic coupled to the fourth FIFO, generating an address for reading the Ethernet data in the memory and converting the Ethernet data from a second bit size to a first bit size. Ethernet controller. 제 4 항에 있어서,The method of claim 4, wherein 상기 아비터는 각 FIFO를 통한 전송을 선택된 수의 바이트로 제한하는 수단을 포함하는 것을 특징으로 하는 이서네트 제어기.The arbiter comprises means for limiting transmissions over each FIFO to a selected number of bytes. 제 5 항에 있어서,The method of claim 5, 상기 선택된 수의 바이트는 32 바이트인 것을 특징으로 하는 이서네트 제어기.And the selected number of bytes is 32 bytes. 제 6 항에 있어서,The method of claim 6, 상기 아비터는 전송을 위한 요구가 보류중인 지를 결정하도록 32 바이트의 전송 후에 각 FIFO를 포함하는 수단을 포함하는 것을 특징으로 하는 이서네트 제어기.The arbiter comprises means for including each FIFO after 32 bytes of transmission to determine if a request for transmission is pending. 제 7 항에 있어서,The method of claim 7, wherein 상기 아비터는 조정 알고리듬에 따라 FIFO로 부터의 요구를 허용하는 것을 특징으로 하는 이서네트 제어기.The arbiter permits a request from a FIFO according to an adjustment algorithm. 제 8 항에 있어서,The method of claim 8, 상기 조정 알고리듬은 수신 FIFO로 액세스하기 위해 제 1 레벨에서 우선 순위를 허용하고, 수신 FIFO 사이에서, 조정 알고리듬은 이서네트 제어기의 매체 액세스측 상에서의 보류 요구에 따른 수신 FIFO에 대한 우선 순위를 허용하며, 조정 알고리듬은 전송 FIFO로 제 1 레벨에서 제 2 우선 순위를 허용하고, 전송 FIFO 사이에서 조정 알고리듬은 이서네트 제어기의 버스측상의 보류 요구에 따른 전송 FIFO에 대한 우선 순위를 허용하는 것을 특징으로 하는 이서네트 제어기.The coordination algorithm allows priority at the first level to access the receive FIFO, and between receive FIFOs, the coordination algorithm allows priority for the receive FIFO according to the hold request on the media access side of the Ethernet controller. The coordination algorithm allows a second priority at the first level to the transmit FIFO, and the coordination algorithm between the transmit FIFOs allows priority for the transmit FIFO according to the hold request on the bus side of the Ethernet controller. Ethernet controller. 제 9 항에 있어서,The method of claim 9, 상기 제 1 FIFO는 제 1 선택된 사이즈를 가지는 것을 특징으로 하는 이서네트 제어기.And wherein the first FIFO has a first selected size. 제 10 항에 있어서,The method of claim 10, 상기 제 2 FIFO는 제 2 선택된 사이즈를 가지는 것을 특징으로 하는 이서네트 제어기.And wherein the second FIFO has a second selected size. 제 11 항에 있어서,The method of claim 11, 상기 제 3 FIFO는 제 3 선택된 사이즈를 가지는 것을 특징으로 하는 이서네트 제어기.And wherein the third FIFO has a third selected size. 제 12 항에 있어서,The method of claim 12, 상기 제 4 FIFO는 제 4 선택된 사이즈를 가지는 것을 특징으로 하는 이서네트 제어기.And wherein the fourth FIFO has a fourth selected size. 제 13 항에 있어서,The method of claim 13, 상기 제 1 선택된 사이즈는 180 바이트인 것을 특징으로 하는 이서네트 제어기.And the first selected size is 180 bytes. 제 14 항에 있어서,The method of claim 14, 상기 제 2 선택된 사이즈는 112 바이트인 것을 특징으로 하는 이서네트 제어기.And said second selected size is 112 bytes. 제 15 항에 있어서,The method of claim 15, 상기 제 3 선택된 사이즈는 108 바이트인 것을 특징으로 하는 이서네트 제어기.And said third selected size is 108 bytes. 제 16 항에 있어서,The method of claim 16, 상기 제 4 선택된 사이즈는 160 바이트인 것을 특징으로 하는 이서네트 제어기.And said fourth selected size is 160 bytes. 제 17 항에 있어서,The method of claim 17, 8 비트 어드레스 버스를 통해 전송하기 위해 16 비트 어드레스를 제 1의 8 비트부 및 제 2의 8 비트부로 리포맷하는 제 1 수단을 더 포함하는 것을 특징으로 하는 이서네트 제어기.And first means for reformatting a 16 bit address into a first 8 bit portion and a second 8 bit portion for transmission over an 8 bit address bus. 제 18 항에 있어서,The method of claim 18, 8 비트 어드레스 버스를 통해 전송된 후에 제 1 및 2의 8 비트 어드레스부를 16 비트 어드레스로 리포맷하는 제 2 수단을 더 포함하는 것을 특징으로 하는 이서네트 제어기.And second means for reformatting the first and second eight bit address portions to sixteen bit addresses after being transmitted over an 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 true KR20000011052A (en) 2000-02-25
KR100474658B1 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
KR100474658B1 (en) 2005-07-12

Similar Documents

Publication Publication Date Title
US5818844A (en) Address generation and data path arbitration to and from SRAM to accommodate multiple transmitted packets
US5878028A (en) Data structure to support multiple transmit packets for high performance
US7110359B1 (en) System and method for dynamically updating weights of weighted round robin in output queues
US4652874A (en) Serial communication interface for a local network controller
US5247626A (en) Fddi controller having flexible buffer management
US5502719A (en) Path allocation system and method having double link list queues implemented with a digital signal processor (DSP) for a high performance fiber optic switch
US7215680B2 (en) Method and apparatus for scheduling packet flow on a fibre channel arbitrated loop
US6751233B1 (en) UTOPIA 2—UTOPIA 3 translator
WO1997031455A1 (en) Method and apparatus for switching data packets in a data network
US4593281A (en) Local area network interframe delay controller
EP0603443A1 (en) Token star bridge
US6724769B1 (en) Apparatus and method for simultaneously accessing multiple network switch buffers for storage of data units of data frames
US6084878A (en) External rules checker interface
US5811995A (en) Circuit for switching between different frequency clock domains that are out of phase
US6741589B1 (en) Apparatus and method for storing data segments in a multiple network switch system using a memory pool
US6771654B1 (en) Apparatus and method for sharing memory using a single ring data bus connection configuration
US6529945B1 (en) Data buffer management between two different systems
US20070201360A1 (en) Network switch
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
KR20000011052A (en) Address generation and data path control to and from multi-transmitting packet
CN109391604B (en) Bridging device for managing data input and output protocol and management system
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

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