KR100240732B1 - Methods and apparatus for implementing a media access control/host system interface - Google Patents

Methods and apparatus for implementing a media access control/host system interface Download PDF

Info

Publication number
KR100240732B1
KR100240732B1 KR1019990018429A KR19990018429A KR100240732B1 KR 100240732 B1 KR100240732 B1 KR 100240732B1 KR 1019990018429 A KR1019990018429 A KR 1019990018429A KR 19990018429 A KR19990018429 A KR 19990018429A KR 100240732 B1 KR100240732 B1 KR 100240732B1
Authority
KR
South Korea
Prior art keywords
bsi
data
request
frame
host
Prior art date
Application number
KR1019990018429A
Other languages
Korean (ko)
Inventor
트라바그리오마크에이.
영데스몬드더블유.
함스트라제임스알.
브리프데이비스시.
Original Assignee
클라크 3세 존 엠.
내셔널 세미콘덕터 코포레이션
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
Priority claimed from KR1019910006778A external-priority patent/KR100240726B1/en
Application filed by 클라크 3세 존 엠., 내셔널 세미콘덕터 코포레이션 filed Critical 클라크 3세 존 엠.
Application granted granted Critical
Publication of KR100240732B1 publication Critical patent/KR100240732B1/en

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B37/00Nuts or like thread-engaging members
    • F16B37/08Quickly-detachable or mountable nuts, e.g. consisting of two or more parts; Nuts movable along the bolt after tilting the nut
    • F16B37/0807Nuts engaged from the end of the bolt, e.g. axially slidable nuts
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04GSCAFFOLDING; FORMS; SHUTTERING; BUILDING IMPLEMENTS OR AIDS, OR THEIR USE; HANDLING BUILDING MATERIALS ON THE SITE; REPAIRING, BREAKING-UP OR OTHER WORK ON EXISTING BUILDINGS
    • E04G17/00Connecting or other auxiliary members for forms, falsework structures, or shutterings
    • E04G17/001Corner fastening or connecting means for forming or stiffening elements
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B37/00Nuts or like thread-engaging members
    • F16B37/16Wing-nuts

Abstract

본 발명은 근거리 통신망과 상기 네트워크에 부착된 스테이션과 연관된 메모리 시스템 사이의 정보 전송을 위한 인터페이스 시스템에 관한 것이다. 인터페이스 시스템은 인터페이스 시스템과 메모리 시스템사이의 정보의 전송을 구현하기 위한 버스 인터페이스 유닛을 포함한다. 인디케이트 모듈은 네트워크로부터 인터페이스 시스템에 의해 수신된 정보를 버스 인터페이스 유닛을 경유하여 메모리 시스템으로 전송한다. 리퀘스트 모듈은 버스 인터페이스 유닛을 경유하여 메모리 시스템으로부터 인터페이스 시스템에 의해 수신된 정보를 네트워크로 전송한다. 인디케이트 모듈과 리퀘스트 모듈에 연결된 상태 발생/스페이스 관리 모듈을 인디케이트 모듈과 리퀘스트 모듈의 상태를 감시하고, 대응 상태 신호를 발생하며, 인터페이스 시스템을 경유하여 네트워크와 메모리 시스템사이에서 전송된 정보를 위해 메모리 시스템내의 저장 스페이스의 할당을 관리한다.The present invention relates to an interface system for transferring information between a local area network and a memory system associated with a station attached to the network. The interface system includes a bus interface unit for implementing the transfer of information between the interface system and the memory system. The indicator module transmits the information received by the interface system from the network to the memory system via the bus interface unit. The request module sends the information received by the interface system from the memory system via the bus interface unit to the network. A status generation / space management module connected to the indication module and the request module monitors the status of the indication module and the request module, generates a corresponding status signal, and transmits information between the network and the memory system via the interface system. Manage the allocation of storage space in the memory system.

Description

매체 액세스 제어/호스트 시스템 인터페이스를 구현하기 위한 방법 및 장치 {METHODS AND APPARATUS FOR IMPLEMENTING A MEDIA ACCESS CONTROL/HOST SYSTEM INTERFACE}METHOD AND APPARATUS FOR IMPLEMENTING MEDIA ACCESS CONTROL / HOST SYSTEM INTERFACE {METHODS AND APPARATUS FOR IMPLEMENTING A MEDIA ACCESS CONTROL / HOST SYSTEM INTERFACE}

본 발명은 데이터 통신 시스템에 관한 것으로, 특히, 근거리 통신망 매체액세스 제어(MAC ; media access control) 기능과 상기 네트워크에 부착된 호스트 스테이션 사이의 인터페이스를 구현하기 위한 방법 및 장치에 관한 것이다.The present invention relates to a data communication system, and more particularly, to a method and apparatus for implementing an interface between a local area network media access control (MAC) function and a host station attached to the network.

데이터 전송망의 스테이션 사이의 통신은 인접 프레임이 명시적 또는 암시적 스타트-스톱 패턴에 의해 분리되면서, 정보 캐릭터(character)의 시리즈 또는 '프레임'의 전송을 통해 발생된다. 유일한 스타트 패턴('스타트 디리미터' ; start delimiter)과 유일한 스톱 패턴('엔드 디리미터' ; end delimiter)을 사용하면, 수신 스테이션은 각 프레임의 정확한 시작과 정확한 끝을 구별할 수 있다.Communication between stations in a data transmission network occurs through the transmission of a series or 'frame' of information characters, with adjacent frames separated by an explicit or implicit start-stop pattern. By using a unique start pattern ('start delimiter') and a unique stop pattern ('end delimiter'; end delimiter), the receiving station can distinguish between the exact start and the exact end of each frame.

큰 인기를 끌은 한 형태의 네트워크는 토큰 링이다. 기본적인 토큰 링형 네트워크는 여러개의 중계기가 노드로 구성되는데, 각각의 중계기 노드는 단방향 전송 링크에 의해 연결되어 폐루프 링을 형성한다. 정보 프레임은 한 중계기에서 다음 중계기로 링 주위를 한 비트씩 순차적으로 이송되는데, 각 중계기는 각각의 비트를 재발생 및 재전송한다.One popular type of network is the token ring. A basic token ring network consists of several repeater nodes, each of which is connected by a unidirectional transport link to form a closed loop ring. The information frames are sequentially transported one bit around the ring from one repeater to the next, with each repeater regenerating and retransmitting each bit.

링상의 각 중계기는 재전송 요소로서 기능하는 것 이외에, 호스트 스테이션에 의해 정보를 삽입 및 검색하기 위한 호스트 스테이션 부착점으로서도 작용한다. 정보 프레임이 링 위에서 중계기를 지나서 순환되면, 프레임의 데스티네이션 어드레스 필드는 부착된 호스트의 데스티네이션 어드레스 필드와 비교된다. 호스트는 데스티네이션 어드레스가 자기의 것이라고 인지될 때에는 프레임을 복사한다.In addition to serving as a retransmission element, each repeater on the ring also acts as a host station attachment point for inserting and retrieving information by the host station. When the information frame is cycled past the repeater on the ring, the destination address field of the frame is compared with the destination address field of the attached host. The host copies a frame when the destination address is recognized as its own.

특정 형태의 토큰 링형 네트워크는 파이버 분배 데이터 인터페이스(FDDI) 프로토콜에 의해 한정된다. FDDI 프로토콜은 광섬유 전송 매체를 사용하는 100Mbit/sec 토큰 링형 네트워크에 적용되는 미합중국 표준(ANS) 데이터 전송 포맷이다. FDDI 프로토콜은 여러개의 호스트 컴퓨터 시스템들 사이와 컴퓨터 및 연관된 대량 저장 서브시스템과 기타 주변장치 사이의 고성능 상호접속으로서 계획되었다.Certain types of token ring networks are defined by the Fiber Distributed Data Interface (FDDI) protocol. The FDDI protocol is a United States Standard (ANS) data transmission format that applies to 100 Mbit / sec token ring networks using fiber optic transmission media. The FDDI protocol was designed as a high performance interconnect between multiple host computer systems and between computers and associated mass storage subsystems and other peripherals.

Howard W.Sims & Company에서 1987 년 발생한 Handbook of Computer-Communication Standards, Volume 2, pp.177-179에서 윌리엄 스톨링이 기술하였듯이, FDDI 토큰 링 기술은 모든 스테이션이 유휴(idle)상태에 있을 때 링 주위를 순환하는 작은 토큰 프레임 사용에 기초되었다. 전송하고자 하는 스테이션은 통과되는 토큰을 검출할 때까지 대기하여야 한다. 그 다음에 스테이션은 사용 가능한 토큰이 인지되자마자 토큰 전송을 포기함으로써 토큰을 포착한다. 토큰이 포착되면, 스테이션은 규정 최대 시간까지 전송 매체 제어 기능을 부여받으며, 그 동안에 하나 이상의 프레임을 링 위에 전송할 수 있다.As William Stalling wrote in Howard W. Sims & Company's 1987 Handbook of Computer-Communication Standards, Volume 2, pp. 177-179, the FDDI token ring technology provides a ring when all stations are idle. It is based on the use of small token frames to circulate around. The station wishing to transmit must wait until it detects a passing token. The station then captures the token by giving up the token transfer as soon as the available token is recognized. Once the token is acquired, the station is given transmission medium control functionality up to a specified maximum time, during which it can transmit one or more frames on the ring.

정보는 일련의 5 - bit 캐릭터 또는 '심볼'로 구성되는 프레임으로 FDDI 링상에서 전송되며, 각각의 심볼은 4개의 데이터 비트 또는 제어 코드를 나타낸다. 정보는 대표적으로 심볼 쌍 또는 '바이트'로 전송된다.Information is transmitted on an FDDI ring in a frame consisting of a series of 5-bit characters or 'symbols', each symbol representing four data bits or control codes. Information is typically transmitted in symbol pairs or 'bytes'.

도1은 FDDI 프레임 및 토큰 포맷에서 사용되는 필드를 도시한다. 일련의 유휴 회선-스테이트 심볼로 구성되는 프리앰블 필드(PA)는 각각의 전송에 선행한다. 스타트 디리미터 필드(SD)는 심볼 경계에 무관하게 일의적으로 인지가능한 2개의 제어 심볼 스타트 디리미터 쌍으로 구성된다. 상술한 바와 같이, 스타트 디리미터 바이트는 뒤따르는 정보의 경계를 설정한다. 프레임 제어 필드(FC)는 프레임 형태와 그 특성을 한정하는데, 이것은 동기적 전송과 비동기적 전송을 구별하고, 어드레스의 길이를 규정하며, 프레임 형태를 식별한다. 프레임 제어 필드는 토큰을 일의적으로 구별한다. 토큰의 엔딩 디리미터 필드(ED)는 2개의 엔드 디리미터 제어 심볼로 구성되며, 토큰을 완성시킨다. 데스티네이션 어드레스(DA) 및 소스 어드레스(SA)필드는 전송된 프레임의 데스티네이션 및 소스 어드레스를 포함한다. 데스티네이션 어드레스 필드와 소스 어드레스 필드는 프레임 제어 필드에 의해 결정되는 바와 같이 2개의 바이트 또는 6개의 바이트 길이이다. 데스티네이션 어드레스는 개별적 어드레스 또는 그룹 어드레스일 수도 있다. 프레임 체크 시퀀스 필드(FCS)는 4개의 바이트 길이이며, ANS 표준 폴리노미얼을 사용하는 사이클릭 리던던시 체크를 포함한다. 정보 필드는 프레임 체크 시퀀스 필드가 포함하는 모든 필드와 같이 데이터 심볼로만 구성된다. 프레임의 엔드 디리미터는 번지지정된 스테이션이 그 어드레스를 인지했는지, 프레임이 복사되었는지 또는 어느 스테이션이 프레임내의 오류를 검출했는지를 나타내는 3개의 제어 인디케이터(indicater) 심볼로 구성되는 프레임 상태 필드(FS)가 뒤따르는 한 엔드 디리미터 심볼(T)이다. 3개의 제어 인디케이터가 뒤따르는'T'는 넌-토큰(non-token) 프레임을 위하여 FDDI 프로토콜에 의해 요구되는 최소 엔드 디리미터를 나타낸다. 프로토콜은 엔드 디리미터내의 제어를 심볼의 부가적 쌍 또는 한 개의 마지막 'T' 심볼이 뒤따르는 부가적 홀수의 제어 심볼을 허용한다. 이 규칙을 따르는 모든 수행 수단들은 이 확장된 엔드 디리미터들을 잘라내지 않고 처리할 수 있어야만 한다. 엔드 디리미터 심볼(T)과 2개의 제어 심볼(R,S)은 일의적으로 엔코드되고 정상적 데이터 또는 유휴 심볼로부터 구별 가능하다.1 shows the fields used in the FDDI frame and token format. A preamble field (PA) consisting of a series of idle line-state symbols precedes each transmission. The start delimiter field SD is composed of two control symbol start delimiter pairs that are uniquely recognizable regardless of the symbol boundary. As described above, the start delimiter byte sets the boundary of the information that follows. The frame control field FC defines the frame type and its characteristics, which distinguish synchronous and asynchronous transmissions, define the length of the address, and identify the frame type. The frame control field uniquely distinguishes tokens. The ending delimiter field (ED) of the token consists of two end delimiter control symbols and completes the token. The destination address (DA) and source address (SA) fields contain the destination and source address of the transmitted frame. The destination address field and the source address field are two bytes or six bytes long, as determined by the frame control field. The destination address may be an individual address or a group address. The frame check sequence field (FCS) is four bytes long and contains a cyclic redundancy check using the ANS standard polynomial. The information field is composed of only data symbols like all fields included in the frame check sequence field. The end delimiter of a frame has a frame status field (FS) consisting of three control indicator symbols indicating whether the addressed station has recognized its address, the frame has been copied, or which station has detected an error within the frame. It is one end delimiter symbol T that follows. The 'T' followed by three control indicators represents the minimum end delimiter required by the FDDI protocol for non-token frames. The protocol allows control in the end delimiter with additional odd number of control symbols followed by additional pairs of symbols or one last 'T' symbol. All means of execution that follow this rule must be able to process these extended end delimiters without truncation. The end delimiter symbol T and the two control symbols R and S are uniquely encoded and distinguishable from normal data or idle symbols.

도 2 는 FDDI 프로토콜에 따르는 필요한 스테이션을 위한 콤포넌트의 엔티티를 도시한다. 필요한 콤포넌트 링의 부재로서 적절한 작동을 보장하기 위하여 스테이션의 모든 작용을 제어할 네트워크상의 각각의 호스트 스테이션에 상주하는 스테이션 관리 기능(SMT)을 포함한다. 물리 층 매체 의존도(PMD; Physical Layer Medium Dependent)기능은 링상의 인접 스테이션 사이의 광 섬유 링크를 제공한다. 물리 층 프로토콜(PHY)기능은 엔코딩, 디코딩, 클록 및 동기화 기능을 제공한다. 매체 액세스 제어(MAC)기능은 전송 매체에의 액세스를 제어하며, 다른 스테이션의 매체 액세스 제어 기능으로 또한 그 기능으로부터 프레임을 전송 및 수신한다. PHY 기능은 동시에 수신 및 전송한다. PHY 기능의 전송 논리부는 매체 액세스 제어 기능으로부터 심볼을 수용하고, 이 심볼들을 5비트 코드 그룹으로 변환하며, PMD 능력을 사용하여 엔코드 시리얼 스트림(stream)을 매체에 전송한다 PHY 기능의 수신 논리부는 매체로부터 PMD를 거쳐 엔코드 시리얼 스트림을 수신하고, 스타트 디리미터 심볼 쌍의 인지에 기초하여 심볼 경계를 설정하며, 디코드 심볼을 그와 관련된 매체 액세스 제어 기능으로 보낸다.2 shows an entity of a component for a necessary station conforming to the FDDI protocol. It includes a station management function (SMT) residing at each host station on the network that will control all the operations of the station to ensure proper operation as the absence of the required component rings. Physical Layer Medium Dependent (PMD) functionality provides an optical fiber link between adjacent stations on a ring. Physical layer protocol (PHY) functions provide encoding, decoding, clock, and synchronization functions. The media access control (MAC) function controls access to the transmission medium, and also transmits and receives frames from the function with the media access control function of another station. The PHY function receives and transmits simultaneously. The transmit logic of the PHY function accepts symbols from the media access control function, converts these symbols into 5-bit code groups, and transmits an encoded serial stream to the medium using the PMD capability. An encoded serial stream is received from the medium via the PMD, the symbol boundary is set based on the recognition of the start delimiter symbol pair, and the decode symbol is sent to the associated media access control function.

FDDI 프로토콜에 관한 추가적인 정보는 본 발명에 관련된 부가적인 배경 정보를 제공하기 위하여 본 명세서에 참조로서 합체된 'FDDI-an Overview', Digest of Papers, Computer Soc. Intl. Conf. Compcon '87, pp. 434-444에서 플로이드 이. 로스(Floyd E. Ross) 의해 제공되었다.Additional information regarding the FDDI protocol can be found in the 'FDDI-an Overview', Digest of Papers, Computer Soc., Incorporated herein by reference to provide additional background information related to the present invention. Intl. Conf. Compcon '87, pp. Floyd Lee at 434-444. Provided by Floyd E. Ross.

도 3 은 FDDI 토큰 링과 MAC 기능 사이에 통합 인터페이스를 제공하기 위하여 합체하는 일련의 요소들을 도시한다.3 illustrates a series of elements that coalesce to provide an integrated interface between FDDI token ring and MAC functionality.

클록 회복 장치(10)는 링상의 업 스트림 스테이션에 의해 FDDI 광 섬유 전송 매체상에 놓인 유입(incoming) 시리얼 비트 스트림으로부터 125 MHz 클록을 추출한다.The clock recovery device 10 extracts a 125 MHz clock from an incoming serial bit stream placed on an FDDI fiber optic transmission medium by an upstream station on the ring.

12.5MHz 크리스탈 기준으로부터, 클록 분배 장치(12)는 물리 층 제어기(Player; 14)와 기본 매체 액세스 제어기(BMAC; 16)에 의해 필요한 여러 가지 클록을 합성한다. 플레이어(14)는 BMAC(16)로부터 검색된 12.5Mbyte/sec 스트림을 변환시키고 유입되는 4B/5B 데이터를 내부 코드로 디코드한다.From the 12.5 MHz crystal reference, the clock distribution device 12 synthesizes the various clocks required by the physical layer controller (Player) 14 and the basic medium access controller (BMAC) 16. The player 14 converts the 12.5 Mbyte / sec stream retrieved from the BMAC 16 and decodes the incoming 4B / 5B data into an internal code.

BMAC(16)는 FDDI 토큰과 프레임의 전송, 수신, 중계 및 스트립핑을 제어한다.The BMAC 16 controls the transmission, reception, relay, and stripping of FDDI tokens and frames.

도 4 와 같이, BMAC(16)는 링 엔진(18), 제어 인터페이스(20), PHY 인터페이스(22) 및 MAC 인터페이스(24)를 포함한다.As shown in FIG. 4, the BMAC 16 includes a ring engine 18, a control interface 20, a PHY interface 22, and a MAC interface 24.

링 엔진(18)은 BMAC(16)의 심장부이며, FDDI 링상의 프레임을 전송, 수신, 중계 및 스트립핑을 하기 위해 ANS X3T9.5 MAC 프로토콜을 수행한다.The ring engine 18 is the heart of the BMAC 16 and performs the ANS X3T9.5 MAC protocol for transmitting, receiving, relaying and stripping frames on the FDDI ring.

제어 인터페이스(20)는 제어 버스(도3)에 인터페이스를 제공하는데, 제어 버스를 통해서 BMAC(16)의 작동을 개시하고 감시하며 진단한다.The control interface 20 provides an interface to the control bus (FIG. 3), which initiates, monitors and diagnoses the operation of the BMAC 16 via the control bus.

PHY 인터페이스(22)는 PHY 리퀘스트 버스(request bus)를 경유하여 플레이어(14)에 바이트 스트림을 제공하며, PHY 인디케이트 버스(indicate bus)를 경유하여 플레이어(14)로부터 바이트 스트림을 수신한다.The PHY interface 22 provides a byte stream to the player 14 via a PHY request bus, and receives a byte stream from the player 14 via a PHY indicator bus.

MAC 인터페이스(24)는 스테이션의 외부 버퍼링 및 제어 논리부에 인터페이스를 제공한다. 바이트 스트림은 MAC 인디케이트 버스를 경유하여 적절한 제어 신호로 버퍼링 및 제어 논리부에 제공된다. 바이트 스트림은 MAC 리퀘스트 버스를 경유하여 적절한 핸드셰이크 제어 신호로 MAC 인터페이스에 제공된다.MAC interface 24 provides an interface to the external buffering and control logic of the station. The byte stream is provided to the buffering and control logic with the appropriate control signals via the MAC indicator bus. The byte stream is provided to the MAC interface with the appropriate handshake control signal via the MAC request bus.

도 5를 참조하며, 링 엔진(18)은 타이머/카운터 논리부(30)와 MAC 파라미터 RAM(32)을 공유하는 수신기(26)와 전송기(28)의 2개의 주요 블록을 포함한다.Referring to FIG. 5, the ring engine 18 includes two main blocks, the receiver 26 and the transmitter 28, which share the MAC parameter RAM 32 with the timer / counter logic 30.

수신기(26)는 FDDI 링으로부터의 정보를 검증하고, 오류와 고장을 검출하며, 전송기(28)에 의해 사용되고 MAC 인터페이스(24)에 제공되는 적절한 제어 신호 및 플래그를 발생시킨다. 또한, 수신기(26)는 스타트 및 엔드 디리미터의 식별에 기초하여 PHY 인디케이트 버스상에서 수신된 바이트 스트림으로부터 프레임과 토큰과 프래그먼트를 그린다.Receiver 26 verifies information from the FDDI ring, detects errors and failures, and generates appropriate control signals and flags used by transmitter 28 and provided to MAC interface 24. Receiver 26 also draws frames, tokens, and fragments from the received byte stream on the PHY indicator bus based on the identification of the start and end delimiters.

MAC 파라미터 RAM(32)은 암시되는 바와 같이 연관된 스테이션의 어드레스와 같은 파라미터를 포함하는 이중-포트 RAM 이다. 수신기(26)는 수신된 어드레스와 자체 어드레스를 비교하기 위하여 파라미터 RAM(32)내에 저장된 값을 사용한다. 전송기(28)는 호스트 스테이션에 의해 발생된 모든 프레임의 소스 어드레스(SA)를 발생시키기 위해 파라미터 RAM(32)을 또한 사용한다.MAC parameter RAM 32 is a dual-port RAM that contains parameters such as the address of the associated station as implied. Receiver 26 uses the value stored in parameter RAM 32 to compare its address with the received address. The transmitter 28 also uses the parameter RAM 32 to generate the source address SA of every frame generated by the host station.

전송기(28)는 링상의 다른 스테이션으로부터의 프레임을 중계하며, FDDI 타임-토큰 MAC 프로토콜에 따라서 연관된 호스트 스테이션으로부터의 프레임을 링내로 삽입한다. 전송기(28)는 프레임을 중계 또는 스트립핑 또는 발생시킬 것인가를 디코드하는데 수신기(26)에 의해 제공되는 정보를 사용한다. 전송기(28)는 전송 리퀘스트가 호스트 스테이션에 의해 링 엔진(18)으로 전달될 때까지 프레임 중계를 계속한다.The transmitter 28 relays frames from other stations on the ring and inserts frames from the associated host station into the ring according to the FDDI time-token MAC protocol. Transmitter 28 uses the information provided by receiver 26 to decode whether to relay, strip, or generate a frame. Transmitter 28 continues to relay frames until transmission requests are forwarded to ring engine 18 by the host station.

전송 리퀘스트는 리퀘스트된 서비스 등급(즉, 동기적 또는 비동기적) 및 포착 또는 방출할 토큰의 형태를 포함한다. 상술한 바와 같이, 스테이션은 토큰은 포착하므로써 전송권을 얻는다. 일단 토큰이 포착되면, 데이터가 스테이션에 의해 전송될 준비가 될 때까지 링 엔진(18)은 대기한다. 프레임이 전송되면, 프레임은 링을 따라서 통과되고, 각각의 순차적 스테이션은 프레임을 한번에 한 바이트씩 조사한다. 프레임은 매 스테이션에서 중계되고, 프레임을 원래 전송했던 스테이션에 의해 결국 스트립핑된다.The transfer request includes the requested class of service (ie, synchronous or asynchronous) and the type of token to be captured or emitted. As described above, the station acquires a transmission right by capturing a token. Once the token is captured, ring engine 18 waits until data is ready to be sent by the station. As the frame is transmitted, the frame passes along the ring, and each sequential station examines the frame one byte at a time. The frame is relayed at every station and eventually stripped by the station that originally sent the frame.

도 5에서도 도시했듯이, 전송기(28)는 전송기 스테이트 머신(TSM;34)과, FCS 발생기(36)와, ROM(38)과 링으로 데이터를 발생시키는 것을 제어하기 위한 다중화 논리부(40)을 포함한다.As also shown in FIG. 5, transmitter 28 includes a transmitter state machine (TSM) 34, an FCS generator 36, a ROM 38 and a multiplexing logic 40 for controlling the generation of data to the ring. Include.

전송기 스테이트 머신(34)은 링에 전송될 프레임의 필드를 통한 시퀀싱을 제공한다.Transmitter state machine 34 provides sequencing through the fields of frames to be sent to the ring.

FCS 발생기(36)는 32-bit CRC를 계산하고 이것을 데이터 스트림으로부터의 정보에 첨부시킨다.FCS generator 36 calculates a 32-bit CRC and appends it to the information from the data stream.

ROM(38)은 엔드 디리미터 및 프레임 상태 필드로서 프레임과 함께 전송될 제어 심볼 쌍을 발생시키는데 사용된다.ROM 38 is used to generate control symbol pairs to be sent with the frame as end delimiter and frame status fields.

출력 다중화기(40)는 PHY 리퀘스트 버스상에 올려질 정보 소스를 선택하는데에 사용된다. 상술한 바와 같이, 이 정보는 PHY 인디케이트 버스로부터 중계되거나 또는 연관된 스테이션에 의해 독립적으로 발생된다. 정보는 데이터 스트림, ROM(38), FCS 발생기(36) 또는 파라미터 RAM(32)으로부터 발생될 수 있다.Output multiplexer 40 is used to select the source of information to be loaded on the PHY request bus. As noted above, this information is generated independently by the associated station or relayed from the PHY indicator bus. Information may be generated from data stream, ROM 38, FCS generator 36 or parameter RAM 32.

타이머/카운터 블록(30)은 ANS X3T9.5 MAC 표준을 수행하는데 요구되는 모든 타이머와 여러 가지 이벤트 카운터를 포함한다. 이것은 또한 FDDI 타임-토큰 프로토콜의 수행에 요구되는 토큰 타이밍 논리부를 포함한다.The timer / counter block 30 includes all the timers and various event counters required to implement the ANS X3T9.5 MAC standard. It also includes token timing logic required for the performance of the FDDI time-token protocol.

도6을 참조하면, 토큰 타이밍 논리부(42)는 전송기(28)에 의해 제어된다.Referring to Figure 6, token timing logic 42 is controlled by transmitter 28.

토큰 회전 타이머(TRT; 44)는 링상에서 도착부터 도착까지의 토큰 회전을 시간 조절하는데에 사용된다. 회전 시간이 길수록 링상의 적재량은 크다. 도6에 도시된 토큰 타이밍 논리부(42)내의 타이머는 매 80ns 증가시키는 업-카운터로서 수행된다. 카운터는 임계치의 2진 보수를 적재하므로써 리셋된다. 이것은 타이머 종료를 나타내기 위하여 단순한 캐리(carry)를 허용한다.Token Rotation Timer (TRT) 44 is used to time the token rotation from arrival to arrival on the ring. The longer the rotation time, the greater the load on the ring. The timer in token timing logic section 42 shown in FIG. 6 is performed as an up-counter incrementing every 80 ns. The counter is reset by loading the binary complement of the threshold. This allows a simple carry to indicate timer termination.

토큰 유지 타이머(THT; 46)는 토큰이 스테이션에 의해 포착된 후에 비동기식 전송을 위해 스테이션에 의해 사용되는 링 대역폭의 양을 제한하는데 사용된다. 각각의 프레임이 전송되기 전에, 포착된 토큰이 아직 전송을 위해 사용가능한 지를 결정하기 위해서 THT의 값이 사용된다. THT가 선택된 임계치에 도달되지 않았으면 토큰은 비동기 트래픽을 위해 사용가능하다.The token hold timer (THT) 46 is used to limit the amount of ring bandwidth used by the station for asynchronous transmission after the token is captured by the station. Before each frame is sent, the value of THT is used to determine if the captured token is still available for transmission. If the THT has not reached the selected threshold, the token is available for asynchronous traffic.

4개의 비동기 임계치가 BMAC(16)에 의해 지지되는데, 3개는 프로그램 가능하고, 1개는 절충 목표 토큰 회전 시간(TTRT)에 고정된다. 우선순위 임계치중의 하나에서 프레임을 전송하기 위한 리퀘스트는 토큰 유지 타이머(46)가 선택된 임계치에 도달되지 않았을 경우에 충족된다. TRT가 0에 도달되면, 토큰이 늦었다는 것을 나타내는 지연 플래그가 셋팅된다. 지연 플래그가 셋팅되는 동안에는, 비동기 프레임은 전송될 수 없고, 토큰은 동기 전송에 이용 가능하다.Four asynchronous thresholds are supported by the BMAC 16, three are programmable and one is fixed to the compromise target token rotation time (TTRT). A request for sending a frame at one of the priority thresholds is satisfied if the token retention timer 46 has not reached the selected threshold. When the TRT reaches zero, a delay flag is set indicating that the token is late. While the delay flag is set, asynchronous frames cannot be transmitted and the token is available for synchronous transmission.

토큰의 조기 도착시에는, 즉, 토큰이 도착되었으나 지연 플래그가 셋팅되지 않았을 때에는, TRT는 절충 목표 토큰 회전 시간 TTRT로 적재되고 카운트 업한다. 토큰의 지연 도착시에는, 즉, 토큰이 도착되고 지연 플래그가 셋팅되었을 때에는, 지연 플래그가 지워지고 TRT가 카운트를 계속한다. TRT가 종료되면 지연 플래그가 셋팅되지 않고, 지연 플래그가 셋팅되며 TRT는 TTRT로 적재된다. 누적된 지연은 ANSI X3T9.5 MAC 표준에서 정의된 바와 같이 정확히 수행된다.On early arrival of the token, i.e. when the token arrives but no delay flag is set, the TRT is loaded and counted up with the compromise target token rotation time TTRT. On delayed arrival of the token, i.e. when the token arrives and the delay flag is set, the delay flag is cleared and the TRT continues counting. When the TRT ends, the delay flag is not set, the delay flag is set, and the TRT is loaded into the TTRT. The accumulated delay is performed exactly as defined in the ANSI X3T9.5 MAC standard.

토큰이 포착될 때까지 THT는 TRT의 값을 따른다. 토큰이 포착되면, TRT는 TTRT로 재적재되고, THT는 전의 값에서부터 카운트를 계속한다(THT는 랩어라운드(wraparound)하지 않는다). THT는 인에이블 상태로 되면 증가된다. THT의 증가는 예로서 동기 전송 동안에는 디스에이블된다. THT는 토큰이 비동기 리퀘스트에 사용 가능한 지를 결정하는 데에 사용된다. 이러한 목적을 위하여, 토큰은 실제로 지연되기 전에 이미 1 - 바이트 지연된 것으로 간주된다(다소 부주의한 수행에 있어서도 상호호환성을 증진시키기 위함).THT follows the value of the TRT until the token is captured. Once the token is captured, the TRT is reloaded into the TTRT, and the THT continues counting from the previous value (THT does not wrap around). THT is increased when enabled. An increase in THT is, for example, disabled during synchronous transmission. THT is used to determine if a token is available for asynchronous requests. For this purpose, the token is considered to be one-byte delayed before it is actually delayed (to promote interoperability, even for careless performance).

비동기 임계치 비교는 파이프라인되고, 따라서, 임계치 크로싱은 즉각 검출되지 않을 수도 있다. 그러나, 가능한 오류는 임계치 정확도의 일부분이다.Asynchronous threshold comparisons are pipelined, so threshold crossings may not be detected immediately. However, the possible error is part of the threshold accuracy.

지연 플래그가 셋팅되는 동안에 TRT는 TMAX로 적재되고 복구 프로세스가 호출된다. 복구 요구 상태는 역시 다소 부주의한 수행에 있어서도 상호 호환성을 증진시키기 위해 TRT가 종료된 후 1바이트의 시간이 지난 후에 발생된다. TRT가 종료되고 링이 작동되지 않을 때에 TRT는 TMAX로 적재된다. TRT는 또한 리셋시에도 TMAX로 적재된다.While the delay flag is set, the TRT is loaded into TMAX and the recovery process is invoked. The recovery request state also occurs one byte after the end of the TRT to promote interoperability even in somewhat inadvertent performance. When the TRT ends and the ring is not active, the TRT is loaded at TMAX. The TRT is also loaded into TMAX at reset.

BMAC(16)에 관한 추가적 정보는 다음의 계류중인 미합중국 특허출원에 제공되었는데, 각각의 특허출원은 본 출원과 함게 내쇼널 세미컨덕터 코포레이션(National Semiconductor Corporation)에 공동 양도되었다. 그 계류중인 출원은Additional information regarding the BMAC 16 was provided in the following pending United States patent applications, each of which was jointly assigned to National Semiconductor Corporation with this application. The pending application

1. 햄스트라가 RAM - Based Events Counter 장치 및 방법에 관하여 1989년 11월 14일 출원한 미합중국 특허출원 제 436,212 호와,1. United States Patent Application No. 436,212 filed on Nov. 14, 1989, relating to a device and method for RAM-Based Events Counter;

2. 펄로프가 Apparatus and Method for Accessing a Cyclic Redundancy Error Check Code Generated in Parallel에 관하여 1989년 12월 4일 출원한 미합중국 특허출원 제 445,964 호와,2. US Patent Application No. 445,964, filed December 4, 1989, by Perloff on Apparatus and Method for Accessing a Cyclic Redundancy Error Check Code Generated in Parallel,

3. 그로우 등이 Asynchronous Priority Select Logic에 관하여 1989년 12월 1일 출원한 미합중국 특허출원 제 444,628 호와,3. United States Patent Application No. 444,628, filed December 1, 1989 by Grow et al. On Asynchronous Priority Select Logic;

4. 그로우가 Ring Latency Timer에 관하여 1989년 12월 1일 출원한 미합중국 특허출원 제 444,537 호이다.4. United States Patent Application No. 444,537, filed December 1, 1989, with respect to Ring Latency Timer.

상기 4개의 특허출원은 본 발명에 관련된 부가적 배경 정보를 제공하기 위하여 본 명세서에 참조로서 합체되었다.The four patent applications are incorporated herein by reference to provide additional background information related to the present invention.

본 발명은 근거리 통신망의 매체 액세스 제어(MAC)기능과 MAC를 경유하여 네트워크 매체에 부착된 호스트 시스템 사이에 인터페이스를 제공한다. 인터페이스는 MAC 수신기로부터 수신된 프레임과 매체에의 전송을 위해 호스트에 의해 제공되는 프레임 모두를 위해 호스트 메모리 시스템과 MAC 사이의 정보 전달을 수행한다.The present invention provides an interface between a medium access control (MAC) function of a local area network and a host system attached to a network medium via a MAC. The interface performs the transfer of information between the host memory system and the MAC for both frames received from the MAC receiver and frames provided by the host for transmission to the medium.

본 발명에 따른 인터페이스는 2개의 파이프라인 데이터 경로를 포함한다. 인디케이트 모듈은 수신된 프레임을 통합 버스 인터페이스 유닛을 경유하여 MAC 수신기부로부터 호스트 메모리로 전송한다. 리퀘스트 모듈은 MAC 전송기부로의 전송을 위하여 버스 인터페이스 유닛을 경유하여 호스트로부터 프레임을 수신한다. 인디케이트 및 리퀘스트 모듈에 의해 공유되는 상태 발생/스페이스 관리 모듈은 프레임 전달에 필요한 전송 상태를 감시하고 호스트 시스템 메모리내의 저장 스페이스 할당을 관리한다. 제어 버스 인터페이스는 인터페이스내의 레지스터를 제어하기 위하여 호스트 액세스를 제공한다.The interface according to the invention comprises two pipeline data paths. The indicator module sends the received frame from the MAC receiver section to the host memory via the integrated bus interface unit. The request module receives a frame from the host via the bus interface unit for transmission to the MAC transmitter section. The status generation / space management module shared by the indication and request modules monitors the transmission status required for frame delivery and manages storage space allocation in host system memory. The control bus interface provides host access to control the registers in the interface.

수신 프레임 상태가 수신 데이터 플로우에 평행한 경로내에서 MAC 인터페이스로부터 시스템 인터페이스로 통과되는 종래의 인터페이스에 있어서는, 한번에 단 하나의 엔드-오브-프레임(end-of-frame; EOF)만이 수신 FIFO(first in fisrt out; 선입선출)내에 허용될 수 있다. 이것은 드롭 수신 프레임(dropped received frame)을 발생시킨다.In a conventional interface where the receive frame state is passed from the MAC interface to the system interface in a path parallel to the receive data flow, only one end-of-frame (EOF) at a time is received FIFO (first). in fisrt out. This generates a dropped received frame.

본 발명의 한 특징에 따라서, EOF에서 MAC 인터페이스는 한 최종 단어(word)를 프레임 상태로서 첨가하고 상태 단어를 데이터 뒤에서 수신 FIFO내로 위치시킨다. 시스템 인터페이스는 상태를 처리하기 전에 데이터를 판독하고 EOF 상태 디스크립터(descriptor)를 기입한다. 데이터/상태 동기화는 자동적이며, MAC 인터페이스와 시스템 인터페이스 사이의 여타 통신은 필요하지 않다. 이것은 복잡한 데이터/상태 동기화 없이도 프레임을 몇 개라도 수신 FIFO내에 위치시킬 수 있게 한다. 이것은 많은 소형 프레임을 수신할 때 FIFO의 전체 사용을 허용하며 따라서 장기적 버스 지연으로 인한 드롭 프레임의 가능성을 감소시킨다. 이것은 수신 FIFO가 어떠한 깊이로 될 수 있다는 점에서 설계 신축성을 허용한다.According to one aspect of the invention, the MAC interface in EOF adds one final word as the frame state and places the state word behind the data into the receive FIFO. The system interface reads data and writes EOF state descriptors before processing the state. Data / state synchronization is automatic and no other communication between the MAC interface and the system interface is required. This allows any number of frames to be placed within the receive FIFO without complicated data / state synchronization. This allows full use of the FIFO when receiving many small frames, thus reducing the possibility of drop frames due to long-term bus delays. This allows for design flexibility in that the receiving FIFO can be at any depth.

종래의 인터페이스에 있어서 모든 수신된 프레임을 단일 목록의 풀 스페이스(pool space)디스크립터에 의해 기술된 호스트 메모리 시스템내의 단일 스페이스에 복사된다.In a conventional interface, all received frames are copied into a single space in the host memory system described by a single list of pool space descriptors.

본 발명의 한 특징에 따라서, 다중 채널이 수신된 프레임을 위해 제공되고, 유입 프레임을 위한 채널은 프로그램 소트 모드와, 프레임 FC와, MAC 또는 외부 어드레스 비교 하드웨어가 데스티네이션 어드레스 매치를 나타내는가에 따라 선택된다. 각각의 채널은 프레임 데이터가 시스템 메모리내에서 복사될 위치를 나타내는 자체 풀 스페이스 디스크립터 큐와 완전 독립적 호스트 처리를 위한 상태 큐를 갖는다.According to one aspect of the invention, multiple channels are provided for received frames, the channels for incoming frames being selected depending on the program sort mode and whether the frame FC and the MAC or external address comparison hardware indicate a destination address match. do. Each channel has its own full space descriptor queue indicating where frame data is to be copied in system memory and a status queue for fully independent host processing.

종래의 인터페이스에 있어서, 수신된 프레임 전체는 하나의 호스트 메모리 버퍼 구역에 복사된다. 프로토콜을 운용할 때에 신속한 액세스는 프레임의 헤더 부분에서만 요구되며, 헤더는 프레임 데이터보다 빨리 처리되어야만 한다. 헤더 버퍼 스페이스는 보다 빨리 재순환되어야만 한다. 데이터 버퍼 스페이스가 완전히 소모되어 핸드셰이크 또는 플로우 제어를 유지할 능력을 상실할 때에는 헤더 처리는 계속될 수 없다.In a conventional interface, the entire received frame is copied to one host memory buffer area. When operating the protocol, fast access is only required in the header portion of the frame, and the header must be processed earlier than the frame data. Header buffer space must be recycled sooner. Header processing cannot continue when data buffer space is exhausted and loses the ability to maintain handshake or flow control.

본 발명의 한 특징에 따라서, 인터페이스는 선행 바이트와 후속 바이트의 분리가 일어날 수 있는 프레임내의 하나 이상의 지점을 결정한다. 이 메카니즘은 카운터일 수 있거나, 또는 정보 스트림내의 데이터 값 또는 외부 스티뮬러스(stimulus)에 응답하는 스테이트 머신을 합체할 수도 있다. 분리점에서 연속 정보 바이트는 시스템 메모리내의 별개의 메모리 구역에 복사된다. 버퍼 관리 계획은 각각의 메모리 구역에 대해 별도의 관리를 제공한다. 상태는 한 조합 메모리 구역에 기입될 수 있고, 따라서, 상태는 보다 용이한 처리 및 관리를 위해 호스트에 의해 그룹지워질 수 있다.According to one aspect of the invention, the interface determines one or more points in the frame where separation of the preceding and subsequent bytes may occur. This mechanism may be a counter or incorporate a state machine that responds to data values or external stimulus in the information stream. At the split point, consecutive information bytes are copied to a separate memory area in system memory. The buffer management plan provides separate management for each memory area. The states can be written to one combination memory area, and thus the states can be grouped by the host for easier processing and management.

이 프레임 분할 메카니즘은 헤더를 데이터가 아닌 별개의 메모리 구역내에 위치시키는 것을 허용한다. 이것은 또한 헤더와 데이터를 위해 별도의 버퍼 관리를 허용한다. 헤더는 데이터 버퍼 스페이스가 완전히 소모되었을 때에도 처리될 수 있다.This frame segmentation mechanism allows the header to be placed in a separate memory region rather than data. It also allows separate buffer management for headers and data. The header can be processed even when the data buffer space is exhausted.

FDDI MAC 프레임은 동일 프레임의 긴 버스트의 형태로 발생된다. 그러한 프레임이 모두 복사되면 이것들은 버퍼 스페이스와 처리 오버헤드를 소모한다. 더구나, FDDI 프레임은 버스트로 발생할 수 있다. 통상적으로 프레임마다 한 번의 인터럽트가 주어진다. 이것은 각 프레임에 발생되는 퍼-인터럽트(per-interrupt) 오버헤드에 기인하는 비효과적인 처리를 발생시킨다.FDDI MAC frames are generated in the form of long bursts of the same frame. When all such frames are copied, they consume buffer space and processing overhead. Moreover, FDDI frames can occur in bursts. Typically, one interrupt is given per frame. This results in ineffective processing due to the per-interrupt overhead that occurs in each frame.

본 발명의 한 특징에 따라서, MAC 프레임은 여과되고, 따라서, 새로운 정보를 포함하는 프레임만 복사된다. 상태(인터럽트)는 새로운 정보를 위한 중단점에서만 호스트에 제공된다. 추가적으로, 전송 및 수신 프레임은 버스트로 전송되고, 상태 요약은 버스트 경계에서만 제공되어 호스트 인터럽트 수를 더욱 최소화 한다. 호스트 프로그램 가능 옵션은 버스트 경계 선택을 위해 제공된다.According to one aspect of the present invention, MAC frames are filtered, so that only frames containing new information are copied. The state (interrupt) is provided to the host only at breakpoints for new information. In addition, transmit and receive frames are transmitted in bursts, and status summaries are provided only at the burst boundary, further minimizing the number of host interrupts. Host programmable options are provided for burst boundary selection.

종래의 인터페이스는 모든 버스 액세스를 위해서 고정 버스트 사이즈 또는 트랜잭션을 사용하였다. 이것은 버스트 사이즈가 필요한 데이터 액세스와 매치 되지 않을 때마다 버스 사이클의 낭비를 초래한다.Conventional interfaces used a fixed burst size or transaction for all bus accesses. This wastes bus cycles whenever the burst size does not match the required data access.

본 발명의 한 특징에 따라서, 시스템 인터페이스는 필요한 데이터의 페칭/저장 시에 페칭/저장을 수행하기에 가장 효과적인 버스 트랜잭션을 계산하는데 데이터 포인터와 카운트를 사용한다.In accordance with one aspect of the present invention, the system interface uses data pointers and counts to calculate the bus transactions most effective for performing fetching / storing in the fetching / storing of the required data.

'충분한'바이트가 요구되는 때에만 보다 긴 버스트가 더욱 효과적이다. 각각의 버스 트랜잭션에 대해 포인터와 카운터를 업데이트시키므로써, 가장 효과적인 트랜잭션이 동적으로 계산된다. 따라서, 인터페이스는 요구되는 데이터를 전달하는데에 가능한 최소 버스트 사이클을 사용하고, 시스템 인터페이스의 버스 대역폭 요구사항을 최소화한다.Long bursts are more effective only when 'sufficient' bytes are required. By updating the pointers and counters for each bus transaction, the most effective transaction is calculated dynamically. Thus, the interface uses the minimum burst cycles possible to carry the required data and minimizes the bus bandwidth requirements of the system interface.

종래의 인터페이스는 선취형(pre-empted)전송 리퀘스트는 손실되고, 호스트로 하여금 리퀘스트를 다시 순서를 정하게 하며, 호스트 CPU 시간을 낭비시켰다.Conventional interfaces lose pre-empted transfer requests, cause the host to reorder the requests, and waste host CPU time.

본 발명의 한 특징에 따라서, 시스템 인터페이스는 선취 가능한 채널상에 전송된 각각의 프레임을 위해 제 1 출력 데이터 유닛 디스크립터의 어드레스를 비워둔다. 만약 선취가 발생하면, 보다 높은 우선순위 리퀘스트에 부응하기 위해서 인터페이스는 채널을 교환한다. 보다 높은 우선순위 리퀘스트가 완료되면, 인터페이스는 다시 되돌려 교환되고 비워둔 디스크립터 어드레스에 리퀘스트 처리를 복귀시킨다.According to one aspect of the invention, the system interface leaves the address of the first output data unit descriptor blank for each frame transmitted on the preemptive channel. If a preemption occurs, the interface exchanges channels in order to meet higher priority requests. When the higher priority request is completed, the interface returns back and returns the request processing to the descriptor address that was left empty.

종래의 언터페이스는 데이터와 연관되지 않은 명령은 전달되지 않았다. 따라서, 데이터가 준비될 때까지 명령은 지연될 수 밖에 없었다.Conventional uninterface commands have not been passed that are not associated with data. Therefore, the command had to be delayed until the data was ready.

본 발명의 한 특징에 따라, 인터페이스는 각각의 새롭게 페치된 데이터 유닛 디스크립터상에 바이트 카운트 필드를 스캔(scan)한다. 바이트 카운트 필드가 0 이면 디스크립터는 전혀 검증되지 않고, 데이터 페치는 리퀘스트되지 않으며 디스크립터 처리가 계속된다. 이러한 체크가 없으면, 인터페이스는 처리가 계속되기 전에 기술된 데이터가 페치될 때까지 대기하여야 한다. 그러나, 제로 바이트 카운트로는 페치가 발생될 수 없다. 따라서, 모든 데이터 유닛이 데이터를 가져야만 한다는 제한이 부과될 것이다. 본 발명에 따른 인터페이스는 디스크립터 구조체내에 제로-길이 디스크립터를 허용하며, 호스트 소프트웨어로 하여금 디스크립터를 제거하고 넌-제로 길이 디스크립터를 함께 묶기 위해 시간을 낭비하지 않도록 한다.According to one aspect of the invention, the interface scans the byte count field on each newly fetched data unit descriptor. If the byte count field is zero, the descriptor is not validated at all, no data fetch is requested, and descriptor processing continues. Without this check, the interface must wait until the described data is fetched before processing continues. However, no fetch can occur with a zero byte count. Thus, a restriction will be imposed that all data units must have data. The interface according to the present invention allows zero-length descriptors in the descriptor structure and does not waste time for the host software to remove the descriptors and to tie the non-zero length descriptors together.

인터페이스는 제로 프레임을 기술하는 리퀘스트 오브젝트의 제 1 디스크립터가 토큰 포착 리퀘스트임을 인지한다. 동일 오브젝트의 후속 디스크립터는 프레임 데이터를 기술한다. 또한, 오브젝트의 마지막 디스크립터가 제로 프레임을 포함하면, 이것은 토큰 해제 리퀘스트이다. 이러한 디스크립터는 프레임 데이터 사용 가능성과 무관하게 순서가 정해질 수 있다. 이 메카니즘은 데이터를 반드시 준비하지 않고도 어떠한 서비스 등급의 토큰이라도 포착을 리퀘스트할 수 있도록 호스트를 허용하고, 모든 데이터가 디스크립터 스트림 인터페이스를 통해 전송된 후에는 토큰 방출을 허용한다.The interface recognizes that the first descriptor of the request object describing the zero frame is a token capture request. Subsequent descriptors of the same object describe the frame data. Also, if the last descriptor of an object contains zero frames, this is a token release request. These descriptors can be ordered regardless of frame data availability. This mechanism allows the host to request acquisition of any service class token without necessarily preparing the data, and allows token release after all data has been sent through the descriptor stream interface.

종래의 인터페이스에서, 오브젝트의 끝을 표시하는 단일 디스크립터 플래그는 일치성 체크와 리던던시를 제공하지 않으므로 결함 검출도 제공하지 않는다. 모든 시퀀스는 합법적인 것으로 나타난다. 따라서, 오류는 링으로 전파된다.In a conventional interface, a single descriptor flag that marks the end of an object does not provide consistency checking and redundancy and therefore does not provide fault detection. All sequences appear to be legitimate. Thus, the error propagates to the ring.

본 발명의 한 특징에 따라서, 디스크립터는 오브젝트의 경계를 구분하기 위하여 '제 1'플래그와 '최종' 플래그를 포함한다. 어느 플래그도 갖지 않은 디스크립터는 '중간'이며, 두 플래그 모두를 가진 디스크립터는 '유일'이다. '제 1' 또는 '유일'은 '최종' 또는 '유일'에 후속되어야 하고, '제 1' 또는 '중간'은 '최종'에 선행해야만 한다. 그렇지 않으면, 일치성 고장이 검출된다. 이 메카니즘은 디스크립터 일치성 체크를 허용하며, 따라서, 불량 디스크립터에 의해 기술된 프레임은 링에 전송되지 않는다.According to one aspect of the invention, the descriptor includes a 'first' flag and a 'final' flag to distinguish the boundary of the object. Descriptors without either flag are 'medium', and descriptors with both flags are 'unique'. 'First' or 'unique' must follow 'final' or 'unique' and 'first' or 'middle' must precede 'final'. Otherwise, a consistency failure is detected. This mechanism allows for descriptor consistency check, so that frames described by bad descriptors are not sent to the ring.

종래의 인터페이스에서, 브리징 소프트웨어는 수신된 데이터 디스크립터를 처리하고 전송 인터페이스에 관한 리퀘스트를 처리하기 전에 전송 데이터 디스크립터를 발생시켜야만 한다.In a conventional interface, the bridging software must generate a transport data descriptor before processing the received data descriptor and processing the request for the transport interface.

본 발명의 한 특징에 따라서, 수신 인터페이스는 IDUD.Fs를 위한 프레임 DA의 바로 앞에 오는 FC 바이트(또한 IDUD.noFs를 위한 데이터 유닛 스타트를 직접 지적하는)를 지적하는 입력 데이터 유닛 디스크립터(IDUDs)를 바이트 카운트와 데이터 포인터와 F/L 플래그를 가지고 전송 인터페이스가 허용하는 동일 2개 단어 포맷(ODUSs)으로 발생시킨다. 이러한 전송 및 수신 데이터 디스크립터 포맷 호환성은 데이터나 디스크립터를 이동/수정하지 않고 디스크립터 목적에서 전송기를 단순히 지적하므로써 호스트가 프레임을 재전송하도록 허용한다. 이것은 수신된 정보를 재전송할 때 호스트 처리 오버헤드를 감소시킨다.According to one aspect of the invention, the receiving interface points to input data unit descriptors (IDUDs) indicating the FC bytes immediately preceding the frame DA for IDUD.Fs (also directly pointing to the data unit start for IDUD.noFs). Generated in the same two word format (ODUSs) allowed by the transport interface with byte counts, data pointers and F / L flags. This transmit and receive data descriptor format compatibility allows the host to retransmit frames by simply pointing to the transmitter for descriptor purposes without moving / modifying data or descriptors. This reduces host processing overhead when retransmitting received information.

FDDI 표준은 이더넷(Ethernet) 프로토콜에서의 것들과 역순으로 소스 및 데스티네이션 어드레스의 각각의 바이트내에서 비트의 유의값(significance)을 정의한다.The FDDI standard defines the significance of bits in each byte of the source and destination addresses in the reverse order of those in the Ethernet protocol.

본 발명의 한 특징에 따라, MAC 인터페이스 바이트와이드 비트 역전 다중화기는 전송 및 수신 데이터 경로 모두에 위치된다. 제어 논리부는 어드레스가 변환을 필요로 하고 어드레스 바이트가 다중화기를 통과하는 시기를 결정하며, 정상 경로와 역전 경로사이에 선택하기 위해 제어 신호를 구동한다. 이것은 FDDI 어드레스는 이더넷 어드레스로 또한 이더넷 어드레스로부터 변환하는 시간을 많이 소모하는 일로부터 브리징 소프트웨어의 짐을 덜어준다.According to one aspect of the invention, the MAC interface bytewide bit inversion multiplexer is located in both the transmit and receive data paths. The control logic determines when the address requires translation and when the address byte passes through the multiplexer, and drives the control signal to select between the normal path and the inverted path. This relieves the bridging software from the time consuming conversion of FDDI addresses to and from Ethernet addresses.

본 발명의 특징과 이점은 본 발명의 원리가 이용된 실시예를 도시한 첨부 도면과 본 발명의 이하 기술되는 상세한 설명을 참조하여 보다 잘 이해될 것이다.The features and advantages of the invention will be better understood with reference to the accompanying drawings which illustrate embodiments in which the principles of the invention have been employed and the detailed description set forth below.

도 1 은 FDDI 프레임 및 토큰 포맷의 설명도1 is an explanatory diagram of an FDDI frame and token format

도 2 는 FDDI 프로토콜에 따르기 위해서 스테이션에 필요한 콤포넌트를 도시하는 블록 다이어그램2 is a block diagram showing components required for a station to comply with the FDDI protocol.

도 3은 호스트 스테이션과 FDDI 토큰 링 사이의 통합 인터페이스를 제공하기 위하여 구성되는 요소를 도시하는 블록 다이어그램3 is a block diagram illustrating elements configured to provide an integrated interface between a host station and an FDDI token ring.

도 4 는 FDDI 기본 매체 액세스 제어 (MAC) 기능의 일 실시예의 콤포넌트를 도시하는 블록 다이어그램4 is a block diagram illustrating components of one embodiment of a FDDI Basic Media Access Control (MAC) function.

도 5 는 BMAC 링 엔진의 일 실시예를 도시하는 블록 다이어그램5 is a block diagram illustrating one embodiment of a BMAC ring engine.

도 6 는 BMAC 비동기 우선순위 선택 논리부의 일 실시예를 도시하는 블록 다이어그램6 is a block diagram illustrating one embodiment of a BMAC asynchronous priority selection logic.

도 7 는 본 발명에 따른 BMAC 시스템 인터페이스 (BSI)의 일 실시예를 도시하는 블록 다이어그램7 is a block diagram illustrating one embodiment of a BMAC system interface (BSI) in accordance with the present invention.

도 8 는 호스트 시스템 버스에 직접 연결된 BSI를 도시하는 블록다이어그램8 is a block diagram illustrating a BSI connected directly to a host system bus.

도 9 는 공유 메모리를 사용하는 BSI를 도시하는 블록 다이어그램9 is a block diagram illustrating a BSI using shared memory.

도 10 은 2개 프레임의 출력 리퀘스트를 도시하는 개략도10 is a schematic diagram illustrating output requests of two frames;

도11의a 내지 도11의e는 BSI 에 의해 인지 및/또는 발생되는 5개의 디스크립터 형태를 도시하는 개략도11A-11E are schematic diagrams showing the five descriptor forms recognized and / or generated by the BSI.

도 12 는 인디케이트 모듈의 구조를 도시하는 블록 다이어그램12 is a block diagram showing the structure of an indicator module;

도 13a는 리퀘스트 모듈의 일반적 구조를 도시하는 블록 다이어그램13A is a block diagram illustrating the general structure of a request module.

도 13b 내지 도13f는 리퀘스트 모듈의 여러 가지 콤포넌트의 구조를 도시하는 블록 다이어그램13B-13F are block diagrams illustrating the structure of various components of the request module.

도 14 는 상태 발생/스페이스 관리 모듈14 is a status generation / space management module

도 15aaa 내지 도 15dddd는 버스 인터페이스 유닛 모듈의 구조를 도시하는 블록 다이어그램15aaa to 15dddd are block diagrams showing the structure of a bus interface unit module.

도 16 은 리퀘스트 데이터 구조를 도시하는 개략도16 is a schematic diagram illustrating a request data structure.

도 17 은 인디케이트 데이터 구조를 도시하는 개략도17 is a schematic diagram illustrating an indicator data structure;

도 18 은 스페이스 데이터 구조를 도시하는 개략도18 is a schematic diagram showing a space data structure;

도 19 는 최소 메모리 레이아웃을 도시하는 개략도19 is a schematic diagram illustrating a minimum memory layout;

도 20 은 2 - 레벨 어텐션 구조를 도시하는 논리 개략도20 is a logic schematic diagram illustrating a two-level attention structure;

도 21은 제어 및 구성 레지스터 셋트의 목록을 제공하는 테이블21 provides a table providing a list of control and configuration register sets.

도 22는 PTR RAM 레지스터 셋트의 목록을 제공하는 테이블22 provides a table providing a list of PTR RAM register sets.

도 23 은 리미트 RAM 레지스터 셋트의 목록을 제공하는 테이블23 provides a table providing a list of limit RAM register sets.

도 24 는 리퀘스트 머신의 스테이트 다이어그램24 is a state diagram of the request machine.

도 25 는 BTU 스테이트 머신을 위한 스테이블 다이어그램25 is a stable diagram for a BTU state machine.

도 26 은 DBus 단일 판독을 위한 파형을 도시하는 타이밍 다이어그램26 is a timing diagram showing a waveform for DBus single read.

도27은 ABus 버스트 판독을 위한 파형을 도시하는 타이밍 다이어그램Fig. 27 is a timing diagram showing a waveform for ABus burst reading.

도 28은 ABus 단일 기록을 위한 파형을 도시하는 타이밍 다이어그램28 is a timing diagram showing a waveform for ABus single recording

도 29 는 ABus 버스트 기입을 위한 파형을 도시하는 타이밍 다이어그램29 is a timing diagram showing a waveform for ABus burst writing;

도 30a 내지 도 30cccc는 본 발명에 따른 인터페이스 시스템을 위한 핀아웃 배열을 나타내는 도면30A-30CCC illustrate a pinout arrangement for an interface system in accordance with the present invention.

본 발명은 상술한 기본 매체 액세스 제어(BMAC)기능과 FDDI 토큰링에 부착된 호스트 시스템 사이에 인터페이스를 제공하는데, 이 인터페이스는 본 명세서내에서 BMAC 시스템 인터페이스 또는 BSI로 지칭된다.The present invention provides an interface between the basic medium access control (BMAC) function described above and a host system attached to the FDDI token ring, which interface is referred to herein as a BMAC system interface or a BSI.

BSI를 기술하는데 있어서 다음의 규칙(convention)을 사용한다.The following conventions are used to describe the BSI.

바이트 및 비트 오더링 규칙Byte and bit ordering rules

1. BSI는 '작은-엔디언(little-endian)' 또는 '큰-엔디언(big-endian)' 시스템으로 작동될 수 있다. BSI에 의해 취급되는 모든 디스크립터는 연속 단어-정렬 어드레스에 있는 2 개의 32-비트 단어이다. 이것은 디스크립터가 시스템의 '엔디언-네스(endian-ness)'에 무관하게 동일한 방법으로 보여진다는 것을 뜻한다. 그러나 바이트 스트림은 달리 보여진다. 아래의 설명은 BSI가 메모리의 어드레스를 지정하는 방법을 한정한다.1. BSI can be operated as a 'little-endian' or 'big-endian' system. All descriptors handled by the BSI are two 32-bit words at consecutive word-aligned addresses. This means that the descriptors will look the same way regardless of the 'endian-ness' of the system. But the byte stream looks different. The description below defines how the BSI addresses the memory.

단어는 32 비트이다. 31번째 비트는 최상위 비트이고, 0번째 비트는 최하위 비트이다. 한 단어는 4바이트로 이루어진다. 바이트는 한 단어에서 바이트 어드레스 0으로부터 바이트 어드레스 3으로 증가하는 방식으로 번지지정된다. 작은-엔디언과 큰-엔디언은 어느 단어 비트가 어느 바이트 어드레스에 대응되는가하는 점에서 아래의 표 1에 도시된 바와 같이 서로 다르다.The word is 32 bits. The 31st bit is the most significant bit and the 0th bit is the least significant bit. One word consists of four bytes. The bytes are addressed in such a way that they increase from byte address 0 to byte address 3 in one word. The small-endian and the large-endian differ from each other as shown in Table 1 below in which word bits correspond to which byte addresses.

네트워크 데이터 바이트(즉, 디스크립터)가 아닌 모든 정보는 바이트가 아니고 단어로 간주된다. 네트워크 데이터는 링상의 상대적 시간 이동에 대해 오더되는 바이트의 스트림이다. 표 1은 작은-엔디언 및 큰-엔디언 시스템에서 시간 오더링을 도시한다. 바이트는 FDDI 링에 보내어지거나 또는 바이트 A로 시작되어 알파벳 순서로 FDDI 링으로부터 수신된다.Any information that is not a network data byte (that is, a descriptor) is considered a word, not a byte. Network data is a stream of bytes ordered for relative time shifts on the ring. Table 1 shows time ordering in small-endian and large-endian systems. The bytes are sent on the FDDI ring or received from the FDDI ring in alphabetical order starting with byte A.

표 1Table 1

2. 모든 제어 버스(CBus) 레지스터에는 한번에 8비트가 액세스된다. 레지스터는 다음의 비트-순서 규칙을 사용한다.2. All control bus (CBus) registers have 8 bits accessed at a time. The register uses the following bit-order rule.

비트7 -->MS 바이트, 낮은 바이트 어드레스 --> 비트0Bit 7-> MS byte, low byte address--> Bit 0

비트7 -->LS 바이트, 높은 바이트 어드레스 --> 비트0Bit 7-> LS byte, high byte address-> Bit 0

소 개Introduce

BSI 개요BSI Overview

도7에 블록 다이어그램 형태로 도시된 본 발명에 따른 FDDI BMAC 시스템 인터페이스(BSI; 10)는 BMAC와 호스트 시스템 사이의 인터페이스를 실현한다. 이것은 여러 가지 호스트를 위하여, 그러나, 특히 고성능 가상의 메모리 시스템을 위하여 고성능 낮은 가격의 인터페이스를 효과적으로 제공하도록 설계되었다. BSI(10)는 메인 메모리 또는 외부 공유 메모리에 접속된 시스템 버스상에서 작동할 수 있다. 아래에서 더욱 상세히 기술되었듯이, BSI(10)는 데이터와 디스크립터를 이동시키기 위하여 전송 및 수신 스테이트 머신과 다중 DMA 채널을 갖는다.The FDDI BMAC System Interface (BSI) 10 according to the present invention shown in block diagram form in FIG. 7 realizes an interface between the BMAC and the host system. It is designed to effectively provide a high performance low cost interface for various hosts, but especially for high performance virtual memory systems. The BSI 10 may operate on a system bus connected to main memory or external shared memory. As described in more detail below, the BSI 10 has multiple DMA channels with transmit and receive state machines to move data and descriptors.

BSI(10)는 캐시형(cached)/넌-캐시형, 페이지형(paged) 또는 넌-페이지형 메모리 환경의 어떠한 조합으로도 작동될 수 있다. 페이지형 환경에서 작동될 때에는 BSI(10)는 4K 바이트 페이지 사이지를 사용한다. 이러한 능력을 제공하기 위하여 모든 데이터 구조체는 페이지내에 포함되며, 버스 트랜잭션은 페이지를 결코 넘지 않는다. 이러한 추가적 능력은 넌-페이지형 환경에서는 요구되지 않는다. BSI(10)는 캐시형 환경에의 인터페이스를 용이하게 하기 위하여 정렬된 블록내에서 모든 버스 트랜잭션을 수행한다.The BSI 10 may operate in any combination of cached / non-cached, paged or non-paged memory environments. When operating in a paged environment, the BSI 10 uses 4K byte page size. To provide this capability, all data structures are contained within pages, and bus transactions never cross a page. This additional capability is not required in non-paged environments. The BSI 10 performs all bus transactions in ordered blocks to facilitate the interface to the cached environment.

BSI(10)는 2개의 버스 인터페이스, 즉, 데이터경로 버스와 제어 버스를 갖는다.The BSI 10 has two bus interfaces, a datapath bus and a control bus.

메인 데이터경로 버스는 ABus라고 지칭되는 32-비트 다중화된(multiplexed)어드레스/데이터 메모리 인터페이스이다. BSI 구조는 30-비트 실제 어드레스까지 지지하지만, 실 수행시에는 28-비트 실시 어드레스를 제공한다.The main datapath bus is a 32-bit multiplexed address / data memory interface called ABus. The BSI structure supports up to 30-bit real addresses, but provides a 28-bit implementation address in practice.

ABus는 버스트 모드 전달을 지지하여 니블-모드/스태틱 칼럼/페이지 모드 DRAMs 또는 스태틱 RAMs의 사용을 허용한다. ABus는 BSI(10)에 의해 발생된 가상 또는 실제 어드레스로 작동될 수 있다. 가상 어드레스로 작동될 때에에는, BSI(10)는 가상 어드레스를 방출하는데, 가상 어드레스는 외부 MMU(또는 보다 간단한 맵핑 논리부)에 의해 변역되고 어드레스 버스상에 구동된다. 양쪽 번지지정 모드로서도 BSI(10)는 다중-마스터(multi-master)환경에서 작동될 수 있다.ABus supports burst mode transfer to allow the use of nibble-mode / static column / page mode DRAMs or static RAMs. The ABus can be operated with a virtual or real address generated by the BSI 10. When operated with a virtual address, the BSI 10 emits a virtual address, which is translated by an external MMU (or simpler mapping logic) and driven on the address bus. Even in both addressing modes, the BSI 10 can be operated in a multi-master environment.

제어 버스는 CBus라고 지칭되는 8-비트 비 다중화된(non-multiplexed)버스이다. 이것은 단순한 비동기 스트로브 및 확인응답 (acknowledge)프로토콜을 사용한다.The control bus is an 8-bit non-multiplexed bus called CBus. This uses a simple asynchronous strobe and acknowledgment protocol.

최대 성능과 시스템 신축성을 제공하기 위하여, BSI(10)는 2개의 독립 클록을 사용하는데, 하나는 MAC 인터페이스(즉, 링)를 위한 것이고, 또 하나는 시스템/메모리 버스(즉, ABus)를 위한 것이다. BSI(10)는 이러한 2개의 타이밍 도메인 사이에서 완전히 동기화된 인터페이스를 구현하고 제공한다.To provide maximum performance and system flexibility, the BSI 10 uses two independent clocks, one for the MAC interface (i.e. ring) and one for the system / memory bus (i.e. ABus). will be. The BSI 10 implements and provides a fully synchronized interface between these two timing domains.

도8은 최고 성능을 위해서 호스트 시스템 버스에 직접 접속된 BSI(10)를 도시한다. 도9는 국부 버퍼링을 위하여 공유 메모리를 사용하는 BSI(10)를 도시한다.8 shows a BSI 10 connected directly to a host system bus for best performance. 9 shows a BSI 10 using shared memory for local buffering.

BSI(10)는 데이터 구조체 및 대부분의 통신을 위하여 외부 메모리를 사용하는 MAC 데이터 서비스에 인터페이스를 제공한다. BMAC는 플레이어(player)와 신호 프레임 경계에 의하여 제공되는 심볼 스트림과 이벤트 상태를 디코드한다. BSI(10)는 BMAC 데이터 스트림을 외부 메모리내로 맵핑(mapping)한다.The BSI 10 provides an interface to a data structure and a MAC data service that uses external memory for most communication. The BMAC decodes the symbol stream and event state provided by the player and signal frame boundaries. The BSI 10 maps the BMAC data stream into external memory.

BSI(10)는 시스템 메모리에서 네트워크로 다중 프레임(아래에 정의된 SDUs)을 전송하기 위하여 연관된 호스트로부터 리퀘스트를 수용한다. BSI(10)는 전송시에 32-비트 와이드 메모리 데이터를 언팩킹하고 이것을 한번에 한 바이트씩 BMAC로 보낸다. BSI(10)는 수신시에 BMAC으로부터 바이트 스트림을 수신하고 이것을 32-비트 단어로 팩킹하며 이것을 시스템 메모리에 기입한다. 호스트 소프트웨어와 BSI(10)는 인터럽트에 의해 동기화될 수 있는 외부 메모리 베이스 큐를 경유하여 통신한다.The BSI 10 accepts a request from an associated host to send multiple frames (SDUs, defined below) from system memory to the network. The BSI 10 unpacks 32-bit wide memory data at the time of transmission and sends it to the BMAC one byte at a time. The BSI 10 receives a byte stream from the BMAC upon receipt, packs it into 32-bit words and writes it to system memory. The host software and the BSI 10 communicate via an external memory base queue that can be synchronized by interrupts.

정의Justice

다음의 용어들이 본 발명의 상세한 설명에 사용될 것이다.The following terms will be used in the detailed description of the invention.

신호 스테이트Signal state

신호는 2개의 논리적 스테이트와 3개의 물리적 스테이트를 갖는다. 3개의 물리적 스테이트는 높은, 낮은 및 트라이-스테이트이다. 높은 스테이트는 보다 많은 양의 전압 레벨이다. 낮은 스테이트는 보다 많은 음의 전압 레벨이다. 트라이-스테이트는 출력이 높은 스테이트 또는 낮은 스테이트로 능동적으로 구동되지 않을 때에 존재한다.The signal has two logical states and three physical states. The three physical states are high, low and tri-states. High state is a higher voltage level. Lower states are more negative voltage levels. Tri-states exist when the output is not actively driven to high or low states.

참과 거짓의 2개의 논리적 상태가 있다. 혼동을 피하기 위하여, 신호의 논리적 상태를 표시하는데 '가정(assertion)'과 '부정(negation)'이라는 용어가 사용된다. 가정은 참 상태의 신호를 나타내는데 사용된다. 부정은 거짓 상태의 신호를 나타내는데 사용된다.There are two logical states of true and false. To avoid confusion, the terms 'assertion' and 'negation' are used to indicate the logical state of a signal. The hypothesis is used to represent the signal in true state. Negation is used to indicate a false signal.

양논리와 음논리가 모두 있기 때문에, 신호는 참(액티브)높음 일 수 있고 또는 참(액티브)낮은 일 수도 있다. 가정 및 부정은 신호가 액티브-높음 또는 액티브-낮음인가 하는 것과는 무관한다. 액티브-낮음 신호는 신호 명칭의 끝에 있는 언더스코어, 예로서, low_signal_에서의 언더스코어에 의해 표시된다.Since there is both positive and negative logic, the signal can be either true high or true low. Assumptions and negation are independent of whether the signal is active-high or active-low. The active-low signal is indicated by an underscore at the end of the signal name, eg, underscore in low_signal_.

'리셋'은 외부 RST 핀을 주장하거나 소프트웨어 마스터 리셋 비트를 주장한 결과로서 BSI(10)(또는 이것의 논리부)의 초기화를 지칭하는데 사용된다.'Reset' is used to refer to the initialization of the BSI 10 (or its logic) as a result of asserting an external RST pin or asserting a software master reset bit.

저장장소 할당Storage allocation

BSI(10)는 바이트-번지지정 가능 메모리에 인터페이스하지만, 정보를 항상 단어로서 전달한다. BSI(10)는 32데이터 비트와 4바이트-패리티 비트를 합한 비트수의 단어폭을 사용한다. 패리티는 무시될 수도 있다.The BSI 10 interfaces to byte-addressable memory, but always conveys information as words. The BSI 10 uses a word width of the number of bits in which 32 data bits and 4 byte-parity bits are added. Parity may be ignored.

버스 효율을 최대화하기 위해서, BSI는 항상 정보의 버스트를 전달한다. 전달은 항상 버스트-사이즈 경계에 정렬된다. BSI(10)는 제어 정보 전달을 위해서 한 단어의 버스트-사이즈를 사용하며, 데이터 전달을 위하여 1, 4 또는 8-단어 버스트에의 인터페이스를 동적으로 연속한다.To maximize bus efficiency, BSI always carries a burst of information. Delivery is always aligned with burst-size boundaries. The BSI 10 uses a burst-size of one word for control information transfer, and dynamically serializes the interface to a 1, 4 or 8-word burst for data transfer.

외부 메모리내의 인접한 저장장소 할당의 초대 '유닛'은 '페이지'이다. BSI(10)는 제어 정보 스페이스를 위해서는 1K 또는 4K 바이트(256 또는 1K 단어, 호스트-선택가능)의 페이지 사이즈를 사용하고, 데이터 스페이스를 위해서는 4K 바이트(1K 단어, 고정 사이즈)의 페이지 사이즈를 사용한다. 데이터 오브젝트(즉, SDUs/프레임)는 다수의 디스죠인트(disjoint) 또는 인접 페이지를 포함할 수 있다.The invitation 'unit' of contiguous storage allocation in external memory is the 'page'. The BSI 10 uses a page size of 1K or 4K bytes (256 or 1K words, host-selectable) for the control information space, and a page size of 4K bytes (1K words, fixed size) for the data space. do. Data objects (ie, SDUs / frames) may include multiple disjoints or adjacent pages.

어드레스 메모리에는 1-비트 페이지 넘버와 12-비트 '오프셋'을 포함하는 '포인터'가 사용된다. 이것은 28비트의 가상 실제 번지지정 능력을 제공한다. 데이터 유니티를 전달할 때에 포인터는 페이지 경계와 접할 때까지 증가되며, 경계와 접하면 새로운 페이지가 사용된다. 제어 유닛을 전송할 때에는, 포인터는 페이지 바운드까지 증가되고, 다음에는 그 페이지 시작점으로 다시 랩어라운드한다. 이러한 특수 구조체를 큐(Queue)라고 한다.The address memory uses a 'pointer' containing a 1-bit page number and a 12-bit 'offset'. This provides 28 bits of virtual real addressing capability. When passing data unity, the pointer is incremented until it meets the page boundary, and when it encounters the boundary, a new page is used. When sending the control unit, the pointer is incremented up to page bound and then wraps back to that page start point. This special structure is called a queue.

정보 제도Information system

BSI(10)와 호스트 시스템은 두 종류의 '오브젝트'를 교환하므로써 상호 작용한다.The BSI 10 and the host system interact by exchanging two kinds of 'objects'.

1. 제어 오브젝트는 BSI(10)에 의해 해석되며, 그 동작을 바꿀 수 있다.1. The control object is interpreted by the BSI 10 and can change its operation.

2. 데이터 오브젝트는 BSI(10)에 의해 해석되지 않으며, BMAC로 또는 이로부터 통과된다.2. The data object is not interpreted by the BSI 10 and passed to or from the BMAC.

제어 및 데이터 오브젝트는 외부 메모리내에서 분리된 상태로 유지된다. 각각의 오브젝트는 항상 단일 오우너(owner)를 가지며, ABus 인터페이스에 걸쳐 신뢰성있는 동기화를 가능하게 한다.Control and data objects remain separated in external memory. Each object always has a single owner and enables reliable synchronization across the ABus interface.

오브젝트는 외부 메모리내에 하나 이상의 '부분'으로 이루어질 수 있다. 오브젝트의 각각의 부분은 인접되어야만 하고 메모리 페이지내에 완전히 수용되어야만 한다.An object may consist of one or more 'parts' in external memory. Each part of an object must be contiguous and fully contained within a memory page.

'단일-부분' 오브젝트는'Single-part' objects

1. 하나의 온리 부분으로 이루어지며,1. Consists of only one part,

'다수-부분' 오브젝트는'Multi-part' objects

1. 하나의 제 1 부분과1. With one first part

2. 0이상의 중간 부분과2. the middle part of 0 or more

3. 하나의 최종 부분으로 이루어진다.3. It consists of one final part.

오브젝트 부분들은 제 1 비트(비트[31]에 있는 것)와 최종 비트(비트[30]에 있는 것)를 사용하는 2비트 태그 필드에 의해 식별된다. 결과는 아래의 TABLE Ⅱ에 도시되었다The object parts are identified by a 2-bit tag field that uses the first bit (one in bit [31]) and the last bit (one in bit [30]). The results are shown in TABLE II below.

표 2TABLE 2

제 1First 최종final 디스크립터 형태 및 사용Descriptor form and use 10011001 00110011 오브젝트내의 제 1 부분오브젝트내의 제 1 부분오브젝트내의 최종부분제 1 및 최종 부분인 온리 부분Only part that is the first and last part in the first part object in the first part object in the first part object in the object

오브젝트의 각각의 부분은 '디스크립터'에 의해 기술된다. 본 발명의 한 특징에 따라서, 디스크립터는 오브젝트를 구분하기 위해서 제 1 플래그와 최종 플래그를 수용한다. 어느 플래그 셋트도 없는 디스크립터는 '중간'이고, 두 개의 플래그 모두가 있는 디스크립터는 '온리'이다. '제 1' 또는 '온리'는 '최종' 또는 '온리' 다음에 나타나야 하고, '제 1' 또는 '중간'은 '최종'에 선행하여야 한다. 그렇지 않으면, 일관성 고장이 검출된다. 이 메카니즘은 디스크립터 일관성 첵킹을 허용하고, 따라서, 불량 디스크립터에 의해 기술된 프레임은 링에 전송되지 않는다.Each part of the object is described by a 'descriptor'. According to one aspect of the invention, the descriptor accepts a first flag and a final flag to distinguish between objects. Descriptors without any flag set are 'medium', and descriptors with both flags are 'only'. 'First' or 'only' must appear after 'final' or 'only' and 'first' or 'middle' must precede 'final'. Otherwise, a consistency failure is detected. This mechanism allows descriptor coherency checking, so that frames described by bad descriptors are not sent to the ring.

'스트림'은 논리적으로 연관된 정보의 한 방향으로의 흐름이다. 오브젝트는 스트림의 형태로 BSI(10)와 호스트 사이에서 전달된다. 각각의 종류의 오브젝트에 대해 별도의 종류의 스트림이 있다.'Stream' is a flow in one direction of logically related information. The object is passed between the BSI 10 and the host in the form of a stream. There is a separate kind of stream for each kind of object.

데이터 오브젝트 또는 제어 스트림의 한 부분을 지적하는 디스크립터는 위치 필드와 '사이즈' 필드를 포함한다. 위치는 메모리에 있어서 그 부분은 제 1 바이트의 어드레스이다. 사이즈는 메모리에 있어서 그 부분의 길이(데이터 유닛 부분에 대해서는 바이트로 표시되고, 제어 스트림 부분에 대해서는 단어로 표시된다)이다.Descriptors that point to a portion of a data object or control stream include a location field and a 'size' field. The location is in memory, the portion of which is the address of the first byte. The size is the length of the portion of the memory (in bytes for the data unit portion and in words for the control stream portion).

'메시지'는 일련의 명령 또는 상태 파라미터를 포함하는 제어 오브젝트이다. 메시지는 위치와 사이즈 필드를 갖지 않는데, 왜냐하면, 메시지는 정보를 지적하는 것이 아니고 정보를 포함하기 때문이다.A message is a control object that contains a series of commands or status parameters. The message does not have a location and size fields, because the message does not point to information but contains information.

프레임 또는 '서비스 데이터 유닛(SDU)'은 서비스 사용자와 서비스 제공자 사이의 데이터 전달의 유닛이다. BSI(10)는 BMAC와 외부 메모리 사이에서 MAC SDUs, 즉, MAC 프레임을 전달한다. 프레임은 외부 메모리에서 인접될 수 있거나, 또는 프레임은 다수의 별개의 부분을 포함할 수도 있다. 각각의 프레임 부분은 '데이터 유닛'이라고 불리운다. 각각의 데이터 유닛에 대해서는 '데이터 유닛 디스크립터(DUD)'가 있다. SDU의 어느 부분을 기술하는가에 따라서 제 1, 중간, 최종 및 온리 DUDs가 있다. 입력과 출력을 위해서 데이터 유닛과 디스크립터가 있는데, 각 종류의 부분은 입력 데이터 유닛(IDU), 출력 데이터 유닛(ODU), 입력 데이터 유닛 디스크립터(IDUD) 및 출력 데이터 유닛 디스크립터(ODUD)로 명명된다.A frame or 'service data unit (SDU)' is a unit of data transfer between a service user and a service provider. The BSI 10 carries MAC SDUs, i.e., MAC frames, between the BMAC and the external memory. The frames may be contiguous in external memory, or the frames may include a number of distinct portions. Each frame portion is called a 'data unit'. There is a 'data unit descriptor (DUD)' for each data unit. There are first, middle, last and only DUDs depending on which part of the SDU is being described. There are data units and descriptors for input and output, each type being named an input data unit (IDU), an output data unit (ODU), an input data unit descriptor (IDUD), and an output data unit descriptor (ODUD).

예로서, 도10은 2개의 프레임의 출력(링으로의 출력) 리퀘스트의 예를 도시하는데, 각각의 프레임은 2개의 부분으로 이루어진다. 이것은 다음의 구조체를 가질 것이다.As an example, Figure 10 shows an example of an output (output to ring) request of two frames, each frame consisting of two parts. This will have the following structure:

1. 2개의 ODU 디스크립터 오브젝트(각각의 프레임에 대해 1개)를 지적하는 REQ 디스크립터REQ descriptor that points to two ODU descriptor objects (one for each frame)

2. 여기서 각각의 ODU 디스크립터 오브젝트 ODUD 제 1과 ODUD 최종을 포함한다.2. Here each includes an ODU descriptor object ODUD first and ODUD final.

3. 여기서 각각의 ODUD는 ODU 부분을 지적한다.3. Each ODUD here points to an ODU part.

4. 여기서 4개의 ODU(부분)의 각각은 프레임의 부분을 포함한다.4. Here each of the four ODUs (parts) contains part of the frame.

BSI(10)에 의해 인식되고 발생되는 5개의 디스크립터 형태가 있다. 이들은 도11에 도시되고 아래에 수록되었다.There are five descriptor types that are recognized and generated by the BSI 10. These are shown in FIG. 11 and listed below.

1. DUD: 데이터 유닛 디스크립터는 데이터 유닛의 위치와 사이즈를 기술한다. ODUDs는 출력 채널상에 폐치된다. 따라서 프레임 부분이 전송을 위해 어셈블될 수 있다. IDUDs는 BSI(10)가 각각의 프레임 부분을 기입한 위치리르 기술하기 위해 입력 채널상에 발생된다.1. DUD: The data unit descriptor describes the position and size of the data unit. ODUDs are closed on the output channel. Thus, the frame portion can be assembled for transmission. IDUDs are generated on the input channel to describe where each BSI 10 has written each frame portion.

2. REQ: 리퀘스트 디스크립터는 작동 파라미터와 명령을 BSI에 전달한다.2. REQ: The request descriptor passes the operating parameters and commands to the BSI.

3. CNF: 확인 상태 메시지(디스크립터)는 리퀘스트 작동의 결과를 기술한다.3. CNF: Acknowledgment status message (descriptor) describes the result of the request operation.

4. PSP: 풀 스페이스 디스크립터는 자유 메모리 스페이스의 영역의 위치 및 사이즈를 기술한다.4. PSP: Full Space Descriptor describes the location and size of the area of free memory space.

본 발명의 한 특징에 따라서, 수신 인터페이스는 전송 인터페이스가 수용하는(ODUDs)동일한 2개 단어 포맷의 F/L 플래그와 바이트 카운트와 데이터 포인터를 가지고 IDUD.Fs(또한 IDUD.no Fs를 위한 데이터 유닛 스타트를 직접지적)를 위한 프레임 DA를 선행하는 FC 바이트를 지적하는 입력 데이터 유닛 디스크립터(IDUDs)를 발생시킨다. 이러한 전송 및 수신 데이터 디스크립터 포맷 능력은 호스트가 데이터 또는 디스크립터를 이동/수정하지 않고 단지 디스크립터 목록에서 전송기를 지적하므로써 프레임을 재전송하도록 허용한다. 이것은 수신된 정보를 재전송할 때 호스트 처리 오버헤드를 감소시킨다.According to one aspect of the invention, the receiving interface has an F / L flag of the same two word format that the transport interface accepts (ODUDs), a byte count and a data pointer, and a data unit for IDUD.Fs (also IDUD.no Fs). Generate input data unit descriptors (IDUDs) that point to the FC byte preceding the frame DA for direct start). This send and receive data descriptor format capability allows the host to retransmit frames by pointing the transmitter in the descriptor list without moving / modifying data or descriptors. This reduces host processing overhead when retransmitting received information.

SAPs 및 채널SAPs and Channels

BSI(10)는 하나 이상의 BMAC 사용자를 위해 MAC 데이터 서비스에 인터페이스를 제공한다. 즉,The BSI 10 provides an interface to a MAC data service for one or more BMAC users. In other words,

1. SMT 엔티티는 MAC 사용자이다(모든 스테이션에서).1. The SMT entity is a MAC user (at all stations).

2. LLC 엔티티는 MAC 사용자이다(엔드 스테이션에서)2. The LLC entity is a MAC user (at the end station)

3. 중계 엔티티는 MAC 사용자이다(브릿지에서).3. The relay entity is a MAC user (at the bridge).

본 발명의 한 특징에 따라서, 각각의 MAC 사용자는 하나 이상의 '서비스 액세스 점(SAPs)'을 경유하여 MAC 데이터 서비스에 액세스한다. MAC 사용자는 하나 이상의 SAPs를 사용할 수 있으나, SAP는 2개 이상의 MAC 사용자에 의해 공유되지 않는다. BSI(10)는 5개의 SAPs를 제공하는데, 2개의 리퀘스트(링으로 향한 출력)RSAPs와 3개의 인디케이트(호스트로 향한 입력) ISAPs이다. 이러한 SAPs는 다음과 같이 할당될 수 있다:In accordance with an aspect of the present invention, each MAC user accesses a MAC data service via one or more 'service access points (SAPs)'. MAC users can use more than one SAPs, but SAPs are not shared by more than one MAC user. The BSI 10 provides five SAPs, two requests (output to the ring) RSAPs and three indicators (input to the host) ISAPs. These SAPs can be assigned as follows:

1. 동기와 비동기 전송 각각에 대한 출력상의 RSAP_0과 RSAP_11. RSAP_0 and RSAP_1 on the output for synchronous and asynchronous transmission respectively

2. MAC-SMT 동기 및 비동기 전송 각각에 대한 입력상의 ISAP_0, ISAP__1, ISAP_2이다.2. ISAP_0, ISAP__1, ISAP_2 on input for MAC-SMT synchronous and asynchronous transmission respectively.

BSI(10)는 여러 가지 적용에 적절한 지지를 제공하기 위하여 SAP 할당을 위해 4개의 다른 옵션을 제공한다. 4개의 옵션은 기본적으로 동기/비동기, 하이/로우 우선순위 비동기, 내부/외부 어드레스(브릿징 적용을 위함)와 헤더/리메인더(고속 프로토콜 처리를 위함)이다.The BSI 10 provides four different options for SAP assignment to provide appropriate support for various applications. The four options are basically synchronous / asynchronous, high / low priority asynchronous, internal / external address (for bridging applications) and header / reminder (for fast protocol processing).

BSI(10)는 5개의 '채널'을 제공한다 채널은 BSI(10)와 외부 메모리 사이에 관련된 오브젝트의 전송을 제어한다. 채널은 SAPs를 실현하기 위하여 사용된다. 각각의 SAP에는 하나의 채널이 있다. 다수의 채널을 사용하면 각각의 SAP는 독립적이고 동시적인 것으로(약간의 제한이 있음) 나타난다.The BSI 10 provides five 'channels'. The channel controls the transfer of related objects between the BSI 10 and the external memory. Channels are used to realize SAPs. Each SAP has one channel. Using multiple channels, each SAP appears to be independent and concurrent (with some limitations).

각각의 채널은 한 채널내에서 관련 오브젝트의 단일 형태의 전송을 제어하는 서브채널을 경유하여 직접 메모리 액세스(DMA) 능력을 갖는다.Each channel has direct memory access (DMA) capability via a subchannel that controls the transmission of a single form of related object within one channel.

리퀘스트 채널은 4개의 서브채널을 갖는데, 출력 데이터 스트림, ODU 디스크립터 스트림, CNF 메시지 스트림 및 REQ 디스크립터 스트림이다.The request channel has four subchannels: an output data stream, an ODU descriptor stream, a CNF message stream, and a REQ descriptor stream.

인디케이트 채널은 3개의 서브채널을 갖는데, 즉, 입력 데이터 스트림, IDU 디스크립터 스트림 및 PSP 디스크립터 스트림이다.The indicator channel has three subchannels, that is, an input data stream, an IDU descriptor stream, and a PSP descriptor stream.

어텐션/통보Attention / Notification

BSI(10)는 폴드 또는 인터럽트-구동 환경에서 작동할 수 있다. 인터럽트 스킴은 호스트에 주어진 인터럽트 수를 최소화하도록 설계된다. BSI(10)는 이벤트 레지스터내에 적절한 이벤트 어텐션 비트를 셋팅하므로써 '어텐션'이라고 불리우는 인터럽트를 발생시킨다. 호스트는 이 어텐션으로 하여금 대응 '통보' 비트를 셋팅시키므로써 인터럽트를 발생할수 있게한다(즉, 마스크를 디스에이블하게 한다).The BSI 10 may operate in a fold or interrupt-driven environment. Interrupt schemes are designed to minimize the number of interrupts given to the host. The BSI 10 generates an interrupt called 'attention' by setting the appropriate event attention bit in the event register. The host enables this attention to generate an interrupt (i.e. disable the mask) by setting the corresponding 'Notify' bit.

셋트 및 리셋시에 어떤 어텐션 비트는 신호이다. BSI(10)는 호스트에게 어텐션 신호를 보내기 위해 비트를 셋팅한다. 호스트는 BSI(10)에게 완료/인지 신호를 보내기 우해 비트를 리셋한다. 이것은 BSI(10)로 하여금 어떤 처리 작용(예로서, 메일박스 판독)을 취하도록 할 수도 있다.At set bits and resets, some attention bit is a signal. The BSI 10 sets a bit to send an attention signal to the host. The host resets the bit to signal completion / acknowledgement to the BSI 10. This may cause the BSI 10 to take some processing action (eg, mailbox reading).

상세한 설명details

도7을 다시 참조하면, BSI(10)는 일반적으로 다음의 5개의 모듈을 포함하는데, 즉, 인디케이트(수신) 모듈(12), 리퀘스트(전송) 모듈(14), 상태 발생/스페이스 관리 모듈(16), 버스 인터페이스 유닛 모듈(18) 및 제어 버스(CBus) 인터페이스 모듈(20)이다. 인디케이트와 리퀘스트 모듈(12, 14)은 독립적이며 파이프라인된 머신이다. 각각의 파이프라인은 BMAC 인터페이스, 데이터 FIFO(12A, 14A), 버스트 FIFO(12B, 14B) 및 스테이트 머신(12C, 14C)을 포함한다.Referring back to FIG. 7, the BSI 10 generally includes the following five modules: an indicator (receive) module 12, a request (transmit) module 14, a state generation / space management module. 16, the bus interface unit module 18 and the control bus (CBus) interface module 20. The indicator and request modules 12, 14 are independent and pipelined machines. Each pipeline includes a BMAC interface, data FIFOs 12A, 14A, burst FIFOs 12B, 14B, and state machines 12C, 14C.

각각의 데이터 FIFO(12A, 14A)는 64바이트 깊이이고 16단어로 배열되며, 각각의 단어는 42비트 와이드이다. 인디케이트 데이터 FIFO(12A)내에서 한 단어는 32 데이터 비트, 4패리티 비트(바이트당 1개), 단어가 그 위에서 시스템 메모리로 변환되는 수신 채널(ISAP)과 단어의 '형태'(즉, 언코미티드(uncomitted), 코미탈(commital), 상태)를 식별하는 4비트 태그와, 2개의 사용되지 않는 비트를 포함하며, 리퀘스트 데이터 FIFO(14A)내에서는 한 단어는 32데이터 비트, 4패리티 비트와 6비트 태그(아래에 기술됨)를 포함한다. 데이터 FIFO(12A, 14A)는 버스 대기를 수용하도록 설계된다.Each data FIFO 12A, 14A is 64 bytes deep and is arranged in 16 words, each word being 42 bits wide. Within the indicator data FIFO 12A, one word is 32 data bits, four parity bits (one per byte), the receive channel (ISAP) where the word is converted into system memory, and the 'shape' of the word (ie A 4-bit tag that identifies uncomitted, committed, and state, and two unused bits. Within the request data FIFO 14A, one word is 32 data bits, 4 parity bits. And 6-bit tags (described below). Data FIFOs 12A and 14A are designed to accommodate bus waits.

본 발명의 한 특징에 따라서, EOF에서 MAC 인터페이스는 한 최종 단어를 프레임 상태로서 태그하며 상태 단어를 인디케이트 데이터 FIFO(12A)내에 데이터 뒤에 놓는다. 시스템 인터페이스는 상태 처리 전에 데이터를 판독하고 EOF 상태 디스크립터를 기입한다. EOF 상태 디스립터는 EOF 상태를 식별하고 EOF 인디케이터(indicater)(즉, 오류, 복사)를 포함하며 중단점(아래에 기술됨)을 설정한다. 데이터/상태 동기화는 자동적이며 MAC 인터페이스와 시스템 인터페이스 사이의 다른 통신은 필요하지 않다. 이것은 복잡한 데이터/상태 동기화 없이도 어떠한 수의 프레임이 인디케이트 데이터 FIFO(12A)내에 들어갈 수 있도록 허용한다. 이것은 또한 많은 작은 프레임 수신시에 안전한 FIFO 사용을 허용하므로써 긴 버스 대기 시간으로 인한 드롭 프레임의 가능성을 감소시킨다. 이것은 또한 인디케이트 데이터 FIFO(12A)가 어떠한 깊이로도 될 수 있다는 점에서 설계 신축성을 허용한다.According to one aspect of the invention, in EOF, the MAC interface tags one final word as the frame state and places the state word after the data in the indicator data FIFO 12A. The system interface reads the data and writes the EOF status descriptor before processing the status. The EOF status descriptor identifies the EOF status, includes an EOF indicator (ie error, copy) and sets a breakpoint (described below). Data / state synchronization is automatic and no other communication between the MAC interface and the system interface is required. This allows any number of frames to fit within the indicator data FIFO 12A without complex data / state synchronization. This also reduces the possibility of drop frames due to long bus latency by allowing secure FIFO use when receiving many small frames. This also allows design flexibility in that the indicator data FIFO 12A can be at any depth.

인디케이트 데이터 FIFO(12A)는 원하지 않는 데이터를 제거하도록 자체의 기입 포인터를 리셋할 수 있다.The indicator data FIFO 12A can reset its write pointer to remove unwanted data.

각각의 버스트 FIFO(12B, 14B)는 완전한 버스 버스트를 유지해야만 하며 32 비트의 16개의 단어로 배열된다. 버스트가 최대 8개의 단어이기 때문에, 버스트 FIFO(12B, 14B)는 하나의 버스트를 각각 유지하는 2개의 뱅크(0.1)를 제공하도록 '핑 - 퐁(ping-pong)' 방식으로 사용된다. 기술된 바와같이, BIU 모듈(18)은 완전한 버스트를 한 뱅크로 판독 또는 기입한다. 인디케이트 스테이트 머신(12C)또는 리퀘스트 스테이트 머신(14C)은 뱅크로부터 적절한 수의 바이트를 판독한다.Each burst FIFO 12B, 14B must maintain a complete bus burst and is arranged in 16 words of 32 bits. Because bursts are a maximum of eight words, burst FIFOs 12B and 14B are used in a 'ping-pong' manner to provide two banks of 0.1 each holding one burst. As described, BIU module 18 reads or writes the complete burst into one bank. The indicator state machine 12C or the request state machine 14C reads the appropriate number of bytes from the bank.

즉, 본 발명의 한 특징에 따라서, 또한 아래에 더욱 상세히 기술되었듯이, 데이터 포인터 및 카우트는 필요한 데이터의 페칭 및 저장시에 수행하기 위하여 가장 효율적인 버스 트랜잭션을 계산하는데 사용된다. 버스트가 길수록 더욱 효과적이지만, '충분한'바이트가 요구될 때에만 효과적이다. 포인터와 카운터를 각각의 버스 트랜잭션으로 업데이트하므로써, 가장 효과적인 트랜잭션이 동적으로 계산된다. 따라서, 가능한 최소 버스트 사이클이 필요한 데이터를 전송하는데 사용되며, 시스템 인터페이스의 버스 대역폭 요구사항을 최소화시킨다.That is, according to one aspect of the present invention, as also described in more detail below, data pointers and counts are used to calculate the most efficient bus transaction to perform upon fetching and storing the necessary data. Longer bursts are more effective, but only when 'sufficient' bytes are required. By updating the pointer and counter with each bus transaction, the most efficient transaction is calculated dynamically. Thus, the smallest burst cycle possible is used to transmit the necessary data, minimizing the bus bandwidth requirements of the system interface.

예로서, 프레임을 메모리로 최종 기입시에 버스트의 5개의 바이트만이 유효할 수 있다. 이 경우에 인디케이트 머신(12C)은 뱅크로 5개의 유효 바이트만을 기입하지만, BIU 모듈(18)은 완전한 뱅크를 기입한다. 이것은 상술한 바와 같이 수신되 모든 프레임이 버스트-사이즈 경계에 정렬되기 때문에 허용가능하며, 기입된 DUD는 프레임내에 유효 바이트의 실제 수의 카운트를 포함할 것이다.For example, only five bytes of burst may be valid at the time of last writing a frame to memory. In this case, indicator machine 12C writes only five significant bytes into the bank, while BIU module 18 writes the complete bank. This is acceptable because all frames received as described above are aligned on a burst-size boundary, and the written DUD will contain a count of the actual number of valid bytes in the frame.

버스트 FIFO(12B, 14B)는 또한 링 클록에 다른 하위 레벨 논리 연산과 시스템 버스 클록에 따른 BIU 논리 연산 사이의 비동기적 경계로서 사용된다.Burst FIFOs 12B and 14B are also used as an asynchronous boundary between other low-level logic operations on the ring clock and BIU logic operations according to the system bus clock.

스테이트 머신(12C, 14C)은 아래에서 더욱 상세히 기술된 것이다.State machines 12C and 14C are described in more detail below.

상태 발생/스페이스 관리 모듈(16)은 리퀘스트와 인디케이트 파이프라인 사이에서 공유된다.The status generation / space management module 16 is shared between the request and the indicator pipeline.

BIU(18)는 모든 ABus 트래픽을 처리하며 CBus 인터페이스(20)는 이벤트/어텐션 제어에 액세스한다.BIU 18 handles all ABus traffic and CBus interface 20 accesses event / attention control.

BIU 인터페이스(18)는 모든 데이터경로 정보를 BSI(10)로 또 그로부터 전달하는데 사용되는 32비트 메모리 버스 포트이다. 이것은 데이터, 디스크립터 및 상태를 포함한다. 버스는 32 비트 다중화된 어드레스와 데이터를 사용하며 최대 대역폭에 버스트 전달 능력을 제공한다.BIU interface 18 is a 32-bit memory bus port used to pass all datapath information to and from BSI 10. This includes data, descriptors, and states. The bus uses 32-bit multiplexed addresses and data and provides burst transfer capability at full bandwidth.

호스트는 BSI 내부 레지스터에 액세스하고 어텐션/통보 논리부를 관리하기 위하여 CBus(20)를 사용한다.The host uses the CBus 20 to access BSI internal registers and manage the attention / notification logic.

인디케이트 모듈(12)의 더욱 상세한 설명은 도12에 제공되었다.A more detailed description of the indicator module 12 is provided in FIG.

리퀘스트 모듈(14)의 더욱 상세한 설명은 도 13A 내지 도 13F에 제공되었다.Further details of request module 14 are provided in FIGS. 13A-13F.

상태 발생/스페이스 관리 모듈(16)의 더욱 상세한 설명은 도14에 제공되었다.A more detailed description of the status generation / space management module 16 is provided in FIG.

버스 인터페이스 유닛 모듈(18)의 더욱 상세한 설명은 도15에 제공되었다.A more detailed description of the bus interface unit module 18 is provided in FIG.

본 발명의 상세한 설명의 나머지 부분에 있어서 이 모듈들을 적절히 참조할 것이다.The remainder of the detailed description of the invention will appropriately refer to these modules.

데이터 구조체Data structure

BSI(10)는 소프트웨어 구동기를 경유하여 어떠한 상위 레벨 인터페이스에도 쉽게 맵핑될 수 있는 단순한 데이터 구조체를 사용한다. 본 발명의 한 특징에 다르고 또한 아래에 더욱 상세히 설명되었듯이, 데이터 유닛 구조체는 입력과 출력에서 기본적으로 대칭이다.The BSI 10 uses a simple data structure that can be easily mapped to any higher level interface via a software driver. As differs from one feature of the invention and described in further detail below, the data unit structure is basically symmetrical in input and output.

BSI(10)는 메모리를 고정 사이즈 페이지로 분할한다. 이것은 가상 메모리 환경을 위해 이상적 지지를 제공하며, DMA 관리(포인터)를 위해 사용되는 논리부의 양을 감소시킨다.The BSI 10 divides the memory into fixed size pages. This provides ideal support for the virtual memory environment and reduces the amount of logic used for DMA management (pointer).

데이터 유형Data type

BSI(10)는 데이터 유닛, 데이터 유닛 디스크립터(DUDs), 리퀘스트 디스크립터(REQs), 확인 메시지(CNFs) 및 풀 스페이스 디스크립터(PSPs)를 다룬다. 상술한 바와 같이, 디스크립터는 다수-부분의 오브젝트일 수도 있는데, 각각의 부분은 제 1 - 최종 태그에 의해 식별된다.The BSI 10 handles data units, data unit descriptors (DUDs), request descriptors (REQs), acknowledgment messages (CNFs), and full space descriptors (PSPs). As mentioned above, the descriptor may be a multi-part object, with each part identified by the first-last tag.

IDU.ODU(입력/출력 데이터 유닛)IDU.ODU (Input / Output Data Unit)

IDU/ODU는 서비스 데이터 유닛(SDU)의 전부 또는 일부를 형성하는 인접 바이트의 그룹이다. 각각의 IDU/ODU는 한 페이지 전부 또는 일부일 수도 있으나, 항상 페이지 내에 들어 맞는다. 입력 및 출력에 대한 데이터 유닛이 있는데, 즉, 각각의 IDUs와 ODUs이다. (리퀘스트 ) ODU는 호스트에 의해 한정된 메모리 구역내에 저장된다. BSI는 풀 스페이스 디스크립터(PSPs)에 의해 구분되는 메모리 구역내에(인디케이드) IDU를 기입한다. 각각의 ISAP는 자체 PSPs 큐로부터 요구되는 때에 PSPs를 페치한다.An IDU / ODU is a group of contiguous bytes that form all or part of a service data unit (SDU). Each IDU / ODU may be all or part of a page, but always fits within the page. There are data units for input and output, i.e. IDUs and ODUs, respectively. (Request) ODUs are stored in a memory area defined by the host. The BSI writes IDUs within (indicated) memory regions separated by full space descriptors (PSPs). Each ISAP fetches PSPs as required from its own PSPs queue.

DUDs(데이터 유닛 디스크립터)Data Unit Descriptors (DUDs)

DUDs(IDU/ODU 디스크립터)는 IDU 또는 ODU를 기술하는 2-단어 엔티티이다, 이것들은 위치 및 사이즈 필드이다. 위치 필드는 페이지 수와 페이지내의 오프셋을 포함한다. 사이즈 필드는 데이터 유닛내에 바이트 수를 한정한다. 페이지는 SAP상에 하나 이상의 데이터 유닛(프레임 사이즈에 의존한다)을 포함할 수도 있다. DUDs는 메모리(1 또는 4K 바이트 경계내에 정렬된)내의 어디에도 위치된 상태 큐, 1 또는 4K 바이트 큐로 기입된다. 입력 및 출력 DUDs가 있는데, 즉, IDUDs와 ODUDs이며, 그 포맷은 도 11의b 와 도11의c 에 각각 도시되었다.DUDs (IDU / ODU Descriptors) are two-word entities that describe IDUs or ODUs, which are location and size fields. The location field contains the number of pages and the offset within the page. The size field limits the number of bytes in the data unit. The page may include one or more data units (depending on the frame size) on the SAP. DUDs are written to status queues, 1 or 4K byte queues, located anywhere in memory (aligned within a 1 or 4K byte boundary). There are input and output DUDs, i.e. IDUDs and ODUDs, the formats of which are shown in Figs. 11B and 11C, respectively.

IDUD는 또한 이것들이 기술하는 프레임을 위해 상태를 포함한다. 멀티-파트 IDUD에 있어서 IDUD 최종 디스크립터는 프레임을 위해 유효 최종 상태를 포함한다. IDUD는 인디케이트 상태 큐에 기입된다.The IDUD also contains states for the frames they describe. For multi-part IDUD, the IDUD final descriptor contains a valid final state for the frame. The IDUD is written to the indication status queue.

REQ(REQ 디스크립터)REQ (REQ descriptor)

REQ 디스크립터는 ODUD 오브젝트 스트림의 일부분을 지적하는 2-단어 엔티티이다. 이것들은 위치와 사이즈 필드도 포함한다. 위치 필드는 ODUD 스트림의 일부의 스타트 어드레스(정렬된 단어)를 지적한다. 카운트 필드는 ODUD 스트림 부분(즉, 최종 비트 셋트를 가진 ODUD 디스크립터)에 의해 나타내어지는 프레임 수를 정의한다. REQ는 1 또는 4K 바이트 큐로부터 페치된다. 리퀘스트 디스크립터 포맷은 도11의 d에 도시되었다.The REQ descriptor is a two-word entity that points to a part of the ODUD object stream. These include the location and size fields. The location field indicates the start address (aligned word) of the portion of the ODUD stream. The count field defines the number of frames represented by the ODUD stream portion (ie, the ODUD descriptor with the last bit set). REQ is fetched from the 1 or 4K byte queue. The request descriptor format is shown in d of FIG.

CNF(확인 상태 메시지)CNF (Confirm Status Message)

CNF는 리퀘스트 상태 큐에 저장된 2-단어 확인 상태 디스크립터이다. 인디케이트에 있어서 IDUD는 디스크립터와 상태 메시지의 조합이다. 확인 디스크립터 포맷은 도11의e에 도시되었다.CNF is a two-word acknowledgment status descriptor stored in the request status queue. In indication, IDUD is a combination of descriptor and status message. The confirmation descriptor format is shown in FIG.

PSP(풀 스페이스 디스크립터)Full Space Descriptor (PSP)

PSP는 인디케이트 데이터 기입에 사용 가능한 자유-스페이스 영역을 위한 2 단어 디스크립터이다. 이것은 위치 및 암시적인 사이즈를 포함한다. 고정 4K 바이트 데이터 페이지 사이즈가 있기 때문에, PSP는 4K 바이트까지의 암시적 카운트를 가진다. 위치 필드는 페이지 수와 오프셋을 포함한다. 통상적으로 오프셋은 0(하위 (버스트) 비트는 0이어야만 한다)이 될 것이며, 스페이스 관리는 단지 전체 정렬된 4K 메모리 페이지만 취급한다. PSP는 1 또는 4K 바이트 큐로부터 페치된다. PSP 디스크립터 포맷은 도 11의a 에 도시되었다.PSP is a two word descriptor for the free-space area available for writing indicator data. This includes location and implicit size. Since there is a fixed 4K byte data page size, the PSP has an implicit count of up to 4K bytes. The location field contains the number of pages and the offset. Typically the offset will be 0 (lower (burst) bit must be 0), and space management only handles the entire sorted 4K memory page. The PSP is fetched from a 1 or 4K byte queue. The PSP descriptor format is shown in FIG. 11A.

리퀘스트Request

도12를 참조하면, 리퀘스트 SAPs(RSAPs)는 출력 SDU를 한정하기 위하여 3개 - 레벨 구조를 사용한다.Referring to Figure 12, request SAPs (RSAPs) use a three-level structure to define the output SDU.

각각의 SDU는 ODU 디스크립터(ODUD) 오브젝트에 의해 기술된다. 각각의 ODUD는 한 메모리 페이지내에 완전히 들어가는 ODU를 구분한다. 다수의 ODUD 오브젝트(다수의 SDU)는 단일 REQ 디스크립터 부분에 의해 기술되도록 인접되게 그룹될 수 있다. 다수의 REQ 디스크립터(부분)는 호스트 소프트웨어에 의해 한 리퀘스트 디스크립터 오브젝트로서 그룹될 수도 있다. 각각의 REQ 부분은 RSAP 채널의 Req?_req_ptr 서브채널을 사용하여 REQ 큐로부터 BSI(10)에 의해 페치된다. 각각의 RSAP는 RSAP당, 서비스 기회당, 즉, 최종 태그 비트 셋트를 가지는 REQ 디스크립터까지 하나의 리퀘스트 디스크립터 오브젝트를 처리한다.Each SDU is described by an ODU Descriptor (ODUD) object. Each ODUD identifies an ODU that fits entirely within a memory page. Multiple ODUD objects (multiple SDUs) can be grouped adjacently to be described by a single REQ descriptor part. Multiple REQ descriptors (parts) may be grouped as one request descriptor object by the host software. Each REQ portion is fetched by the BSI 10 from the REQ queue using the Req? _Req_ptr subchannel of the RSAP channel. Each RSAP processes one request descriptor object per RSAP, per service opportunity, that is, up to a REQ descriptor with a final set of tag bits.

리퀘스트 상태(확인)는 리퀘스트 오브젝트당 단일 확인 오브젝트로서 발생된다. 각각의 확인 오브젝트는 하나 이상의 CNF 메시지를 포함한다. 각각의 RSAP는 CNF가 기입되는 1 또는 4K 바이트 확인 상태 큐를 갖는다.Request status (confirmation) is generated as a single confirm object per request object. Each acknowledgment object contains one or more CNF messages. Each RSAP has a 1 or 4K byte acknowledge status queue in which the CNF is written.

인디케이트 구조체Indicator structure

도17를 참조하면, 인디케이트 SAP(ISAP)는 2레벨 구조체(RSAP 구조체와 호환 가능한)를 발생시킨다.Referring to Figure 17, the indicator SAP (ISAP) generates a two-level structure (compatible with the RSAP structure).

각각의 SDU는 현재의 IDU 페이지내에 저장된다. 만약 SDU가 완전히 페이지내에 맞으면, IDUD. 온리 디스크립터는 SDU를 구분하기 위해 기입된다. 만약 한 페이지를 넘으면 멀티-파트 IDU 디스크립터 오프젝트가 기입된다. 중간 상태는 각각의 IDUD내에 기입되며, 상태 이벤트가 발생되면 정의 상태가 최종 IDUD내에 기입되고 어텐션이 발생된다. 상태 이벤트는 호스트-정의된다.Each SDU is stored in the current IDU page. If the SDU fits completely within the page, IDUD. Only descriptors are written to identify SDUs. If more than one page is written, the multi-part IDU descriptor object is written. The intermediate state is written into each IDUD, and when a state event occurs, the defined state is written into the final IDUD and an attention is generated. Status events are host-defined.

3개의 ISAP는 자체의 상태 및 데이터 PSP 큐를 각기 갖는다. 큐는 모두 1K 또는 4K 바이트일 수 있다. 각각의 큐는 메모리내의 어떤 곳에도 위치될 수 있다(1K 또는 4K 바이트 경계에 정렬됨). 각각의 ISAP는 자체 PSP큐로부터 얻어진 자체 메모리 페이지내에 데이터를 기입한다.The three ISAPs each have their own status and data PSP queues. The queues can all be 1K or 4K bytes. Each queue can be located anywhere in memory (aligned to a 1K or 4K byte boundary). Each ISAP writes data into its own memory page obtained from its own PSP queue.

풀 스페이스 구조체Full-space structure

도18은 ISAP PSP 큐의 구조체를 도시한다. 큐는 ISAP상에 유입 데이터를 기입하기 위한 사용가능 스페이스 풀을 기술한다. 큐는 1K 또는 4K 바이트이다. PSP당 8바이트이므로 큐는 128 또는 512 PSP(ISAP당 최대 0.5 내지 2M 바이트의 자유 스페이스)를 유지한다.18 shows the structure of an ISAP PSP queue. The queue describes a pool of available space for writing incoming data on the ISAP. The queue is 1K or 4K bytes. Since it is 8 bytes per PSP, the queue maintains 128 or 512 PSPs (up to 0.5 to 2 M bytes of free space per ISAP).

제어 메모리 할당Control memory allocation

BSI(10)는 큐 사이즈 경계에 정렬되는 한 메모리내의 어떠한 곳에도 각각의 큐가 있도록 허용한다. 상술하 바와 같이, 호스트는 큐 사이즈를 위해 2개의 선택, 즉 1K 또는 4K를 갖는다. 모드 레지스터 비트는 모든 큐 사이즈를 선택된 값에 셋팅한다. 전체 10개의 큐가 있다. 제어 메모리의 최소량을 사용하기 위해서, 1K 큐 사이즈가 선택되며, 1K 바이트 상태, REQ 및 PSP 큐는 페이지(10K 소모)로 그룹된다. 다른 스페이스는 ODUD에 필요하다.The BSI 10 allows each queue to be anywhere in memory as long as it is aligned with the queue size boundary. As mentioned above, the host has two choices for queue size, namely 1K or 4K. The mode register bit sets all cue sizes to the selected value. There are a total of 10 queues. In order to use the minimum amount of control memory, a 1K queue size is selected and the 1K byte state, REQ and PSP queues are grouped into pages (10K consumption). Other spaces are needed for ODUD.

도19는 최소 시스템을 위한 제어 메모리 요구사항이 2개의 4K 페이지내에 일치되는 방법을 도시한다. 이 경우에, 단지 2개의 ISAP, 즉, ISAP_0과 ISAP_1이 사용된다. BSI(10)는 내부/외부 소팅 모드에 놓여지며, 외부 어드레스 지정은 사용되지 않는다. 이것은 ISAP_0은 MAC-SMT 프레임을 복사하고 ISAP1은 그외 모든 것을 복사하는 것을 뜻한다.Figure 19 shows how the control memory requirements for the minimum system are matched in two 4K pages. In this case, only two ISAPs are used, namely ISAP_0 and ISAP_1. The BSI 10 is placed in an internal / external sorting mode, and external addressing is not used. This means that ISAP_0 copies MAC-SMT frames and ISAP1 copies everything else.

BMAC 지원BMAC support

오류 및 예외Errors and exceptions

'예외'는 상태를 발생시키거나 처리를 수정하거나 특수 호스트 중재를 필요로 하지 않는 복구 가능한 이상 상태이다. 반면에, '오류'는 복구 불가능한 이상 상태로서, 그 상태에서는 BSI(10)는 상태를 발생시킬 것으로 보장되지 않으며, 따라서, 오류는 특수 호스트 처리를 필요로 한다. 예로서 오류는 상태 기입시의 ABus 트랜잭션 오류이다.An 'exception' is a recoverable anomaly that does not cause a condition, modify its processing, or require special host intervention. On the other hand, an 'error' is an unrecoverable anomaly, in which case the BSI 10 is not guaranteed to generate a state, and therefore the error requires special host processing. An example error is an ABus transaction error when writing a state.

리퀘스트Request

상술한 바와 같이, BSI(10)는 2개의 리퀘스트 SAP를 제공하는데, RSAP_0과 RSAP_1 및 높은 우선순위와 낮은 우선순위이다. 대표적으로, 높은 우선순위는 동기적 트래픽에 사용되고 낮은우선순위는 비동기적 트래픽에 사용되지만, BSI(10)내의 어떤 것도 이 관계를 구속하지는 않는다. 그러나, RSAP_0은 한 서비스 기회내에 RSAP_1 다음에는 서비스되지 않는다.As mentioned above, the BSI 10 provides two requests SAP, RSAP_0 and RSAP_1 and high priority and low priority. Typically, high priority is used for synchronous traffic and low priority is used for asynchronous traffic, but nothing in the BSI 10 constrains this relationship. However, RSAP_0 is not serviced after RSAP_1 within one service opportunity.

각각의 RSAP 는 대체로 동일 기능을 갖는다. 각각의 서비스 기회에 RSAP당 단지 하나의(멀티 - 파트) 리퀘스트 오브젝트가 서비스된다. 그러나, 리퀘스트 오브젝트는 다수의 서비스 기회를 포함한다. 물론, 이 기능은 표준 용도를 충족시켜야만 한다. 예로서, THT가 디스에이블(동기적 트래픽)되면, 리퀘스트는 한 서비스 기회만을 포함해야 하며, 그렇지 않으면 리퀘스트는 동기적 대역폭 할당의 초과로 인해 오류가 된다.Each RSAP generally has the same function. Only one (multi-part) request object is served per RSAP for each service opportunity. However, the request object includes a number of service opportunities. Of course, this function must meet standard usage. For example, if THT is disabled (synchronous traffic), the request should contain only one service opportunity, otherwise the request will be errored due to exceeding synchronous bandwidth allocation.

프리스테이징, 스테이징 및 선취Prestage, staging and preemption

리퀘스트 스테이트 머신(14C;도7)은 프리스테이징(prestaging), 스테이징(staging) 및 선취(preemption)를 다룬다. 현재의 프레임이 일단 전송을 수행해 왔고, 그 끝 바이트가 FIFO에 있을 때 RSAP가 다음 프레임에 대한 데이터를 리퀘스트 버스트 FIFO(14B) 내로 페치하는 것을 시작할 때가 '스테이징'이다.Request state machine 14C (FIG. 7) handles prestaging, staging and preemption. It is 'staging' when RSAP begins fetching data for the next frame into the request burst FIFO 14B once the current frame has been performing transmission and its end byte is in the FIFO.

'프리스테이징'은 토큰이 도착되기 전에 다음 프레임이 스테이지되었을 때이다. 즉시 리퀘스트/해제 등급(즉, 토큰이 존재하지 않음)이 있는 리퀘스트에는, 프리스테이징은 적용되지 않는다.Prestaging is when the next frame is staged before the token arrives. Prestage does not apply to requests that have an immediate request / release level (i.e. no tokens exist).

'선취'는 보다 높은 우선순위의 RSAP가 이미 FIFO내에 있는 보다 낮은 우선순위의 RSAP의(넌-커미티드)프레임을 선취할 때이다(BSI는 RSAP_0이 선택적으로 RSAP를 중단시키도록 허용한다). 이것이 갖는 효과는 BSI-MAC가 토큰을 방출하게 하는 것이며 다음에는 서비스 기회 사이에서 우선순위를 재정리하는 것이다.Preemption is when a higher priority RSAP preempts a (non-committed) frame of a lower priority RSAP that is already in the FIFO (BSI allows RSAP_0 to selectively suspend RSAP). The effect of this is to cause the BSI-MAC to release tokens and then reorder the priorities among the service opportunities.

본 발명의 한 특징에 따라서, BSI(10)는 선취 가능 채널상에 전송된 각각의 프레임을 위해 제 1 ODUD의 어드레스를 비워둔다. 중단이 발생되면, BSI(10)는 보다 높은 우선순위 리퀘스트를 서비스하기 위해 리퀘스트 채널을 스위치한다. 보다 높은 우선순위 리퀘스트가 완료되면, BSI(10)는 다시 스위치되고 비축되었던 디스크립터 어드레스에 리퀘스트 처리를 복귀시킨다.In accordance with one aspect of the present invention, the BSI 10 leaves the address of the first ODUD blank for each frame transmitted on the preemption channel. If an outage occurs, the BSI 10 switches the request channel to service higher priority requests. When the higher priority request is completed, the BSI 10 returns the request processing to the descriptor address that was switched back and stored.

BSI(10)는 항상 SDU를 스테이지한다. 프리스테이징은 RSAP_1을 위한 사용자-프로그램가능 옵션이며, 항상 RSAP_0만을 위해서 인에이블된다.The BSI 10 always stages an SDU. Prestage is a user-programmable option for RSAP_1 and is always enabled for RSAP_0 only.

BSI(10)는 스타트 스테이트(통상적으로 서비스 기회의 사이에 있음)내에서 능동 리퀘스트의 우선순위를 선정한다. 능동 RSAP_0 리퀘스트는 항상 제일 먼저 서비스 받을 것이며, 통상적으로 RSAP_0은 서비스 기회 동안에 제일 먼저 서비스 받을 것이며 다음에는 RSAP_1이 서비스 받는다. 선취가 가능하게되고 리퀘스트가 (프리)스테이지 되면, RSAP_1은 선취될 수 있다. 이것은 RSAP_0이 능동으로 되면 발생될 것이다. 이미 리퀘스트 FIFO내에 있는 인코미티드 RSSP_1 SDU는 제거되고 RSAP_0을 서비스한 후에 재 페치된다. 프레임은 한번 전송되며, FIFO 임계치에 도달되고, 또는 프레임의 끝은 FIFO내에 있고 BMAC는 전송할 준비가 된다.The BSI 10 prioritizes active requests within the start state (usually between service opportunities). Active RSAP_0 requests will always be serviced first, typically RSAP_0 will be serviced first during service opportunities and then RSAP_1. Once preemption is enabled and the request is (free) staged, RSAP_1 can be preempted. This will occur when RSAP_0 becomes active. Incorporated RSSP_1 SDUs already in the request FIFO are removed and refetched after servicing RSAP_0. The frame is transmitted once, the FIFO threshold is reached, or the end of the frame is in the FIFO and the BMAC is ready to transmit.

확인Confirm

확인에는 3가지 대안이 있는데, 즉, 비확인, 전송기 확인 또는 완전 확인이다.There are three alternatives to acknowledgment: nonconfirmation, transmitter acknowledgment or complete acknowledgment.

확인이 필요할 때에는, BSI(10)는 통상적으로 리퀘스트 오브젝트의 끝에서 확인 상태만을 기입한다. 리퀘스트가 다수의 서비스 기회를 포함하면, 멀티-파트 확인 상태 오브젝트가 기입될 수 있고, 매 서비스 기회에 한 부분식 서비스된다. 전송기 확인을 위해서는, 리퀘스트 스테이트 머신(14C)은 SDU가 정확하게 전송되었다는 것을 확인한다. 완전 확인을 위해서, 리퀘스트 머신(14 C)은 SDU가 정확하게 전송되었고, '정확하게' 확인된 SDU 수는 전송된 SDU 수와 같다는 것을 증명한다. '정확하게' 프레임은 대체로 매칭 FC, 국부 소스 어드레스(SA 투명이 선택되지 않았을 때), 매칭 예상 E, A 및 C 인디케이터, 유효 데이터 길이 및 유효 FCS를 가진 프레임이다.When confirmation is needed, the BSI 10 typically only writes the confirmation status at the end of the request object. If the request includes multiple service opportunities, a multi-part acknowledgment state object may be written and one partial service for every service opportunity. For transmitter verification, the request state machine 14C confirms that the SDU was sent correctly. For complete verification, the request machine 14 C verifies that the SDUs were sent correctly, and that the 'correctly' confirmed SDU number is equal to the transmitted SDU number. An 'exactly' frame is generally a frame with a matching FC, local source address (when SA transparency is not selected), matching expected E, A and C indicators, valid data length and valid FCS.

인디케이트Indicator

BSI(10)는 3개의 인디케이트 SAP를 제공하는데, 즉, ISAP_0, ISAP_1 및 ISAP_2이며, 모두 동일 우선순위를 갖는다. 본 발명의 한 특징에 따라서, 유입 데이터는 여러개의 인디케이트 구성 비트에 따라 3개의 ISAP 상에 소팅된다. 소팅 논리부에 관한 보다 세부 사항은 아래에 설명된 서비스 인터페이스에 주어졌다. 주요 소팅 모드를 결정하는 2개의 비트가 있는데, 이것은 Sort_Mode(1:0)이다. 아래의 표 3은 이러한 2개의 비트의 효과를 보여준다.The BSI 10 provides three indicator SAPs, namely ISAP_0, ISAP_1 and ISAP_2, all of which have the same priority. According to one feature of the invention, incoming data is sorted on three ISAPs according to several indicator configuration bits. Further details regarding the sorting logic are given in the service interface described below. There are two bits that determine the main sorting mode, which is Sort_Mode (1: 0). Table 3 below shows the effect of these two bits.

표3Table 3

SM1.SM0SM1.SM0 ISAP_2ISAP_2 ISAP_1ISAP_1 ISAP_0ISAP_0 0001101100011011 비동기외부정보L-비동기Asynchronous external information L-asynchronous 동기내부헤더Hip-비동기Synchronous Internal Header Hip-Asynchronous MAC-SMTMAC-SMTMAC-SMTMAC-SMTMAC-SMTMAC-SMTMAC-SMTMAC-SMT

ISAP_0은 항상 SMT와 MAC SDU를 수신한다. 다른 2개의 SAP는 BSI(10)소트 모드에 따라 SDU를 수신한다.ISAP_0 always receives SMT and MAC SDU. The other two SAPs receive SDUs according to the BSI 10 sort mode.

모드 0에서 ISAP_1은 동기적 프레임을 수신하고 ISAP_2는 비동기적 프레임을 수신한다. 이 모드는 동기적 트래픽을 지지하는 엔드 스테이션에서의 사용을 위한 것이다.In mode 0, ISAP_1 receives synchronous frames and ISAP_2 receives asynchronous frames. This mode is for use in end stations that support synchronous traffic.

모드 1에서, ISAP_1은 내부 어드레스(MAC 내의)에 매칭되는 프레임을 수신하고, ISAP_2는 외부 어드레스(EA 입력이 주장될 때)에 매칭되는 프레임을 수신한다. 이 모드는 외부 어드레스 매칭 회로를 가지고 ECLP/EA/EM 핀을 사용하는 브릿지 또는 링 모니터를 위한 것이다.In mode 1, ISAP_1 receives a frame that matches an internal address (in MAC), and ISAP_2 receives a frame that matches an external address (when an EA input is asserted). This mode is for bridge or ring monitors with external address matching circuits and using ECLP / EA / EM pins.

본 발명의 한 특징에 따라서, 프레임내에서 선행 바이트와 후속 바이트의 분리가 발생될 수 있는 하나 이상의 점이 모드 2에서 결정된다. 이 메카니즘은 카운터일 수도 있으며, 또는, 이것은 외부 스티뮬리 또는 정보 스트림내의 데이터 값에 응답하는 스테이트 머신을 합체할 수도 있다. 분리점에서, 연속 정보 바이트는 시스템 메모리내의 별도 메모리 구역에 복사된다. 버퍼 관리 스킴(scheme)은 각각의 메모리 구역에 별도의 관리를 제공한다. 상태는 호스트에 의해 보다 쉬운 처리와 관리를 위해 그룹핑되도록 한 조합 메모리 구역에 기입될 수 있다.According to one aspect of the invention, one or more points at which separation of preceding and subsequent bytes within a frame may occur is determined in mode 2. This mechanism may be a counter, or it may incorporate a state machine that responds to data values in an external stream or information stream. At the break point, the consecutive information bytes are copied to a separate memory area in system memory. The buffer management scheme provides separate management for each memory area. Status can be written to a combination memory area that is grouped by the host for easier processing and management.

따라서, 모드 2에서, ISAP_1과 ISAP_2는 복사될 모든 넌-MAC/SMT 프레임을 수신하지만, 그 사이에서는 헤더와 정보(나머지) 부분을 분리한다. ISAP_1은 호스트가 정의한 '헤더 길이'에 도달될 때가지 초기 바이트를 복사한다. 프레임 바이트의 나머지는 ISAP_2상에 복사된다. 단지 한 IDUD 스트림만 발생되지만(ISAP_1상에), PSP 큐는 둘 다 IDU가 기입될 위치를 결정하는데 사용된다. 이 모드는 고성능 프로토콜 처리 적용을 위한 것이다.Thus, in mode 2, ISAP_1 and ISAP_2 receive all non-MAC / SMT frames to be copied, but separate the header and information (rest) in between. ISAP_1 copies the initial byte until the host-defined 'header length' is reached. The rest of the frame bytes are copied onto ISAP_2. Only one IDUD stream is generated (on ISAP_1), but both PSP queues are used to determine where the IDU will be written. This mode is for high performance protocol processing applications.

모드 3은 높은 우선순위 비동기 프레임을 ISAP_1상에 소트하고, 낮은 우선순위 비동기 프레임을 ISAP_2상에 소트한다. 3-비트 우선순위 필드의 최상위 비트는 높은/낮은 우선순위를 결정한다.Mode 3 sorts the high priority asynchronous frames on ISAP_1 and the low priority asynchronous frames on ISAP_2. The most significant bit of the 3-bit priority field determines the high / low priority.

ISAP는 메모리 페이지를 분리하기 위하여 인디케이트 데이터를 각기 기입하며, 자체 PSP 큐를 각기 갖는다. 이것은 3개의 오더 링을 포함하여 다양한 풀 스페이스 관리 스킴을 허용한다. 각각의 ISAP는 자체 상태 큐내에 상태(ISUD)를 기입한다.ISAP writes indicator data separately to separate memory pages and has its own PSP queue. This allows for a variety of full space management schemes, including three orderings. Each ISAP writes a state (ISUD) in its own state queue.

외부 메모리 인터페이스(ABus)External memory interface (ABus)

BSI(10)는 다중화 어드레스와 데이터 버스(ABus)를 사용한다. 이것은 32 비트 와이드 데이터 전송을 수행하며 28 비트 어드레스를 제공한다.The BSI 10 uses a multiplexed address and a data bus ABus. This performs a 32 bit wide data transfer and provides a 28 bit address.

BSI(10)는 2개의 ABus 모드중의 하나에서 작동하는데, 이것은 가상 또는 실제 번지지정이다. 가상 번지 지정에서는 외부 메모리 관리 유닛(MMU)이 BSI(10)를 위해 어드레스 번역(translation)을 제공한다. BSI는 상위 4개의 어드레스 비트상에 채널 정보를 출력시키며, 더욱 정교한 외부 번지지정 스킴이 지지될 수 있다. 예로써, 제어 정보는 한 메모리에 저장되고 데이터 정보는 다른 메모리(즉, 외부 FIFO)에 저장될 수 있다. BSI(10)는 또한 한 버스트 동안에 3개의 비 다중화된(demultiplexed) 어드레스 비트를 출력시킨다. 이것은 버스내의 어느 단어가 액세스되는 지를 나타낸다.The BSI 10 operates in one of two ABus modes, which is a virtual or real addressing. In virtual addressing, an external memory management unit (MMU) provides address translation for the BSI 10. The BSI outputs channel information on the top four address bits, and a more sophisticated external addressing scheme can be supported. By way of example, control information may be stored in one memory and data information may be stored in another memory (ie, an external FIFO). The BSI 10 also outputs three demultiplexed address bits during one burst. This indicates which words in the bus are accessed.

ABus를 경유하여 액세스된 외부 메모리는 정적이거나 동적일 수 있다. DRAM을 효과적으로 지지하기 위하여, BSI(10)는 버스트 모드 전달을 사용하며, 한 버스트에 4 또는 8개의 단어(16 또는 32 바이트 버스트에 해당함)를 전송한다. 실제 DRAM 어드레스 다중화, 리프레시 등은 외부 DRAM 제어기, 예를들면, 내쇼널 세미콘덕터 코포레이션으로부터 사용가능한 DP9420 DRAM 제어기에 의해 처리되어야만 한다.External memory accessed via ABus can be static or dynamic. To effectively support DRAM, the BSI 10 uses burst mode transfer and transmits 4 or 8 words (corresponding to 16 or 32 byte bursts) in one burst. Actual DRAM address multiplexing, refreshing, and the like must be handled by an external DRAM controller, such as the DP9420 DRAM controller available from National Semiconductor Corporation.

BSI(10)는 중재를 위해 단순한 버스-리퀘스트/버스 그랜트(grant) 신호 쌍을 중재를 위해 사용하기 때문에 멀티-마스터 환경에서 작동한다.The BSI 10 operates in a multi-master environment because it uses a simple bus-request / bus grant signal pair for arbitration for arbitration.

버스는 여러 가지 형태의 트랜잭션을 지지한다. 단순한 판독과 기입은 단일 어드레스 및 데이터 전달을 포함한다. 버스트 판독과 기입은 다수의 데이터 전달이 후속하는 단일 어드레스 전송을 포함한다. BSI(10)는 버스트 트랜잭션 동안에 증가하는 어드레스 비트를 제공한다. 버스트는 항상 모듈로 16/32 바이트 어드레스 경계에 정렬된 16 또는 32 바이트이다. 또한, 버스트내의 어드레스를 위한 암시적 랩-어라운드(wrap-around)를 수행하는 시스템내에 공존하기 위해서 BSI(10)는 랩(wrap)할 버스트를 결코 방출하지 않는다.The bus supports several types of transactions. Simple read and write involves single address and data transfer. Burst reads and writes include a single address transfer followed by multiple data transfers. The BSI 10 provides address bits that increase during the burst transaction. The burst is always 16 or 32 bytes aligned to the modulo 16/32 byte address boundary. In addition, the BSI 10 never emits a burst to wrap in order to coexist in a system that performs an implicit wrap-around for an address in the burst.

기본적 번지지정 가능 양은 바이트이며, 예로서, 리퀘스트 데이터는 메모리내에 임의적으로 정렬될 수 있다. 그러나, 모든 정보는 32 비트 단어로 액세스되며, BSI(10)는 판독시에 사용되지 않은 바이트를 무시한다. BSI(10)는 항상 단어의 모든 바이트를 기입하며, 따라서, 모든 인디케이트 데이터를 정렬시킨다. 버스트 판독/기입 데이터는 정렬된 모듈로 버스트-사이즈이어야만 한다. 데이터 판독/기입시에, 단일 단어, 16 바이트 및 32 바이트 버스트 트랜잭션이 최대 효율을 위하여 요구될 때 사용된다.The default addressable amount is bytes, for example, the request data can be arbitrarily aligned in memory. However, all the information is accessed in 32 bit words, and the BSI 10 ignores unused bytes at the time of reading. The BSI 10 always writes every byte of a word, thus aligning all indicator data. Burst read / write data must be burst-sized in ordered modules. In data read / write, single word, 16 byte and 32 byte burst transactions are used when required for maximum efficiency.

패리티Parity

BSI(10)는 패리티에 2개의 옵션을 제공하는데, 하나는 패리티를 사용하는 시스템을 위한 것이고, 다른 하나는 패리티를 사용하지 않는 시스템을 위한 것이다. 패리티가 사용될 때, 이것은 메인 데이터경로상에서 플로우-스루(flow-through)모드로 작동된다. 모든 패리티 인터페이스는 홀수 패리티를 사용하며 자체 어텐션을 갖는다.The BSI 10 provides two options for parity, one for systems that use parity and the other for systems that do not use parity. When parity is used, it operates in flow-through mode on the main datapath. All parity interfaces use odd parity and have their own attention.

BSI(10)는 3개의 출력 버스 각각에 항상 패리티를 발생시키는데, 이것은 ABus 인터페이스, CBus 인터페이스 및 BMAC 인터페이스이다.The BSI 10 always generates parity on each of the three output buses, which are the ABus interface, the CBus interface and the BMAC interface.

(플로우-스루)패리티가 인에이블 상태이면, BSI(10)는 ABus 인터페이스에서 데이터상에 패리티를 체크하거나 또는 발생시키지 않는다. 대신에, 이것은 ABus와 BMAC 인터페이스 사이에 흐른다. 어드레스가 BSI(10)내에 저장되어 있을 대에 패리티는 어드레스상에 발생되기 때문에 BSI(10)는 방출된 어드레스상에 패리티를 발생시키지 않는다. CBus와 BMAC 데이터버스 패리티는 체크되고 발생된다.If (flow-through) parity is enabled, the BSI 10 does not check or generate parity on the data at the ABus interface. Instead, it flows between the ABus and BMAC interfaces. Since parity is generated on the address when the address is stored in the BSI 10, the BSI 10 does not generate parity on the released address. CBus and BMAC databus parity are checked and generated.

패리티 체킹이 가능하지 않으면, BSI(10)는 ABus, CBus 또는 MAC 인터페이스로부터 정보상에서 패리티를 체크하지 못한다.If parity checking is not possible, the BSI 10 fails to check parity on information from the ABus, CBus or MAC interface.

큐 관리Queue management

BSI는 10개의 큐를 사용하는데, 6개는 인디케이트(ISAP당 2개씩)상에 4개는 리퀘스트(RSA당 2개씩)상에 사용한다. 각각의 ISAP는 상태와 PSP 큐를 갖는다. 각각의 RSAP는 CNF 및 REQ 큐를 갖는다.The BSI uses 10 queues, six on indicators (two per ISAP) and four on requests (two per RSA). Each ISAP has a status and a PSP queue. Each RSAP has a CNF and REQ queue.

상술한 바와 같이, 호스트는 모든 큐가 1K 또는 4K 바이트가 되게 프로그램한다. BSI(10)는 큐의 리미트를 유지하는 레지스터에 비교되는 큐내에 다음 자유 엔트리에 포인터를 유지하므로써 모든 큐를 관리한다. 큐 포인터는 각각의 판독/기입 후에 증가된다. 포인터가 상위 큐 바운드(페이지 끝)에 도달하면 포인터는 하위 바운드(페이지 시작)로 다시 랩한다. 큐 리미트 레지스터 1 디스크립터(8 바이트)의 유닛내의 오프셋 값으로서 큐의 리미트를 유지한다.As mentioned above, the host programs all queues to be 1K or 4K bytes. The BSI 10 manages all queues by keeping a pointer to the next free entry in the queue compared to a register holding the limit of the queue. The queue pointer is incremented after each read / write. When the pointer reaches the upper queue bound (end of page), the pointer wraps back to the lower bound (start of page). Holds the limit of the queue as the offset value in the unit of the queue limit register 1 descriptor (8 bytes).

데이터 스페이스 플로우 제어가 보다 정확하지만, 호스트는 데이터 또는 상태 스페이스를 한정하므로써 ISAP상에 플로우 제어를 제공한다.Although data space flow control is more accurate, the host provides flow control over ISAP by limiting the data or state space.

상태 큐Status queue

BSI(10)는 상태 큐에 2-단어 디스크립터(메시지)를 저장한다. 리미트 레지스터는 상태가 기입될 페널티미트(penultimate)(끝의 바로 전) 위치를 한정한다. 각각의 단어는 큐 포인터 레지스터내에서 어드레스에 기입되는데, 그 레지스터는 후에 증가된다. BSI(10)가 호스트-정의된 리미트 전에 큐 엔트리에 기입할 때 이것은 'No_status_space' 어텐션을 발생시킨다. BSI(10)는 파이프라이닝(pipelining)에 기인하여 2개의 디스크립터까지 기입한다. 보다 완전한 세부사항은 아래에 언급된 서비스 인터페이스에 주어졌다. 상태 스페이스가 없을 때, RSAP는 더 이상의 리퀘스트를 처리하지 않고, ISAP는 더 이상의 프레임을 복사하지 않는다.The BSI 10 stores a two-word descriptor (message) in a status queue. The limit register defines the position of the penultimate (just before the end) at which state is to be written. Each word is written to an address in the queue pointer register, which is later incremented. This causes the 'No_status_space' attention when the BSI 10 writes to the queue entry before the host-defined limit. The BSI 10 writes up to two descriptors due to pipelining. More complete details are given in the service interface mentioned below. When there is no state space, RSAP does not process any further requests, and ISAP does not copy any more frames.

데이터 스페이스 큐Data space queue

BSI(10)는 PSP 큐로부터 2-단어 PSP 디스크립터를 적재한다. 리미트 레지스터는 호스트에 의해 기입된 최종 유효 PSP를 한정한다. 각각의 ISAP는 자체 PSP 큐를 작동시키는 DMA 서브채널을 갖는다. PSP는 PSP 포인터에 의해 참조된 위치로부터 페치되며, 포인터는 후에 증가된다. PSP가 큐의 리미트(리미트 레지스터에서 한정된 바와 같음)로부터 (프리)페치된다면, 'Low_Data_Space' 어텐션이 그 ISAP에 대해 발생된다. 이것은 PSP 프리페치될 때에 어텐션이 발생될 때 큐가 하나의 PSP만을 갖지 않는다면 큐내에서 끝에서 두 번재의 PSP상에 발생될 것이다. 호스트는 큐의 테일(tail)에 보다 많은 PSP를 추가하고 리미트 레지스터를 업데이트할 것이다. 호스트가 충분한 PSP 엔트리를 유지하는 한 ISAP가 계속 복사하도록 적절한 스페이스가 사용가능한 것이다.The BSI 10 loads a two-word PSP descriptor from the PSP queue. The limit register defines the last valid PSP written by the host. Each ISAP has a DMA subchannel running its own PSP queue. The PSP is fetched from the location referenced by the PSP pointer, which is later incremented. If the PSP is (pre) fetched from the limit of the queue (as defined in the limit register), a 'Low_Data_Space' attention is generated for that ISAP. This will occur on the second PSP at the end in the queue if the queue does not have only one PSP when an attention occurs when PSP is prefetched. The host will add more PSPs to the tail of the queue and update the limit registers. As long as the host maintains enough PSP entries, adequate space is available for ISAP to continue copying.

리퀘스트 작동Request operation

BSI(10)는 REQ 큐로부터 REQ 디스크립터를 적재한다. 리미트 레지스터(아래에 기술됨)는 호스트에 의해 기입되는 최종 유효 REQ를 정의한다. 전송을 위해서는, 공통 서비스 형태, 프레임 제어 및 예상-상태를 갖는 모든 SDU가 하나의 리퀘스트 오브젝트에 함께 모인다. 호스트는 Req?_cfg(request configuration)레지스터를 프로그램하고, REQ 디스크립터를 REQ 큐에 추가한 다음에 큐의 리미트 레지스터를 업데이트한다.The BSI 10 loads a REQ descriptor from the REQ queue. The limit register (described below) defines the last valid REQ written by the host. For transmission, all SDUs with a common service type, frame control, and expected-state are gathered together in one request object. The host programs the Req? _Cfg (request configuration) register, adds the REQ descriptor to the REQ queue, and then updates the limit register of the queue.

REQ 큐 포인터가 큐의 리미트에 도달하지 않고, RQSTOP 비트가 State-attn 레지스트에 리셋되며 RSAP의 상태 큐내에 스페이스가 있는 한 BSI(10)는 REQ 디스크립터를 판독할 것이다. 각각의 REQ 디스크립터는 여러개의 SDU를 위해 프레임 제어 및 서비스 등급을 한정하며, 이것은 위치 및 사이즈 필드를 포함한다. BSI(10)는 사이즈 필드를 내부 프레임 카운터내에 적재하고 위치를 ODUD 포인터 레지스터내에 적재한다. 전체 리퀘스트 오브젝트가 처리될 때까지(즉, 온리 또는 최종 디스크립터가 검출된다) BSI는 REQ 디스크립터를 계속 처리할 것이다(필요하면 다수의 서비스 기호에 걸쳐서 처리한다).As long as the REQ queue pointer does not reach the limit of the queue, the RQSTOP bit is reset to the State-attn register and there is space in the RSAP's state queue, the BSI 10 will read the REQ descriptor. Each REQ descriptor defines a frame control and class of service for several SDUs, which includes a location and a size field. The BSI 10 loads the size field into the internal frame counter and the position into the ODUD pointer register. The BSI will continue to process the REQ descriptor (processing across multiple service symbols if necessary) until the entire request object has been processed (ie, only or final descriptor is detected).

BSI(10)는 리퀘스트 오브젝트를 처리하며, 리퀘스트 상태 큐를 위해 사용되는 현재의 페이지에 확인 상태를 둔다. Req? sts_ptr 레지스터는 현재 페이지 수와 오프셋을 상태 큐내에 유지한다.The BSI 10 processes the request object and puts a confirmation state on the current page used for the request status queue. Req? The sts_ptr register maintains the current page count and offset in the status queue.

2개의 RSAP는 4개의 DMA 서브채널을 각기 가지며, 각각의 서브채널은 여러 가지 데이터 유형, 즉, 0=ODU, 1=ODU, 2=CNF 및 3=REQ를 전송한다.Two RSAPs each have four DMA subchannels, each of which carries several data types: 0 = ODU, 1 = ODU, 2 = CNF and 3 = REQ.

인디케이트 작동Indicator operation

ISAP가 데이터 및 상태 스페이스를 가질 때, ISAP는 유입 프레임을 IDU의 시리즈(메모리 페이지에 하나씩)로 기입한다. IDU가 한 페이지내에 완전히 들어가도록 제한되고, 따라서, 멀티-파트 IDU 오브젝트는 단일 프레임에 대해 기입될 필요가 있을 수도 있다(최악의 경우에는 4K 데이터 페이지 사이즈에서 최대 길이 프레임에 대해 3개의 IDU까지 될 수도 있음). 각각의 IDU는 어떠한 메모리 페이지에도 저장될 수 있다. 각각의 IDU에 대하여, ISAP는 상태, 사이즈(바이트 카운트) 및 위치를 포함하는 IDUD를 기입한다. IDUD는 인디케이트 상태 큐내의 연속 위치에 기입된다. 각각의 ISAP는 자체 상태 큐를 갖는다.When ISAP has data and state spaces, ISAP writes incoming frames into a series of IDUs, one per memory page. The IDU is constrained to fit entirely within one page, so a multi-part IDU object may need to be written for a single frame (worst case, up to three IDUs for the maximum length frame at 4K data page size). May be used). Each IDU can be stored in any memory page. For each IDU, the ISAP writes an IDUD containing the status, size (byte count) and location. The IDUD is written to consecutive positions in the indication status queue. Each ISAP has its own status queue.

각각의 프레임을 현재-정의돈 버스트-사이즈 메모리 블록(16 또는 32 바이트)의 스타트에 정렬된다. 제 1 단어는 DA, SA 및 INFO 필드가 다음 단어의 제 1 바이트에 정렬된 상태로 기입된 제 1 단어의 모든 바이트내에 복사된 FC만 포함한다.Each frame is aligned to the start of a currently-defined burst-size memory block (16 or 32 bytes). The first word contains only the FC copied into all the bytes of the first word written with the DA, SA and INFO fields aligned to the first byte of the next word.

BSI(10)는 PSP 큐로부터 판독한 PSPs에 따라 프레임 IDU를 메모리 페이지내에 저장한다. 각각의 ISAP는 필요에 따라 자체 PSP 큐로부터 페이즈를 취한다. 이것은 프레임이 임의적 순서로 처리될 수 있게 하는데, 그 이유는, 스페이스가 BSI에 의해 사용되던 순서와 다른 순서로 PSP 큐에 복귀될 수 있기 때문이다. 각각의 PSP는 ISA의 Ind?_idu_ptr 래지스터내로 적재된다. 페이지 수와 오프셋 모두는 PSP로부터 적재된다. 통상적으로 호스트는 오프셋 필드를 0으로 만들고, 따라서, 4K 바이트 페이지 전체를 통과한다.The BSI 10 stores the frame IDU in a memory page according to the PSPs read from the PSP queue. Each ISAP takes a phase from its own PSP cue as needed. This allows the frames to be processed in random order because the space can be returned to the PSP queue in a different order than the space used by the BSI. Each PSP is loaded into the Ind? _Idu_ptr register of the ISA. Both page count and offset are loaded from the PSP. Typically the host makes the offset field zero, thus traversing the entire 4K byte page.

각각의 프레임이 수신되면, BSI(10)는 IDU를 각기 구분하는 일련의 IDUDs를 기입하며, 상태 중단점에서 다음 IDUD 상태 필드내에 중단점 비트를 셋팅한다. 프레임은 다수의 페이지의 일부를 잠정적으로 점유할 수 있기 때문에, BSI(10)는 제 1, 중간, 및 최종 IDUD를 기입한다. 프레임이 페이지 경계를 넘을 때, BSI(10)는 IDID.제 1을 기입한다. 또 다른 페이지가 넘어가면 IDUD.중간이 기입될 것이다. 프레임 ??에서, IDUD.최종이 기입된다. BSI(10)는 상태 큐를 위한 호스트-정의된 리미트까지 IDUD를 기입한다. 별도의 IDUD/상태 큐는 각각의 ISAP를 위해 유지된다.When each frame is received, the BSI 10 writes a series of IDUDs that distinguish each IDU, and sets a breakpoint bit in the next IDUD status field at the status breakpoint. Since the frame may potentially occupy a portion of the plurality of pages, the BSI 10 writes first, intermediate, and final IDUD. When the frame crosses the page boundary, the BSI 10 writes IDID.first. If another page turns, IDUD.middle will be filled. In the frame ??, the IDUD. Final is written. The BSI 10 writes the IDUD up to the host-defined limit for the status queue. Separate IDUD / status queues are maintained for each ISAP.

본 발명의 한 특징에 따라서, BSI(10)는 유입 프레임을 그룹핑하고 그룹 또는 버스트 경계에 어텐션을 발생시키는 능력을 제공한다. 이것은 호스트 어텐션(인터럽트)의 수를 현저히 감소시키고 호스트 오버헤드를 감소시킨다.In accordance with one aspect of the present invention, the BSI 10 provides the ability to group incoming frames and generate attention at group or burst boundaries. This significantly reduces the number of host attentions (interrupts) and reduces host overhead.

유입 프레임을 버스트로 그룹핑하기 위해서, BSI(10)는 상태 중단점을 정의한다. 중단점은 관련 데이터의 버스트의 끝을 식별한다. 어텐션 상태는 상태 중단점을 위해 BSI에 의해 발생될 수 있다. 상태 중단점은 SA 체인지, 토큰, SA 변경, DA 변경, MAC 정보 변경, 오류, SA copied_frame_counter 임계값을 포함한다.To group incoming frames into bursts, the BSI 10 defines a state breakpoint. Breakpoints identify the end of a burst of related data. Attention conditions may be generated by the BSI for state breakpoints. Status breakpoints include SA change, token, SA change, DA change, MAC information change, error, and SA copied_frame_counter threshold.

각각의 ISAP는 3개의 DMA 서브채널을 갖는다. 서브채널 0은 IDU를 위해 사용되고, 서브채널 1은 IDUD를 위해, 서브채널 2는 PSP를 위해 사용된다. 인디케이트 명령/구성은 호스트에 의해 직접 인디케이트 구성 레지스터에 기입된다(Ind_mode 및 Ind_cfg).Each ISAP has three DMA subchannels. Subchannel 0 is used for IDU, subchannel 1 is used for IDUD, and subchannel 2 is used for PSP. The indication command / configuration is written to the indication configuration register directly by the host (Ind_mode and Ind_cfg).

레지스터 셋트Register set

상술한 바와 같이, BSI(10)는 2개의 액세스 포트를 갖는데, 이것은, ABus 인터페이스와 CBus 인터페이스이다. CBus 인터페이스는 언제라도 대부분의 레지스터에 호스트 비동기 액세스를 허용한다. ABus 인터페이스는 큐와 메일 박스를 포함하여 메모리-베이스 제어 구조에 액세스하기 위하여 BSI(10)에 의해 사용된다.As mentioned above, the BSI 10 has two access ports, which are the ABus interface and the CBus interface. The CBus interface allows host asynchronous access to most registers at any time. The ABus interface is used by the BSI 10 to access memory-based control structures, including queues and mailboxes.

BSI(10)는 3개의 레지스터 셋트를 갖는다. 제 1 셋트는 제어 및 구성 레지스터를 포함하여 CBus 인터페이스를 경유하여 호스트에 의하여 직접 액세스된다. 제 2 셋트는 메모리 어드레스를 CBus 인터페이스를 경유하여 BSI(10)에 보내고 또한 BSI로 하여금 메모리 어드레스(메일박스)와 포인터 위치 사이에서 데이터를 전달하게 하므로써 액세스되어야만 하는 포인터를 포함한다. 제 3 셋트는 큐 리미트 레지스터를 포함한다. 큐 리미트 레지스터는 어드레스(또한 기입을 이한 데이터)를 CBus 레지스터내에 위치시킨 다음에, BSI(10)로 하여금 자동 작동으로서 데이터 전달을 수행하게 하므로써 액세스된다.The BSI 10 has three register sets. The first set is directly accessed by the host via the CBus interface, including the control and configuration registers. The second set includes a pointer that must be accessed by sending a memory address to the BSI 10 via the CBus interface and also causing the BSI to transfer data between the memory address (mailbox) and the pointer location. The third set includes a queue limit register. The queue limit register is accessed by placing an address (also write data) in the CBus register and then causing the BSI 10 to perform data transfer as an automatic operation.

프로그래밍 인터페이스Programming interface

개요summary

다음의 내용은 BSI(10)에 대한 프로그래머의 견해를 기술한다. 어떤 레지스터가 있으며, 이 레지스터가 무엇을 수행하는지 그리고 레지스터를 어떤방법으로 액세스하는지를 기술한다. 즉, 모든 레지스터에 대한 기능적 명세서가 기술되었다. 이러한 레지스터를 사용하여 BSI(10)를 실제로 작동시키는 방법에 대한 더욱 상세한 정보는 후에 설명되는 서비스 인터페이스에서 제공된다.The following describes the programmer's view of the BSI 10. Describe what registers are, what they do, and how they are accessed. That is, the functional specification for all registers has been described. More detailed information on how to actually operate the BSI 10 using these registers is provided in the service interface described later.

프로그래밍 인터페이스의 개요를 먼저 설명한 다음에 상세한 명세서를 설명한다.An overview of the programming interface is described first, followed by a detailed description.

기본 구조체Basic structure

BSI(10)는 프로그래머에게는 3개의 레지스터 셋트와 하나의 메일박스와 어텐션/통보 메카니즘으로 나타난다. 상술한 바와 같이, 제 1( 및 주)레지스터 셋트(CBus 레지스터)는 CBus 인터페이스를 경유하여 액세스되는 제어 및 구성 레지스터를 포함하고, 제 2 레지스터 셋트(PTR 레지스터)는 외부 메모리-베이스메일박스를 경유하여 간접적으로 호스트-액세스되는 포인트(BSI에 의해 조정됨)를 포함하며, 제 3 레지스터 셋트(리미트 레지스터)는 CBus 인터페이스를 경유하여 액세스되는 큐 리미트를 포함한다. 3개의 레지스터 셋트 모두는 호스트-판독 및 기입이 가능하다. 다른 BSI-내부 작동 레지스터가 있으나 이것들은 주사 변경을 경유하여서만 액세스가능하다.The BSI 10 presents the programmer with three register sets, one mailbox, and an attention / notification mechanism. As described above, the first (and main) register set (CBus register) includes control and configuration registers accessed via the CBus interface, and the second register set (PTR register) is via an external memory-base mailbox. And indirectly host-accessed points (adjusted by the BSI), and the third register set (limit registers) includes queue limits accessed via the CBus interface. All three register sets are host-readable and writable. There are other BSI-internal operation registers but these are only accessible via scan changes.

초기화에서, 구성 레지스터와, 몇 개의 포인터 레지스터와 큐 리미트가 적재되어야만 한다.In initialization, a configuration register, some pointer registers, and a queue limit must be loaded.

구성 레지스터의 초기화는 인디케이트 스테이트 머신(12C), 리퀘스트 스테이트 머신(14C) 및 상태/스페이스 머신(도14 참조)에 대한 작동조건을 설정한다. 초기 포인터 레지스터 값은 데이터 구조체 위치를 정의한다. 초기 큐 리미트는 상태 큐의 경계를 정의한다.Initialization of the configuration register sets the operating conditions for the indicator state machine 12C, the request state machine 14C, and the state / space machine (see FIG. 14). The initial pointer register value defines the data structure location. The initial queue limit defines the boundary of the status queue.

전역 제어Global control

상술한 바와 같이, 호스트는 CBus레지스터를 경유하여 BSI(10)를 제어한다. 이 셋트에서 가장 중요한 레지스터는 Master_attn 및 Master_notify와, State attn 및 State_notify, Service_attn 및 Service_notify와, 모드 레지스터이다.As described above, the host controls the BSI 10 via the CBus register. The most important registers in this set are Master_attn and Master_notify, State attn and State_notify, Service_attn and Service_notify, and Mode registers.

Master_attn 및 Master_notify는 상위 레벨 어텐션 레지스터이며 모든 하위 레벨 어텐션 및 통보 레지스터에 관한 그룹핑된 정보를 제공한다. 하위 레벨 레지스터내의 비트는 호스트-BSI 메일박스 트래픽과, 큐 리미트 업데이트와, 포인터 레지서터 업데이트와, 내부 스테이트 머신 레포팅을 동기화한다.Master_attn and Master_notify are high level attention registers and provide grouped information about all low level attention and notification registers. The bits in the lower level registers synchronize host-BSI mailbox traffic, queue limit updates, pointer register updates, and internal state machine reporting.

State_attn 및 State_notify는 각각의 BSI 스테이트 머신을 위하여 오류 어텐션과 RUN/STOP 비트를 포함한다.State_attn and State_notify contain an error attention and RUN / STOP bits for each BSI state machine.

Service-attn 및 Service_notify는 포인터 또는 리미트 레지스터 서비스를 리퀘스트하기 위하여 사용된다.Service-attn and Service_notify are used to request a pointer or limit register service.

모드 레지스터는 주요 작동 파라미터를 설정하며 통상적으로 파워-온에서 또는 소프트웨어 마스터 리셋 이후에만 프로그램된다.The mode register sets the main operating parameters and is typically programmed only at power-on or after a software master reset.

레지스터 액세스Register access

3개의 레지스터 셋트는 각각의 고유한 방법으로 액세스된다. CBus 레지스터 셋트는 액세스에 CBus 인터페이스를 사용하고 다른 2개의 셋트는 호스트와 BSI(10) 사이의 전송을 동기화하는데에 Service_attn 레지스터를 사용한다.Three sets of registers are accessed in each unique way. The CBus register set uses the CBus interface for access and the other two sets use the Service_attn register to synchronize the transfer between the host and the BSI 10.

CBus(제어) 레지스터CBus register

CBus 레지스터 셋트는 BSI(10)의 제어 및 구성에 사용된다. 통상적인 CBus 판독 및 기입을 수행하므로서 호스트는 어떤 레지스터도 비동기적으로 액세스할 수 있다. BSI CBus 어드레스 스페이스는 32 위치를 포함하는데, 32 위치 모두가 사용되지는 않는다. 정의되지 않은 위치에 대한 액세스는 아무 작동도 일으키지 않는다.The CBus register set is used to control and configure the BSI 10. By performing the usual CBus reads and writes, the host can access any register asynchronously. The BSI CBus address space contains 32 positions, not all of which are used. Access to an undefined location does not cause any action.

PTR RAMPTR RAM

포인터(PTR) 레지스터 셋트는 22-와 28-비트 메모리 포인터를 포함하며 그 셋트는 PTR(포인터)RAM(도 15참조)이라고 불리운다. 호스트 Service_attn 레지스터내의 PTOP 기능을 사용하여 간접적으로만 이러한 레지스터에 액세스할 수 있다. PTOP 서비스 기능을 PTR RAM 위치의 판독 및 기입 모두를 허용한다.The pointer (PTR) register set contains 22- and 28-bit memory pointers, which are called PTR (pointer) RAMs (see FIG. 15). You can only access these registers indirectly using the PTOP function in the host Service_attn register. The PTOP service function allows both reading and writing of the PTR RAM location.

호스트는 32-비트 판독/기입 Ptr_mem_adr 레지스터를 PTR RAM 데이터가 기입 또는 판독될 메일박스(메모리) 어드레스로 적재한다. 32-비트 Ptr-mem-adr 레지스터는 하나의 8-비트 CBus 어드레스내에 맵핑되기 때문에, 호스트는 2-비트 바이트 포인터를 적재한 다음에는 동일 CBus 어드레스에 연속적 4개의 판독 또는 기입을 수행한다. 8-비트 Ptr_int_adr 레지스터는 액세스될 PTR RAM 위치(5비트)와, PTOP 기능(판독 또는 기입, 1 비트)의 형태, 액세스될 초기 Ptr_mem_adr 바이트로 적재된다. BSI는 PTR RAM을 메일박스에 또는 이로부터 저장/적재한다.The host loads the 32-bit read / write Ptr_mem_adr register into the mailbox (memory) address where the PTR RAM data will be written or read. Since the 32-bit Ptr-mem-adr register is mapped into one 8-bit CBus address, the host loads a 2-bit byte pointer and then performs four consecutive reads or writes to the same CBus address. The 8-bit Ptr_int_adr register is loaded with the PTR RAM location (5 bits) to be accessed, in the form of a PTOP function (read or write, 1 bit), and the initial Ptr_mem_adr bytes to be accessed. The BSI stores / loads PTR RAM in or from a mailbox.

PTR RAM 어드레스 스페이스는 32 위치이지만, 단지 22 위치만 한정된다. 정의되지않은 위치를 액세스하면 정의 되지 않은 결과를 발생한다.The PTR RAM address space is 32 locations, but only 22 locations are limited. Accessing an undefined location will produce undefined results.

리미트(LIMIT) RAMLIMIT RAM

레지스터의 제 3 셋트는 10과 9-비트 큐 리미트를 포함하며, 그 셋트는 리미트 RAM(도15 참조)이라고 불리운다. 호스트는 Service_attn 레지스터내의 LMOP 서비스 기능을 사용하여 이 레지스터에 간접적으로만 액세스할 수 있다. LMOP 서비스 기능은 10개의 리미트 RAM 위치 중의 어느 것이든 판독 및 기입을 하용한다. 호스트는 8-비트 Limit_data 레지스터를 액세스된 리미트 RAM 위치를 위하여 LS 8 비트의 새로운 데이터 값으로 적재한다. Limit_adr 레지스터는 액세스된 리미트 RAM 위치(4비트)와, LMOP 기능(판독 또는 기입, 1 비트)의 형태와, MS 데이터 비트로 적재된다. BSI(10)는 Limit_adr 레지스터에 및 이로부터 리미트 RAM 위치를 저장/적재한다.The third set of registers includes 10 and 9-bit queue limits, which are called limit RAMs (see Figure 15). The host can only access this register indirectly using the LMOP service function in the Service_attn register. The LMOP service function uses read and write to any of the 10 limit RAM locations. The host loads the 8-bit Limit_data register with a new 8-bit LS data value for the accessed limit RAM location. The Limit_adr register is loaded with the limit RAM location accessed (4 bits), the type of LMOP function (read or write, 1 bit), and MS data bits. The BSI 10 stores / loads a limit RAM location in and from the Limit_adr register.

리미트 RAM 어드레스 스페이스는 16 위치이지만, 9개만 정의된다. 정의 되지 않은 위치를 액세스하면, 정의 되지 않은 결과를 발생한다.The limit RAM address space is 16 positions, but only nine are defined. Accessing an undefined location will result in undefined results.

스테이트 머신 제어State machine control

상술한 바와같이, 호스트 제어하에 3개의 스테이트 머신이 있는데, 이것은 인디케이트 머신(12C)과, 리퀘스트 머신(14C)과, 상태/스페이스 머신(16)이다. 각각의 머신은 State_attn 레지스터내에 RUN/STOP 비트를 갖는다. 호스트와 BSI(10) 모두는 State_attn 레지스터 비트를 경유하여 머신을 STOP 또는 RUN 모드에 놓는다.As mentioned above, there are three state machines under host control, which are the indicator machine 12C, the request machine 14C, and the state / space machine 16. Each machine has a RUN / STOP bit in the State_attn register. Both the host and BSI 10 put the machine into STOP or RUN mode via the State_attn register bit.

인디케이트 및 리퀘스트 머신은 RUN 또는 STOP 모드에 있다. 리셋에서 또는 STOP 비트가 셋트되어 있는 동안에 머신은 STOP 모드에 있다. STROP 비트가 지워지면 RUN 모드에 있게 된다. 호스트는 모든 인디케이트/리퀘스트 작동을 정지시키기 위해 STOP 비트를 셋팅할 수 있거나 또는 BSI(10)는 치명적 오류 발생시에 STOP 비트를 셋팅할 수 있다.The indicator and request machine is in RUN or STOP mode. The machine is in STOP mode at reset or while the STOP bit is set. When the STROP bit is cleared, it is in RUN mode. The host may set the STOP bit to stop all indicator / request operations or the BSI 10 may set the STOP bit in the event of a fatal error.

상태 머신(16)은 리셋시에 초기화되며, 다음에는 유휴 상태로 된다. STOP 비트가 셋트되어 있는 동안에 이 상태로부터 수행될 수 있는 연산 수가 제한된다. STOP 비트가 지워지면 모든 연산이 수행될 수 있다. 호스트는 머신을 제한된 기능 모드에 위치시키기 위해서 STOP 비트를 셋트할 수도 있고, 또는, BSI(10)는 치명적 오류 발생시에 STOP 비트를 셋트할 수도 있다. 치명적 오류의 예는 기입 상태 동안에 ABus 트랜잭션 오류가 발생하는 때 또는 머신이 무효 스테이트를 검출하는 때이다.The state machine 16 is initialized at reset and then idles. While the STOP bit is set, the number of operations that can be performed from this state is limited. When the STOP bit is cleared, all operations can be performed. The host may set the STOP bit to place the machine in the limited functional mode, or the BSI 10 may set the STOP bit in the event of a fatal error. Examples of fatal errors are when an ABus transaction error occurs during the write state or when the machine detects an invalid state.

어떠한 STOP 어텐션에서도, 호스트는 적절한 머신에 서비스 해야만 하고 다음에 서비스를 재개하기 위해서 STOP 비트를 다시 지워야 한다.At any STOP attention, the host must service the appropriate machine and then clear the STOP bit again to resume service.

DMADMA

DMA는 BSI(10)에 의해 자동적으로 조작된다. 모든 데이터 구조체 포인터는 PTR RAM내에 유지되고, 따라서, 메일박스를 경유해서만 액세스가능하다.DMA is automatically operated by the BSI 10. All data structure pointers are held in PTR RAM and are therefore only accessible via mailbox.

채널 작동Channel operation

채널 작동의 상세한 설명과 명세서는 아래에 설명된 서비스 인터페이스에 주어진다. 이 절은 간단한 개요만 제공한다.Detailed descriptions and specifications of channel operation are given in the service interface described below. This section only provides a brief overview.

BSI 초기화BSI initialization

BSI는 다음 순서로 초기화된다.The BSI is initialized in the following order.

1. 제어 및 구성 레지스터가 CBus 인터페이스를 경유하여 적재된다.1. The control and configuration registers are loaded via the CBus interface.

2. PTR RAM은 'STOP' 모드에서 상태/스페이스 머신으로 적재된다.2. The PTR RAM is loaded into the state / space machine in 'STOP' mode.

3. 리미트 RAM에는 'STOP'모드에서 상태/스페이스 머신으로 적재된다.3. The limit RAM is loaded into the state / space machine in 'STOP' mode.

4. 상태/스페이스 머신을 RUN 모드에서 실행하므로서 초기 스페이스가 적재된다.4. Initial space is loaded by running the state / space machine in RUN mode.

5. 인디케이트 머신(12C)은 유입 데이터를 수신할 수 있도록 인에이블된다.5. The indicator machine 12C is enabled to receive incoming data.

6. 리퀘스트 머신(14C)은 유출 데이터를 서비스할 수 있도록 인에이블된다.6. Request machine 14C is enabled to service the outgoing data.

제어 및 구성 레지스터는 모든 내부 스테이트 머신이 정지된 동안에 프로그램될 수 있다.The control and configuration registers can be programmed while all internal state machines are stopped.

STOP 비트가 셋팅되는 동안에 상태/스페이스 머신(16)을 실행하므로써 PTR RAM이 초기화된다. 이 모드에서, 상태/스페이스 머신(16)은 PTOP 또는 LMOP 명령에만 응답한다.The PTR RAM is initialized by executing the state / space machine 16 while the STOP bit is set. In this mode, state / space machine 16 only responds to PTOP or LMOP commands.

PTR RAM이 일단 초기화되면, 리미트 RAM은 초기화되어야만 한다. 이것은 또한 상태/스페이스 머신(16)이 'STOP' 모드에 있을 때 수행된다. 마지막으로, 상태/스페이스 머신(16)은 SPSTOP 비트를 지우므로써 완전한 기능성을 가지고 실행될 수 있다. 상태/스페이스 머신(16)은 모든 큐상에서 초기 스페이스를 위하여 호스트(어텐션을 경유하여)를 프롬프트한다.Once the PTR RAM is initialized, the limit RAM must be initialized. This is also done when the state / space machine 16 is in 'STOP' mode. Finally, state / space machine 16 can be run with full functionality by clearing the SPSTOP bit. The state / space machine 16 prompts the host (via the attention) for initial space on all queues.

모든 스페이스가 일단 초기화되면, 인디케이트 머신(12C)과 리퀘스트 머신(14C)이 실행될 수 있다.Once all the space has been initialized, the indicator machine 12C and request machine 14C can be executed.

인디케이트 작동(도12)Indicator operation (Figure 12)

입력을 개시하기 위해서, 호스트는 2개의 ISAP 구성 레지스터를 셋업시키고, 다음에는 State_attn내의 INSTOP 비트를 지운다. 인디케이트 머신(12C)은 스페이스를 리퀘스트할 것이며, 다음에는 수신을 시작할 것이다.To initiate input, the host sets up two ISAP configuration registers and then clears the INSTOP bit in State_attn. The indicator machine 12C will request the space, and then begin receiving.

인디케이트 머신(12C)은 수신을 배치화 하고자 할 것이다. 상술한 바와 같이, 비록 상태가 각각의 IDUD로 기입되지만, 호스트에의 어텐션은 상태 중단점에서만 발생된다. 이러한 중단점은 관련 데이터의 버스트의 종료를 식별하기 위한 것이다. 따라서, 호스트는 할 일이 충분히 있을 때에만 호출된다.The indicator machine 12C will wish to locate the reception. As mentioned above, although the state is written to each IDUD, attention to the host occurs only at the state breakpoint. This breakpoint is to identify the end of the burst of related data. Thus, the host is only called when there is enough work to do.

리퀘스트 작동(도13A)Request Operation (Figure 13A)

리퀘스트 머신(14C)은 상태가 기입된 후에 어텐션을 발생시킨다. 통상적으로 이것은 전체 리퀘스트 오브젝트의 완료 후 또는 예외 후에 나타난다. 호스트는 어텐션을 가진 상태 또는 갖지 않은 상태에서 리퀘스트 머신(14C)을 작동시킬 수 있다. 어텐션이 사용되지 않으면, 호스트는 각각의 새로운 리퀘스트(또는 REQ)의 순서를 정의하고 기입된 CNF를 체크하여 어느 프레임이 보내어졌는지 확인한다.Request machine 14C generates an attention after the state is written. Typically this appears after the completion of the entire request object or after an exception. The host may operate request machine 14C with or without attention. If no attention is used, the host defines the order of each new request (or REQ) and checks the CNFs written to see which frames were sent.

데이터 스페이스 서브채널Data space subchannel

데이터 스페이스 서브채널은 BSI(10)내의 인디케이트 머신(12C)과 상태/스페이스 머신(16)에 의해 운영된다. 서브채널은 메모리를 PSP 큐에 할당하고, 충분한 유효 엔트리가 있는 큐를 초기화시키고, BSI의 PSP 큐 포인터를 적재시키며, 큐의 리미트 레지스터를 적재시킨 다음에 State_attn내의 SPSTOP(스페이스/상태 STOP)비트를 지우므로서 초기화된다. 이 모든 것을 다른 머신을 인에이블링하기 전에 이루어져야만 한다.The data space subchannels are operated by the indicator machine 12C and the state / space machine 16 in the BSI 10. The subchannel allocates memory to the PSP queue, initializes the queue with enough valid entries, loads the BSI's PSP queue pointer, loads the queue's limit register, and then sets the SPSTOP (space / state STOP) bit in State_attn. It is initialized by erasing. All of this must be done before enabling other machines.

일단 초기화되면, 호스트와 BSI(10)는 독립적으로 PSP 큐에 액세스한다. BSI(10)가 리미트 위치로부터 PSP를 프리페치하면, 이것은 Low_Data_Space 어텐션을 그 ISAP상에 발생시킨다. 호스트는 PSP 포인터를 판독하고, 보다 많은 PSP가 추가되면, 호스트는 리미트 RAM을 업데이트시킨 다음에는 어텐션을 지운다. PSP 프리페칭은 리미트 RAM이 일단 업데이트되면 그 ISAP상에서 재개된다.Once initialized, the host and BSI 10 access the PSP queue independently. If the BSI 10 prefetches the PSP from the limit position, this generates a Low_Data_Space attention on its ISAP. The host reads the PSP pointer, and when more PSPs are added, the host clears the attention after updating the limit RAM. PSP prefetching resumes on that ISAP once the limit RAM has been updated.

상태 서브채널Status subchannel

BSI(10)는 리퀘스트 및 인디케이트상에 2-단어 디스크립터를 기입한다. 이것들은 상태 큐에 기입되며, 상태는 호스트-정의된 리미트(잠정적으로 1을 더하여)까지 큐에 기입된다. 호스트-정의된 리미트 전에 상태 큐 엔트리가 BSI(10)에 의해 기입될 때 No_Status_Space 어텐션이 발생된다. 호스트는 보다 많은 상태 스페이스가 사용 가능할 큐 리미트를 업데이트시킨다. PSP에 의하여, 리미트를 업데이트시키면 SAP 작동이 재시작된다. 상태 큐에 의하여, 리미트 레지스터를 기입하면 SAP 작동이 자동적으로 재개되지 않는다. No_Status_Space 어텐션은 SAP를 재시작하기 위하여 지워져야만 한다.The BSI 10 writes a two-word descriptor on the request and the indicator. These are written to the status queue, and the status is queued up to the host-defined limit (potentially plus 1). No_Status_Space attention is generated when a status queue entry is written by the BSI 10 before a host-defined limit. The host updates the queue limit where more state space will be available. By the PSP, updating the limit restarts SAP operations. By the status queue, writing the limit register does not automatically resume SAP operation. The No_Status_Space attention must be cleared to restart SAP.

레지스터 액세스Register access

CBus 레지스터CBus register

CBus 레지스터 셋트는 CBus 인터페이스를 경유하여 비동기적으로 액세스된다. 단일 판독 및 기입이 수행된다. 각각의 호스트 액세스는 내부적으로 동기화되며, 전달이 수행되고, 다음에는 CB_ACK_asserted된다. 어텐션 레지스터(온리)는 조건부 기입 레지스터이다. 조건부 기입 메카니즘은 아래의 이벤트 절에서 기술된다.The CBus register set is accessed asynchronously via the CBus interface. A single read and write is performed. Each host access is internally synchronized, forwarding is performed, and then CB_ACK_asserted. Attention register (only) is a conditional write register. The conditional writing mechanism is described in the event section below.

PTR RAM(도15)PTR RAM (Figure 15)

PTR RAM 연산은 PTR 내용과 외부 메모리-베이스 메일박스를 교환한다. 메일박스의 어드레스는 호스트에 의해 Ptr_mem_adr 레지스터내에 프로그램된다. 통상적으로, 호스트는 메일박스를 위한 전용 메모리 위치를 사용하며, 따라서, 메일박스 어드레스는 한 번(초기화시에)만 적재된다. 따라서, BSI(10)에의 메일박스-어드레스 기입은 각각의 PTR RAM 액세스에 필요하지는 않다.The PTR RAM operation exchanges the PTR contents with an external memory-based mailbox. The address of the mailbox is programmed by the host in the Ptr_mem_adr register. Typically, the host uses a dedicated memory location for the mailbox, so the mailbox address is only loaded once (on initialization). Thus, mailbox-address writing to the BSI 10 is not necessary for each PTR RAM access.

메일박스 어드레스는 4개의 연속 기입을 적절한 CBus 어드레스에 수행하므로써 Ptr_mem_adr 레지스터에 적재되며, 다음에는 메모리 어드레스의 각각의 바이트를 적재시킨다. 바이트는 기입된 MS 바이트 제 1 인데, 이것은 Ptr_mem_adr내의 비트[7:6]를 0으로 지운 후에 기입된다.The mailbox address is loaded into the Ptr_mem_adr register by performing four consecutive writes to the appropriate CBus address, and then each byte of the memory address is loaded. The byte is the MS byte first written, which is written after erasing bits [7: 6] in Ptr_mem_adr to zero.

PTR RAM으로부터의 판독Reading from PTR RAM

PTR RAM은 다음과 같이 판독된다. 우선, 호스트는 PTOP 비트가 Service_attn 레지스터내에 셋팅되었는지를 체크한다. 둘째, 호스트는 Ptr-int-adr 레지스터를 판독할 PTR RAM 위치(비트[4;0])와, 판독(비트[5])을 위한 PTRW 내의 1로 적재한다. 셋째, 호스트는 PTOP 서비스 비트를 셋트하고, 이것은 BSI(10)로 하여금 PTR RAM을 판독하고, 데이터를 외부 메일박스에 기입하게 한다. 이 연산이 완료되면, BSI(10)는 다시 PTOP 어텐션 비트를 셋트한다. PTOP 어텐션이 셋트되면, 호스트는 메일박스를 판독할 수 있다.The PTR RAM is read as follows. First, the host checks if the PTOP bit is set in the Service_attn register. Second, the host loads the Ptr-int-adr register into PTR RAM location (bits [4; 0]) to read and 1 in PTRW for reads (bits [5]). Third, the host sets the PTOP service bit, which causes the BSI 10 to read the PTR RAM and write the data to an external mailbox. When this operation is complete, the BSI 10 sets the PTOP attention bit again. When the PTOP attention is set, the host can read the mailbox.

PTR RAM내의 기입Write in PTR RAM

PTR RAM은 다음과 같이 기입된다. 우선, 호스트는 PTOP 비트가 Service_attn 레지스터내에 셋트되었는지를 체크한다. 둘째, 이것은 Ptr_int_adr 레지스터를 기입될 PTR RAM 위치(비트[4:0])와, 기입(비트[5])을 위한 PTRW 비트내의 0으로 적재된다. 섯째, 호스트는 외부 메일박스를 새로운 PTR RAM 데이터로 적재한다. 넷째, 호스트는 PTOP 서비스 비트를 셋트시키며, 이것은 BSI로 하여금 지정된 메모리 위치를 판독하고 데이터를 PTR RAM내에 기입하며 다음에는 PTOP 어텐션 비트를 셋트시킨다.The PTR RAM is written as follows. First, the host checks if the PTOP bit is set in the Service_attn register. Secondly, this loads the Ptr_int_adr register into the PTR RAM location to be written (bits [4: 0]) and zeros in the PTRW bit for writing (bits [5]). Fifth, the host loads an external mailbox with new PTR RAM data. Fourth, the host sets the PTOP service bit, which causes the BSI to read the specified memory location, write data into the PTR RAM, and then set the PTOP attention bit.

리미트 RAM(도15)Limit RAM (Figure 15)

리미트 RAM은 2개의 CBus 레지스터를 경유하여 액세스된다. 하나는 액세스될 리미트 어드레스를 유지하는데 사용되고, 다른 것은 데이터를 리미트 RAM과 교환하는데 사용된다.Limit RAM is accessed via two CBus registers. One is used to hold the limit address to be accessed, and the other is used to exchange data with the limit RAM.

리미트 RAM으로부터 판독Read from limit RAM

리미트 RAM은 다음과 같이 판독된다. 우선, 호스트는 LMOP 비트가 Service_attn 레지스터에 셋트되었는지를 체크한다. 둘째, 호스트는 Limit_register를 판독될 리미트 RAM 위치(비트[7:4])와, 판독(비트[3])을 위한 LMRW 비트내의 1과, 나머지 비트내의 0들로 적재한다. 셋째, 호스트는 LMOP 서비스 비트를 지우고, 이것은 BSI로 하여금 리미트 RAM을 판독하고 리미트 데이터 레지스터내에 LS 8 데이터 비트를 기입하며 MS 데이터 비트를 Limit_adr 레지스터의 비트[0]내에 기입하고 다음에는 LMOP 어텐션 비트를 셋트시킨다. LMOP 어텐션이 셋트되면, 호스트는 Limit_adr/데이터 레지스터를 판독할 수 있다.The limit RAM is read as follows. First, the host checks whether the LMOP bit is set in the Service_attn register. Second, the host loads Limit_register into the limit RAM location to be read (bits [7: 4]), one in the LMRW bit for reading (bits [3]) and zeros in the remaining bits. Third, the host clears the LMOP service bit, which causes the BSI to read the limit RAM, write the LS 8 data bits into the limit data register, write the MS data bits into bits [0] of the Limit_adr register, and then write the LMOP attention bits. Set it. Once the LMOP attention is set, the host can read the Limit_adr / data register.

리미트 RAM내에의 기입Write in limit RAM

리미트 RAM은 다음과 같이 기입된다. 우선, 호스트는 LMOP 비트가 Service_attn 레지스터내에 셋트되었는지를 체크한다. 둘째, 호스트는 Limit_adr 레지스터를 기입될 리미트 RAM 위치(비트[7:4])와, 기입(비트[3])을 위한 LMRW 비트내의 0과, 비트[0]내의 MS 데이터 비트와, 나머지 비트내의 0으로 적재한다. 셋째, 호스트는 Limit_data 레지스터를 새로운 리미트 데이터의 8 LS 비트로 적재시킨다. 넷째, 호스트는 LMOP 서비스 비트를 지우며, 이것은 BSI로 하여금 새로운 9-비트 데이터 값을 리미트 RAM내에 기입한 다음에 LMOP 어텐션 비트를 셋트시킨다.The limit RAM is written as follows. First, the host checks to see if the LMOP bit is set in the Service_attn register. Second, the host writes a Limit RAM location (bits [7: 4]) to which the Limit_adr register will be written, zeros in the LMRW bit for writing (bits [3]), MS data bits in bit [0], and the remaining bits. Load at zero. Third, the host loads the Limit_data register with 8 LS bits of new limit data. Fourth, the host clears the LMOP service bit, which causes the BSI to write a new 9-bit data value into the limit RAM and then set the LMOP attention bit.

이벤트event

BSI(10)는 어텐션/통보 스킴을 서비스 이벤트 관리에 사용한다. BSI는 양방향으로 가는(즉, 호스트에서 BSI로 및 그 반대로) 어텐션/통보 이벤트를 제공한다.The BSI 10 uses an attention / notification scheme for service event management. The BSI provides an attention / notification event going in both directions (ie from host to BSI and vice versa).

BSI(10)는 어텐션 레지스터내에 적절한 이벤트의 어텐션 비트를 셋트하므로써 어텐션을 발생시킨다. 호스트는 대응 통보 비트를 셋트시키므로써 이 어텐션이 인터럽트를 발생할수 있게 한다.The BSI 10 generates an attention by setting the attention bit of the appropriate event in the attention register. The host can set an acknowledgment bit to enable this attention to generate an interrupt.

특정 어텐션 비트는 셋트되거나 지워진 신호이다. BSI(10)는 어텐션을 호스트에 신호하기 위해서 비트를 셋트한다. 호스트는 BSI에 완료/인지를 신호하기 위해 비트를 지운다. 이것은 BSI(10)로 하여금 어떤 처리 동작(예로서, 메일박스의 판독)을 취하게 한다.The particular attention bit is the set or cleared signal. The BSI 10 sets a bit to signal an attention to the host. The host clears the bits to signal BSI to complete / acknowledge. This causes the BSI 10 to take some processing action (eg, reading a mailbox).

어텐션은 다수의 레지스터를 통해 전파되므로, BSI(10)는 호스트를 위해 2-레벨 구조체를 제공한다. 이것은 도20에 도시되었다. 제 1(하위) 레벨에는, 각각의 어텐션 레지스터 비트가 대응 통보로 마스크된다(ANDed). 모든 마스크된 어텐션은 다음에는 레지스터-레벨 어텐션을 발생시키기 위해 OR 연산된다. Master_attn 레지스터는 이러한 레지스터-레벨 비트를 관측하기 위하여 판독된다. 마지막으로, 각각의 Master_attn 비트는 대응 Master_notify 로 마스크되고, 다음에 이것들은 모두 BSI INT_output 핀을 발생시키기 위해 OR 연산된다.Attention is propagated through a number of registers, so the BSI 10 provides a two-level structure for the host. This is shown in FIG. At the first (lower) level, each attention register bit is ANDed with a corresponding notification. All masked attentions are then ORed to generate register-level attentions. The Master_attn register is read to observe these register-level bits. Finally, each Master_attn bit is masked with the corresponding Master_notify, and then these are all ORed to generate the BSI INT_output pin.

인터럽트 서비스 루틴에서, 호스트는 다른 어떤 어텐션 레지스터가 판독을 필요로 하는지를 결정하기 위하여 Master_attn 레지스터를 판독해야 한다. Master_attn 레지스터는 판독 전용 레지스터이다.In the interrupt service routine, the host must read the Master_attn register to determine which other attention registers require reading. The Master_attn register is a read-only register.

어텐션 레지스터Attention Register

하위 레벨 어텐션 레지스터는 호스트와 BSI(10) 모두에 의해서 판독/기입되며, 리셋시에 초기화된다. 각각의 어텐션 비트는 BSI에 의해 셋트 가능하며 호스트에 의하여 지워질 수 있다. 모든 하위 레벨 어텐션 레지스터는 조건부 기입 레지스터이다. 아래의 이벤트 절은 조건부 기입 메카니즘의 명세서를 제공한다.The low level attention register is read / written by both the host and the BSI 10 and initialized at reset. Each attention bit is set by the BSI and can be cleared by the host. All low level attention registers are conditional write registers. The event section below provides a specification of the conditional writing mechanism.

통보 레지스터Notification register

모든 통보 레지스터는 호스트에 의해 판독/기입된다. 이것들은 리셋시에 0으로 지워진다.All notification registers are read / written by the host. These are cleared to zero on reset.

조건부 기입Conditional entry

호스트와 BSI(10)는 어텐션 레지스터에 독립적으로 기입하지만, 잠정적으로 동시에 기입한다. 호스트가 어테션을 놓치지 않도록 보장하기 위하여, 어텐션 레지스터는 조건부-기입 메카니즘을 이용한다.The host and the BSI 10 write independently to the attention register, but potentially write simultaneously. To ensure that the host does not miss an attention, the attention register uses a conditional-write mechanism.

BSI(10)는 언제라도 어텐션 레지스터에 기입할 수 있고, 이것은 어느 호스트 기입을 번복한다(이것은 지움(clear)이 하나의 셋트로서 동시에 일어나는 경우 이벤트가 손실되지 않도록 보증한다).The BSI 10 can write to the Attention Register at any time, which overwrites any host writes (this ensures that no events are lost if clearing occurs simultaneously as a set).

호스트가 어텐션 레지스터를 판독할 때마다, 판독 값이 동시에 비교 레지스터에 저장된다. 호스트가 어텐션 레지스터에 기입할 때마다, 기입중인 레지스터의 현재의 값은 비교 레지스터와 비교된다. 잘못 비교된 비트는 어떤 것도 기입되지 않는다. 어떤 비트도 기입되지 않으면, State_attn. CWI(조건부 기입 금지) 비트가 셋트된다. 이 비트는 통상적 어텐션 비트가 아니지만, 조건부 기입 레지스터에 최종 판독의 결과를 반영한다. 이것의 대응 통보 비트는 항상 지워진다.Each time the host reads the attention register, the reads are stored in the comparison register at the same time. Each time the host writes to the attention register, the current value of the register being written is compared to the compare register. No mismatched bits are written. State_attn if no bits are written. The CWI (Conditional Write Inhibit) bit is set. This bit is not a conventional attention bit, but reflects the result of the last read in the conditional write register. Its corresponding notification bit is always cleared.

비교 레지스터는 언제라도 호스트에 의하여 어떤 값으로도 기입될 수 있다. 이러한 기능은 어텐션 레지스터상에 비트 지움 연산을 허용한다.The compare register can be written at any time by the host. This feature allows bit erase operations on the attention register.

어텐션의 한가지 사용법은 다음과 같을 수 있다. 호스트는 어텐션 레지스터를 판독하고 그 값을 기억한다. 어텐션이 서비스를 받을 대에, 호스트는 비축된 값을 비교 레지스터에 기입하고, 업데이트된 값을 어텐션 레지스터에 기입한다. 따라서, 서비스를 받은 어텐션만이 지워진다. 이 경우에 호스트는 CWI비트를 무시한다.One usage of attention might be: The host reads the attention register and stores the value. When the attention is served, the host writes the reserved value into the comparison register and the updated value into the attention register. Thus, only the serviced attention is deleted. In this case, the host ignores the CWI bit.

보다 간단한 사용법은 비트-지움 연산을 사용하는 것이다. 호스트는 언제라도 어텐션 레지스터를 판독하며, 판독된 값을 특별히 기억할 필요는 없다. 호스트가 어텐션을 지우고 싶을 때는 비교 레지스터에 모든 1을 기입하고, 지우고 싶은 어텐션에 0을 기입한다(다른 모든 어텐션 비트에는 1을 기입한다). 당연히, CWI 비트는 셋트될 수 있으나, 안전하게 무시될 수 있다.A simpler usage is to use bit-erase operations. The host reads the attention register at any time and does not need to specifically remember the read value. When the host wants to clear an attention, it writes all 1s in the comparison register and 0 in the attentions it wants to clear (write 1 in all other attention bits). Naturally, the CWI bit can be set but can be safely ignored.

레지스터, 메일박스 및 DMARegisters, Mailboxes, and DMAs

도21, 도22 및 도23은 페이지에 의해 그룹핑되는 BSI 레지스터(제어 및 구성 레지스터 셋트, PTR RAM 레지스터 셋트 및 리미트 RAM 레지스터 셋트)를 도시한다. 각각의 표내의 제 1 열은 레지스터 어드레스(16진법)를 나타낸다. 제 2 열은 레지스터 명을 나타낸다. 제 3 열은 그 기능을 기술한다. 제 4 열은 리셋 후의 (초기)레지스터 값을 나타낸다. 최종 열은 조건부 기입 레지스터인지를 나타낸다.21, 22 and 23 show BSI registers (control and configuration register sets, PTR RAM register sets, and limit RAM register sets) grouped by pages. The first column in each table represents the register address (hexadecimal). The second column shows the register name. The third column describes the function. The fourth column shows the (initial) register value after reset. The final column indicates whether it is a conditional write register.

BSI에는 2개의 리셋이 있는데, 하나는 하드웨어 리셋(RST 입력을 경유함)이고, 하나는 소프트웨어 리셋(모드 레지스터내의 MRST 비트를 경유함)이다. 둘 다 동일 효과를 발생시킨다. 단일 용어 '리셋'은 양쪽을 나타내어 사용된다.There are two resets in the BSI, one is a hardware reset (via the RST input) and one is a software reset (via the MRST bit in the mode register). Both produce the same effect. The single term 'reset' is used to refer to both.

레지스터 세부사항Register details

이 절은 각각의 레지스터의 레이아웃과 각각의 비트 모드의 기능성을 규정한다.This section defines the layout of each register and the functionality of each bit mode.

판독/기입 모드 레지스터는 주요 시스템 구성 옵션을 설정하며, 리셋시에 변경되지 않는다. 이러한 비트는 BSI 작동 전에 리셋시에만 프로그램되어어야 한다.The read / write mode register sets the main system configuration options and does not change on reset. These bits should only be programmed on reset before BSI operation.

SMLBSMLB SMLQSMLQ VIRTVIRT BIG-ENDBIG-END FLOWFLOW MRSTMRST FABCLKFABCLK TESTTEST

SMLB 작은 버스트. SMLB_0일 때에는, BST는 32 바이트(8 단어)버스트를SMLB small burst. When SMLB_0, BST uses 32 bytes (8 words) burst

사용한다. SMLB=1일 때에는, BSI는 ABus상에 16 바이트(4 단어)버use. When SMLB = 1, the BSI is a 16 byte (4 word) buffer on the ABus.

스트만을 사용한다. BSI는 인디케이트 프레임을 버스트-사이즈 경Use only strings. BSI sets the indication frame to burst-size

계상에 정렬시키기 때문에, SMLB=0일 때에는 8 단어 블록의 제 후After SMLB = 0, after the 8 word block

반부에 4 단어를 기입하는 일은 결코 발생되지 않는다.Writing four words in half never happens.

SMLQ 작은 큐 사이즈 SMLQ=0일 때에는 큐 사이즈는 4K 바이트이다.SMLQ Small Queue Size When SMLQ = 0, the queue size is 4K bytes.

VIRT VIRT=0일 때에는 ABus상에 실제 어드레스 모드이고, VIRT=1일 때에는 가상 어드레스 모드이다.VIRT VIRT = 0 means the actual address mode on the ABus and VIRT = 1 means the virtual address mode.

BIGEND BIGEND=0일 때에는 작은-엔디언 데이터 포맷이고, BIGEND=1일때BIGEND When BIGEND = 0, it is a small-endian data format.When BIGEND = 1

에는 큰-엔디언 포맷이다.There is a big-endian format.

FLOW FLOW=0일 때에는 CBus 또는 ABus상에서 패리티가 체크되지 않는다.When FLOW FLOW = 0, parity is not checked on CBus or ABus.

패리티는 항상 3개의 인터페이스의 각각에서 발생된다. FLOW=1일Parity always occurs on each of the three interfaces. FLOW = 1 day

때에는 플로우-스루 패리티가 사용된다. FLOW=1일때 패리티가Flow-through parity is used. When FLOW = 1 parity is

ABus와 BMAC 사이에서 흐르며, 유입 데이터는 ABus 인터페이스에서Flows between the ABus and the BMAC, and the incoming data

체크되지 않으며, 대신에 BMAC로 통과될때 체크된다(BMAC에 의하여)Unchecked, instead checked when passed to BMAC (by BMAC)

MRST 마스터 리셋. 이것은 레지스터들을 표 7에 나타낸 값으로 초기화MRST master reset. This initializes the registers to the values shown in Table 7.

한다. 이 비트는 리셋이 완료된 후에 지워진다.do. This bit is cleared after the reset is complete.

FABCLK 고속 ABus 클록. 이 비트는 ABus 클록과 링 클록(LBC)사이의 동기화FABCLK High Speed ABus Clock. This bit is synchronized between the ABus clock and the ring clock (LBC).

를 위한 준안정 지연 기간을 결정한다. 리셋시에는 이 비트는 0으Determine the metastable delay period for On reset, this bit is zero.

로 지워지며, 이것은 지연으로서 한 ABus 클록 주기 전체를 선택한This selects the entire ABus clock period as the delay.

다. 다음에는 이 비트는 1로 셋트되고, ABus 클록 지연의 1/2만All. This bit is then set to 1, and only 1/2 of the ABus clock delay

사용된다. BSI는 AB_CLK=LBC(12.5MHz이며, 위상의 일치)에서, 또는Used. BSI is at AB_CLK = LBC (12.5 MHz, coincidence of phase), or

AB_CLK=2×LBC(즉, 25MHz이며, 위상의 일치)에서 적정하게 작동하도For proper operation at AB_CLK = 2 × LBC (i.e. 25 MHz, phase match)

록 설계된다. 이러한 옵션은 둘 다 칩 셋트의 CDD(클록 분배장치)Is designed. Both of these options are available on a chip set (clock distribution unit)

로부터 사용가능한 클록을 선택하므로써 쉽게 실현된다.This is easily accomplished by selecting the available clock from.

TEST 테스트 모드. 이 비트를 1로 셋팅하면 테스트 논리부를 인에이블TEST test mode. Setting this bit to 1 enables the test logic.

시킨다.Let's do it.

Ptr_int_adrPtr_int_adr

판독/기입 Ptr_int_adr 레지스터는 PTOP PTR RAM 서비스 기능을 위하여 파라미터를 프로그램하는데 사용된다.The read / write Ptr_int_adr register is used to program the parameters for the PTOP PTR RAM service function.

이것은 리셋시에 변경되지 않는다.This does not change at reset.

M1M1 MOMO PTRWPTRW A4A4 A3A3 A2A2 A1A1 A0A0

M[1:0]] 이 2비트를 기입하면 Ptr_mem_adr 레지스터에 액세스하기 위하여 지When M [1: 0]] writes these 2 bits, it is written to access the Ptr_mem_adr register.

적된 바이트가 프로그램된다. 이것은 메모리 어드레스가The indicated byte is programmed. This means that the memory address

Ptr_mem_adr 레지스터내에 적재될 때 4개의 연속 기입(MS 바이트를Four consecutive writes (MS bytes) when loaded into the Ptr_mem_adr register.

먼저)을 위한 바이트 포인터를 초기화하기 위하여 통상적으로 0에To initialize the byte pointer for

셋팅된다. BSI는 Ptr_mem_adr 에 각각의 기입 후에 이러한 비트를Is set. The BSI writes these bits after each write to Ptr_mem_adr.

내부적으로 증가시킨다.Increase internally.

PTRW 이 비트는 PTOP 기능이 판독 또는 기입인지의 여부를 결정한다.PTRW This bit determines whether the PTOP function is read or written.

PTRW=0일 때에는 기입이고, PTRW=1일 때에는 판독이다.When PTRW = 0, it is a write, and when PTRW = 1, it is a read.

A[4:0] 이 5개 비트를 기입하면 후속 PTOP 기능을 위한 PTR RAM 어드레스가If A [4: 0] writes these five bits, the PTR RAM address for subsequent PTOP functions

셋팅된다.Is set.

Ptr_mem_adrPtr_mem_adr

판독/기입 Ptr_mem_adr 레지스터는 PTOP PTR RAM 서비스 기능의 데이터 전달에 사용되는 단어-정렬(바이트)메모리 어드레스를 설정하는데 사용된다.The read / write Ptr_mem_adr register is used to set the word-aligned (byte) memory address used for data transfer of the PTOP PTR RAM service function.

memory_addr[27:24]memory_addr [27:24] memory_addr[23:16]memory_addr [23:16] memory_addr[15:8]memory_addr [15: 8] memory_addr[7:02]memory_addr [7:02]

비트[1:0]는 0이어야만 한다(이것들은 내부적으로 강제적으로 0으로 된다).Bits [1: 0] must be zero (they are forced to zero internally).

이 CBus 어드레스는 PTOP 메카니즘을 사용하여 PTR RAM과 외부 메모리 사이의 전달을 위한 메모리 어드레스로서 사용될 4개의 내부 바이트 레지스터내의 윈도우이다. 4 바이트 레지스터는 먼저 M[1:0] 비트를 Ptr_mem_adr 레지스터내에 셋팅한 후에 이 어드레스에 연속 기입하므로써 적재된다. 바이트는 M1=M0=0을 셋트한 후에 MS 바이트를 먼저 적재해야 한다. BSI는 각각의 기입 또는 판독 후에 내부적으로 바이트 포인터를 증가시킨다. 이 레지스터는 리셋시에 실리콘 개정 코드로 초기화된다. 개정 코드는 호스트가 중복 기입할 때까지 유지된다.This CBus address is a window in four internal byte registers that will be used as a memory address for transfer between the PTR RAM and external memory using the PTOP mechanism. The 4-byte register is loaded by first setting the M [1: 0] bits in the Ptr_mem_adr register and then writing continuously to this address. The byte must first load the MS byte after setting M1 = M0 = 0. The BSI increments the byte pointer internally after each write or read. This register is initialized with a silicon revision code at reset. The revision code remains until the host overwrites it.

Master_attn 및 Master_notifyMaster_attn and Master_notify

판독 전용 Master_attn 및 판독/기입 Master_notify 레지스터는 BSI 어텐션의 제 1 레벨 뷰를 제공한다. 각각의 비트는 제 2 - 레벨 어텐션/통보 레지스터 쌍의 스테이트를 나타낸다. 비트는 대응 어텐션 레지스터가 가정된 통보 가능 어텐션을 가질 때 Master_attn 레지스터내에 셋트된다. Master_attn 레지스터에의 기입은 내용을 변경시키지 않으나, 허용된다. Master_attn은 리셋팅시에 0으로 지워진다.The read only Master_attn and Read / Write Master_notify registers provide a first level view of the BSI Attention. Each bit represents a state of a second-level attention / notification register pair. The bit is set in the Master_attn register when the corresponding attention register has the assumed notifyable attention. Writing to the Master_attn register does not change its contents, but is allowed. Master_attn is cleared to zero at reset.

STASTA NSANSA SVASVA RQARQA INAINA RsvdRsvd RsvdRsvd RsvdRsvd

STA State_attn 레지스터는 어텐션 비트 셋트 중의 하나를 갖는다.The STA State_attn register has one of the attention bit sets.

NSA No_space_attn 레지스터는 어텐션 비트 셋트 중의 하나를 갖는다.The NSA No_space_attn register has one of the attention bit sets.

SVA Service_attn 레지스터는 어텐션 비트 셋트 중의 하나를 갖는다.The SVA Service_attn register has one of the attention bit sets.

RQA Req_attn 레지스터는 어텐션 비트 셋트 중의 하나를 갖는다.The RQA Req_attn register has one of the attention bit sets.

INA Ind_attn 레지스터는 어텐션 비트 세트 중의 하나를 갖는다.The INA Ind_attn register holds one of the attention bit sets.

State_attn 및 State_notifyState_attn and State_notify

판독/기입 State_attn/notify 레지스터는 BSI내에 주요 스테이트를 위한 어텐션을 제공한다. 이것은 스테이트 머신 스테이트와 패리티 오류를 포함하며 리셋시에 초기화된다.The read / write State? Attn / notify registers provide attention to the main states in the BSI. This includes state machine state and parity errors and is initialized at reset.

ERRERR BPEBPE CPECPE CWICWI CMDECMDE SPSTOPSPSTOP RQSTOPRQSTOP INSTOPINSTOP

ERR 오류.리셋시에 지워진다. 회복 불가능 오류 발생시에BSI에 의해ERR Error, cleared at reset. By the BSI in case of an unrecoverable error

셋트된다. 오류는 확인 상태 기입하는 ABus 트랜잭션 오류(ABus 오Is set. An error is an ABus transaction error (ABus error)

류 판독/기입 데이터는 디스크립터내에 레포트된다)와, 내부 논리Flow read / write data is reported in the descriptor) and internal logic

오류와, 스테이트 머신이 무효 스테이트에 들어갈 때의 오류이다.Errors and errors when the state machine enters an invalid state.

오류 판독/기입 데이터는 디스크립터내에 레포트된다)와, 내부 논리Error read / write data is reported in the descriptor) and internal logic

오류와, 스테이트 머신이 무효 스테이트에 들어갈 때의 오류이다.Errors and errors when the state machine enters an invalid state.

BPEBMAC 패리티 오류. 리셋시에 지원진다. BMAC 패리티는 항상 프레임 동BPEBMAC parity error. Supported on reset. BMAC parity is always frame dynamic

안에 체크된다. 오류가 발생되면 이 어텐션이 셋팅된다. CBus 패Checked inside This attention is set when an error occurs. CBus L

리티 오류. 리셋시에 지워진다. FLOW 패리티가 사용될 때, CBusError. Cleared on reset. CBus when FLOW parity is used

패리티가 체크된다. 오류 발생되면, 이 어텐션이 셋트된다. 호스Parity is checked. If an error occurs, this attention is set. hose

트 기입시에 CBus 패리티 오류가 있으면 기입은 억제될 것이다.If there is a CBus parity error at the time of writing, the write will be suppressed.

CWI 조건부 기입 금지. 리셋시에 지워진다. 이 비트는 모든 조건부 기No CWI Conditionalization. Cleared on reset. This bit is all conditional

입 레지스터(어텐션 레지스터)에의 최종 기입의 결과를 반영한다.Reflects the result of the last write to the input register (attention register).

I=1은 하나 이상의 비트가 최종 조건부 기입 레지스터 기입시에 잘I = 1 indicates that one or more bits are well written at the time of the final conditional write register.

못 매치되었음을 뜻한다.It means that it did not match.

CMDE 명령 오류. 리셋시에 지워진다. 무효 연산이 호스트에 의해 수행CMDE command error. Cleared on reset. Invalid operation performed by the host

될 때 BSI에 의해 셋트된다. 이것은 무효 값이 Ind_hdrlen 레지스Is set by the BSI. This is an invalid value Ind_hdrlen regis

터(INSTOP 어텐션도 셋트된다)내에 적재될 때에만 발생된다.Occurs only when loaded into a table (INSTOP attention is also set).

SPSTOP 리셋시에 셋팅되거나, 회복 불가능 오류로 인하여 스페이스/상태 머Set at SPSTOP reset, or space / state error due to unrecoverable error

신이 reduced_functions_state로 들어갈 때 BSI에 의해 셋팅된다.It is set by the BSI when a scene enters reduced_functions_state.

스테이트 머신은 reduced_functrions_state내에 있을 동안에만The state machine can only be in reduced_functrions_state

POP 또는 LMOP 리퀘스트를 수행할 것이다.We will perform a POP or LMOP request.

RQSTOP 3개의 상태하에서 셋트된다. 우선, 리셋시에, 둘째, 리퀘스트 스테RQSTOP Set under three states. First, at reset, secondly, request queue

이트 머신이 내부 오류 검출시 또는 무효 스테이트로 들어갈때, 셋When the machine enters an invalid state or detects an internal error,

째, ABus 오류가 CNF 기입시에 발생할 때에 셋트된다.Secondly, it is set when an ABus error occurs upon CNF writing.

INSTOP 3개의 상태하에서 셋트된다. 첫째, 리셋시, 둘째, 인디케이트 스테INSTOP Set under three states. First, on reset, second, on indicator

이트 머신이 내부 오류를 검출하거나 또는 무효 스테이트로 들어갈The machine detects an internal error or enters an invalid state.

때, 셋째, 호스트가 Ind_hdrlen 레지스터에 부당한 값으로 적재할Third, when the host loads an illegal value into the Ind_hdrlen register

때에 셋트된다.It is set at the time.

Service_attn 및 Service_NotifyService_attn and Service_Notify

판독/기입 Service attn/notify 레지스터는 서비스 기능을 위한 어텐션을 제공한다. 호스트는 어텐션을 발생시키기 위해서 어떠한 어텐션 비트도 셋트할 수 있으나, 내부 BSI 스테이트에 영향을 주지 않는다. Service_attn은 리셋시에 OxOf로 셋트되고, 서비스 통보는 0으로 지워진다.Read / Write The Service attn / notify registers provide attention to service functions. The host may set any of the attention bits to generate an attention, but does not affect the internal BSI state. Serviceattn is set to OxOf at reset and the service notification is cleared to zero.

RsvdRsvd RsvdRsvd RsvdRsvd RsvdRsvd ABROABRO AVR1AVR1 LMOPLMOP PTOPPTOP

ABR? RSAP_? 리퀘스트 포기. BSI가 RSA상의 리퀘스트를 포기하기를 원ABR? RSAP? Abandon request. BSI wants to waive requests on RSA

할때에는 호스트에 의하여 지워진다. RQABORT를 셋트하면 이 RSAIs deleted by the host. If RQABORT is set, this RSA

상의 리퀘스트를 종료시킨다. 호스트는 이 비트에 1을 기입할 수Terminate the request on the table. The host can write 1 to this bit.

있으며, 이것은 리퀘스트가 포기되거나 포기되지 않는 것을 방지한This prevents the request from being abandoned or abandoned.

다. 이것은 BSI상에 역효과를 주지 않는다. 리퀘스트가 호스트-포All. This does not adversely affect the BSI. Request to host-for

기될 때 USR어텐션이 셋트된다(Req_attn_에 셋트되며, 그 RSAP상USR Attention is set when it is set (it is set at Req tattn) and

에서 그 이상의 처리는 중지된다)Further processing is suspended)

LMOP BSI가 데이터를 리미트 RAM과 Limit_data 레지스터 사이에 전달하The LMOP BSI passes data between the limit RAM and the Limit_data register.

기를 원할 때 호스트에 의핼 지원진다. 전달의 방향(판독 또는 기Supported by the host when desired. Direction of delivery (read or note

입)은 Limit_adr내의 LMRW 비트에 의해 결정된다. 리미트 RAM 어Input) is determined by the LMRW bit in Limit_adr. Limit RAM

드레스는 Limit_adr내에 있다. LWOP=0인 동안에 호스트는 Limit_The dress is in Limit_adr. While LWOP = 0, the host will enter Limit_

adr 또는 Limit_data 레지스터를 변경해서는 않된다.Do not change the adr or Limit_data registers.

PTOP BSI가 데이터를 PTR RAM과 한정된 메모리 위치 사이에 전달하기를PTOP BSI will pass data between the PTR RAM and a limited memory location.

원할 때 호스트에 의해 지워진다. 전달 방향(판독 또는 기입)은Cleared by the host when desired. The delivery direction (read or write) is

Ptr_mem_adr내의 PRRW 비트에 의해 결정된다. PTR 어드레스는It is determined by the PRRW bit in Ptr \ mem \ adr. PTR address is

Ptr_int_adr내에 있다. PTOP=0인 동안에, 호스트는 Ptr_mem_It is in Ptr_int_adr. While PTOP = 0, the host is Ptr_mem_

adr 또는 Ptr_mem_adr 레지스터를 변경하지 않아야 한다.Do not change the adr or Ptr \ mem \ adr registers.

No_space_attn 및 No_space_notifyNo_space_attn and No_space_notify

판독/기입 No_space_attn/notify 레지스터는 어떠한 큐가 스페이스로부터 나오거나 유효 엔트리로부터 나올 때 발생되는 어텐션을 제공한다. 호스트는 테스트 목적으로만 어텐션을 발생시킬 수 있도록 어떠한 어텐션 비트도 셋트할 수 있다. 이것은 정상 작동 동안에 일어나서는 안된다. No_Data_Space 어텐션은 BSI에 의하여 자동적으로 셋트 또는 지워진다. No_Status/Space 어텐션은 BSI에 의해 셋트되고, 호스트에 의해 지워져야만 한다. 리셋시에 No_Space_attn은 Oxff로 셋트되고, No_space_notify는 0으로 지워진다.Read / Write The No? Space? Attn / notify register provides an attention that is generated when any queue comes out of space or out of a valid entry. The host can set any of the attention bits to generate an attention for test purposes only. This should not happen during normal operation. The No_Data_Space attention is automatically set or cleared by the BSI. The No_Status / Space attention is set by the BSI and must be cleared by the host. At reset, No_Space? Attn is set to Oxff, and No_Space? Notify is cleared to zero.

NROSNROS NRISNRIS LIODLIOD NIOSNIOS LI1DLI1D NI1SNI1S LI2DLI2D NI2SNI2S

NR?S RASP_? 상태 스페이스 없음. 리셋시에 또는 BSI가 CNF를 호스트-NR? S RASP? No state space. At reset or BSI hosts CNF

2정의 리미트 RSAP_? 상태 큐 위치에 기입했을 때 BSI에 의해 셋트Two limit RSAP? Set by the BSI when writing to the status queue position

된다. 내부 파이프라이닝에 의하여, BSI는 큐에 2개 이상의 CNF를do. By internal pipelining, the BSI adds two or more CNFs to the queue.

기입할 수 있다. 따라서, 호스트는 큐내에 사용 가능한 스페이스I can write it. Thus, the host has space available in the queue.

보다 하나 작은 리미트를 셋트해야만 한다. 이 비트는 허용하기 위You must set one less limit. To allow this bit

하여 호스트에 의해 지워져야만 하는데, 즉, BSI는 상태를 기입할Must be cleared by the host, that is, the BSI

스페이스를 가질 때까지 리퀘스트에 서비스 하지 않을 것이다.We will not serve requests until we have space.

LI?D 낮은 ISAP_? 데이터 스페이스. 리셋시에, 또는, 최종 사용가능LI? D LOW ISAP_ Data space. On reset or last use

ISAP_? PSP 큐 위치로부터 PSP를 프리페치할 때에 BSI에 의해 셋트ISAP? Set by BSI when prefetching PSP from PSP cue position

된다. 테스트 목적으로 호스트에 의해 셋트 또는 지워질 수 있다.do. Can be set or cleared by the host for testing purposes.

PSP 엔트리가 없어서 PSP 페칭이 중지되면, 적절한 리미트 레지스터If PSP fetching stops because there is no PSP entry, then the appropriate limit register

가 업데이트될 때 페칭은 자동적으로 재개된다. 이비트는 호스트에Fetching resumes automatically when is updated. This bit

에게 PSP 큐가 낮다는 것을 알려준다. 경고의 양은 프레임 길이에Tells the PSP queue is low. The amount of warning is in the frame length

의존한다는 점에 주의하십시오. 이 어텐션이 발생될 때 항상 BSINote that it depends. Always BSI when this attention occurs

에 사용 가능한 하나 이상의 페이지(4K 바이트)가 하나 더 있을 것One or more pages (4K bytes) available for

이다. 또 다른 FDDI 최대-길이 프레임(현재의 프레임 후에)은 이to be. Another FDDI full-length frame (after the current frame)

스페이스에 적합하지 않을 것이다.It will not fit in space.

NI?S ISAP_? 상태 스페이스 없음. 리셋시에 또는 ISAP_? 상태 큐내의NI? S ISAP? No state space. On reset or ISAP_? In the state queue

최종 사용가능 엔트리내에 BSI가 IDUD. 최종을 기입했을 때 BSI에The BSI IDUD in the last available entry. To the BSI

의해 셋트된다. 이것이 발생되면 BSI는 그 ISAP상에 복사를 중지한Set by When this happens, the BSI stops copying on that ISAP.

다. 이 비트는 ISAP 복사를 인에이블할 수 있도록 호스트에 의해All. This bit is set by the host to enable ISAP copying.

지워져야만 하는데, 즉, BSI는DUD를 기입할 스페이스를 가질 때까지It must be cleared, i.e. until the BSI has space to write the DUD.

ISAP상에 복사하지 않는다.Do not copy over ISAP.

Limit_adrLimit_adr

판독/기입 Limit_adr 레지스터는 리미트 RAM 위치, MS 데이터 비트 및 수행될 LMOP 서비스 기능의 형태에 의해 프로그램된다. 리셋시에 변경되지 않는다.The read / write Limit_adr register is programmed by the limit RAM location, MS data bits, and the type of LMOP service function to be performed. It is not changed at reset.

A3A3 A2A2 A1A1 A0A0 LMRWLMRW RsvdRsvd RsvdRsvd D8D8

A[3:0] 이 4개의 비트를 기입하면 후속 LMOP 서비스 기능을 위한 리미트If A [3: 0] writes these four bits, the limit for subsequent LMOP service functions

RAM 어드레스가 셋트된다.The RAM address is set.

LMRW 이 비트는 LMOP 기능이 판독 또는 기입인지의 여부를 결정한다.LMRW This bit determines whether the LMOP function is read or write.

LMRW=0일 때에는 기입이고, LMRW=1일 때에는 판독이다.When LMRW = 0, it is write; when LMRW = 1, it is read.

D8 이것은 어드레스된 레지스터와 교환을 위한 최상위 데이터 비트이D8 This is the most significant data bit for swapping with addressed registers.

다.All.

Limit_dataLimit_data

판독/기입 Limit_data 레지스터는 LMOP 서비스 기능에서 전달될 8개의 최하위 리미트 RAM 데이터 비트로 적재된다. 최상위 데이터 비트는 Limit_adr 레지스터의 비트[0]과 교환된다.The read / write Limit_data register is loaded with the eight lowest limit RAM data bits to be delivered by the LMOP service function. The most significant data bit is exchanged for bit [0] in the Limit # adr register.

Limit_value[7:0]Limit_value [7: 0]

리셋시에 변경되지 않는다. 리미트 RAM(LMRW=0인 상태의 LMOP)에 기입을 위해서, 이 레지스터는 선택된 리미트 레지스터에 기입된 새로운 한계치로 적재된다. 리미트 RAM(LMRW=1인 상태의 LMOP)으로부터의 판독을 위해서, 레지스터는 BSI에 의해 선택된 리미트 레지스터내에 현재 한계치로 적재된다. 모든 비트는 OMIT 레지스터내에서 유효해야만 하는데, 즉 작은 큐가 사용되더라도 모든 비트는 연관된 포인터와 비교된다는 점에 주의하십시오.It is not changed at reset. For writing to the limit RAM (LMOP with LMRW = 0), this register is loaded with the new limit value written to the selected limit register. For reading from the limit RAM (LMOP with LMRW = 1), the register is loaded with the current limit in the limit register selected by the BSI. Note that all bits must be valid in the OMIT register, that is, even if a small queue is used, all bits are compared with the associated pointer.

Req_attn 및 Req_notifyReq_attn and Req_notify

판독/기입 Req_attn/notify 레지스터는 2개의 RSAP 모두에 의해 발생되는 어텐션을 제공한다. 호스트는 어텐션을 발생시키기 위해서 어텐션 비트를 셋트할 수 있으며, USR 비트를 제외하고는 어떠한 내부 BSI 스테이트에도 영향을 주지 않는다. 리셋시에 Req_attn 및 Rea_notify는 0으로 지워진다.The read / write Req? Attn / notify registers provide the attention generated by both RSAPs. The host can set the attention bit to generate an attention and does not affect any internal BSI state except the USR bit. At reset, Reqattn and Reanotify are cleared to zero.

USR_0USR_0 RCM-0RCM-0 EXC_0EXC_0 BPX_0BPX_0 USR_1USR_1 RCM_1RCM_1 EXC_1EXC_1 BRK_1BRK_1

USR RSAP_? 서비스 불가능 리퀘스트. 리퀘스트가 처리될 수 없을 때USR RSAP? Unserviceable request. When the request cannot be processed

BSI에 의해 셋팅된다. 세가지 원인이 있는데, 즉, Rq_cls가 현재It is set by the BSI. There are three causes, Rq_cls

의 링 스테이트에 적합하지 않을 때(즉, 링이 작동 상태로 된 직후,Is not suitable for the ring state (i.e. immediately after the ring is in operation,

), CNF 상태 스페이스가 없을 때, 호스트 포기의 결과일 때(Service), When there is no CNF status space, as a result of host abandonment (Service

_attn을 경유하여)이다. 이 비트가 셋트되어있는 동안 에는 리퀘Via _attn). Request while this bit is set

스트는 그 RSAP상에서 처리되지 않을 것이다. 상에서 리퀘스트 오Tests will not be processed on that RSAP. Requests from O

브젝트의 처리를 완료했을 때 BSI에 의해 셋트된다.Set by the BSI when the object has finished processing.

RCM_? RCA_? 리퀘스트 완료. BSI가 이 RSAP상에서 리퀘스트 오브젝트의RCM_? RCA_? Request complete. The BSI is responsible for the

처리를 완료했을 때 BSI에 의해 셋트된다.Set by the BSI when processing is complete.

EXC_? RSAP_? 예외. RSAP_? 예외가 발생할 때마다 BSI에 의해 셋트된EXC_? RSAP? exception. RSAP? Set by the BSI whenever an exception occurs

다.All.

BRK_? RSAP_? 중단점. RSAP_? 중단점을 검출할 때 BSI에 의해 셋트된BRK? RSAP? Breakpoint. RSAP? Set by the BSI when a breakpoint is detected

다.All.

Req_cfgReq_cfg

판독/기입 Req_cfg 레지스터는 각각의 RSAP를 위한 연산 파라미터로 프로그램된다. 리셋이 이 레지스터에 영향을 미치지 않는다는 점에 주의하십시오. 이러한 레지스터는 예로서 특정 RSAP에 리퀘스트가 적재되지 않았을 때 리퀘스트 사이에서 변경될 수 있다. 따라서, 호스트는 BSI가 REQ 큐(리미트에 의해 정의된 바와 같이)내의 모든 리퀘스트를 완전히 처리했다는 것을 보장해야만 하며, 그 때에는 호스트는 이 레지스터를 변경할 수 있다.The read / write Req_cfg register is programmed with the operational parameters for each RSAP. Note that the reset does not affect this register. Such a register may change between requests, for example, when no request is loaded in a particular RSAP. Thus, the host must ensure that the BSI has fully processed all requests in the REQ queue (as defined by the limit), at which time the host can change this register.

TT1TT1 TT0TT0 PREPRE HLDHLD FCTFCT SATSAT VSTVST FCSFCS

TT[1:0] 전송을 리퀘스트하기 전에 출력 데이터 FIFO에 대한 임계값. 00=8TT [1: 0] Threshold for the output data FIFO before requesting a transmission. 00 = 8

단어, 01=16 단어, 10=64 단어(Rev A에 적용 불가능), 11=128 단어Word, 01 = 16 words, 10 = 64 words (not applicable to Rev A), 11 = 128 words

(Rev A 에 적용 불가능). 임계값에 도달하거나 또는 전체 프레임이(Not applicable to Rev A). The threshold is reached or the entire frame

FIFO에 있을 때 전송이 시작된다.Transmission is initiated when in the FIFO.

PRE 선취/프리스테이지. Req0_cfg에서 이것은 선취 옵션을 프로그램한PRE preemptive / prestage. In Req0_cfg this is a preprogrammed option

다. Req1_cfg에서 이것은 프리스테이지 옵션을 프로그램한다(HLDAll. In Req1 \ cfg this programs the prestage option (HLD

비트와 함께). 선취: PRE=0일 때 RSAP_0상의 리퀘스트는 RSAP_1With a bit). Preemption: When PRE = 0, the request on RSAP_0 is RSAP_1.

상의 리퀘스트를 선취하지 않을 것이다. PRE=1일 때 RSAP_0은Will not preempt requests from the award. When PRE = 1, RSAP_0

RSAP_1을 선취할 수 있다. 프리스테이지: PRE=0 일 때 리퀘스트는RSAP # 1 can be preempted. Prestage: When PRE = 0, the request is

프리스테이지 되지 않을 것이다(HLD 비트가 1일때). PRE=1일 때It will not be prestage (when the HLD bit is 1). When PRE = 1

RSAP_1 리퀘스트는 프리스테이지할 것이다. HLD 비트가 0이면,The RSAP'1 request will prestage. If the HLD bit is 0,

RSAP_1은 프리스테이지할 것이다. RSAP_0은 즉각적인 리퀘스트를RSAP # 1 will prestage. RSAP_0 makes immediate requests

제외하고 항상 프리스테이지한다는 점에 주의하십시오.Note that you always prestage, except.

HLD 유지. HLD=0일 때 이 RSAP상에서 활성인 유효 리퀘스트가 있고, 서Maintain HLD. There is an active request active on this RSAP when HLD = 0.

비스 등급이 비즉각적이며, FIFO내에 데이터가 없고, BSI내로 페치Service class is non-immediate, no data in FIFO, fetched into BSI

된 유효 REQ가 없다면, BSI는 이 RSAP상에서 서비스 기회를 종료시If no valid REQ is specified, the BSI terminates the service opportunity on this RSAP.

킬 것이며, HLD=1일 때에는 리퀘스트가 완료될 때까지 BSI는 서비스If HLD = 1, the BSI will service until the request is completed.

기회를 종료시키지 않을 것이다(THT 또는 TRT가 종료되면 BMAC는 서Will not terminate the opportunity (when TTH or TRT ends BMAC will

비스 기회를 종료시킨다). RSAP_1에서 프리스테이징은 이 비트에Ends the service opportunity). Prestage on RSAP_1

의해서도 영향을 받는다. HLD=0일때 프리스테이징은 PRE 비트에It is also affected by. When HLD = 0, prestage is applied to the PRE bit.

무관하게 인에이블된다(그러나 즉각적인 서비스 등급에 대해서는 그Enabled regardless (but for immediate service class

렇지 않다). HLD=1일 때 프리스테이징은 PRE 비트에 의해 결정된Not so). When HLD = 1, prestaging is determined by the PRE bit.

다. 이 옵션은 링 대역폭을 잠정적으로 낭비할 수 있고, 따라서,All. This option may potentially waste ring bandwidth, so

이 옵션은 주의해서 사용해야 된다. 그러나 RSAP_0상에서 선취This option should be used with caution. But preoccupied on RSAP_0

를 이용할 때에는, 호스트 시스템내에서 대형 버스 또는 인터럽트Can use large buses or interrupts within the host system.

대기를 가지고 조기 토큰 방출을 중지하도록 HLD가 또한 필요할 것HLD will also be needed to hold the atmosphere and stop early token release

이다.to be.

FCT 프레임 제어 투명. 이 비트가 셋트되어 있을 때 FC는 데이터(BEQ.FCT frame control transparent. When this bit is set, the FC returns data (BEQ.

F 디스크럽터가 아님)로부터 발원될 것이다. 리퀘스트 버스트의 각Not from the F descriptor. Each of the request bursts

각의 프레임의 FC 필드는 전송된 FC의 내부 복사를 업데이트시키고,The FC field of each frame updates the internal copy of the transmitted FC,

완전히 확인할 때에는수신된 프레임의 FC에 대하여 비교하는데에 사When fully checking, compare the FC of the received frame.

용된다. FCT=0일 때 수신된 프레임내의 모든 FC 비트는 '양호'로Is used. When FCT = 0, all FC bits in the received frame are 'good'

확인된 프레임을 위해 REQ〈FC〉매치되어야만 한다. FCT=1일 때에REQ <FC> must be matched for the identified frame. When FCT = 1

는 C, L 및 r 비트만 매치되면 된다.Only needs to match the C, L and r bits.

SAT 소스 어드레스 투명. SAT 핀은 이 RSA상에서 리퀘스트를 통해서 구SAT source address transparent. SAT pins can be accessed via requests on this RSA.

동된다. 이것은 적용에 따라서 BMAC SAT 핀 또는 SAIGT 또는 둘다It is moving. This is a BMAC SAT pin or SAIGT or both depending on the application

를 구동할 수 있다(SAT,STRIP 및 FCST는 일반적 목적 프레임-동기식(SAT, STRIP, and FCST are general purpose frame-synchronous

출력 핀). SAT=1일 때에는 완전 확인은 EM 입력 핀의 사용을 요구Output pins). Full verification when SAT = 1 requires use of EM input pin

한다.do.

VST 무효 스트립핑. 스트립 핀은 이 RSAP상에서 리퀘스트를 통해 구동VST void stripping. Strip pin is driven by request on this RSAP

된다. 이것은 적용에 따라 BMAC 스트립 핀 또는 SAT핀도 구동할 수do. This can also drive BMAC strip pins or SAT pins, depending on the application.

있다. 무효 스트립핑은 다음과 같이 작동한다. 현재의 서비스 기have. Invalid stripping works as follows. Current service period

회의 끝에서, 2개의 My_Void 프레임은 BMAC에 의해서 발원되고, 그At the end of the meeting, two My_Void frames are initiated by the BMAC,

BMAC는 My_Void 프레임이 복귀되거나, 토큰이 수신되거나, Other_BMAC returns My_Void frame, receives a token,

Void가 수신되거나 My_Claim 이외의 MAC 프레임이 수신되거나 또는Void received or MAC frame other than My_Claim received

MAC 리셋이 발생될 때까지 스트립핑을 계속한다. 이 서비스 기회Striping continues until a MAC reset occurs. This service opportunity

의 모든 프레임은 이 방법을 사용하여 스트립된다.All the frames in are stripped using this method.

RCS 프레임 체크 시퀀스 디스에이블. 이것이 셋트될 때 BSI는 이 RSAPDisable RCS Frame Check Sequence. When this is set the BSI will return this RSAP

상의 리퀘스트를 통해 FCST 핀을 평가한다. 이것은 적용에 따라서The FCST pin through the request on the board. This depends on the application

BMAC FCST 핀 또는 SAT 또는 SAIGT 핀도 구동한다. Req_efs.FCSIt also drives the BMAC FCST pin or the SAT or SAIGT pin. Req_efs.FCS

비트는 독립적으로 매칭 프레임 확인 기준을 만족시키기 위해 프레Bits are independently predicated to satisfy matching frame check criteria.

임이 유효 FCS를 필요로 하는지 결정한다. 이 비트는 통상적으로Determine if any need a valid FCS. This bit is typically

전달된 프레임에 발생된 FCS를 연결하지 않도록 BMAC를 프로그램하Program the BMAC so that it does not connect the generated FCS to the forwarded frames.

는데 사용된다.It is used to

Req?_efsReq? _Efs

판독/기입 Req?efs 레지스터는 각각의 RSAP상에서 확인되는 프레임에 대해 예상 프레임 상태를 정의한다. 프레임은 매칭 프레임으로써 카운트되기 위해서는 프로그램 기준을 충족시켜야만 한다. 이 레지스터에 의해 정의된 프레임 파라미터에 추가하여, 프레임은 유효 엔딩 디리미터를 가져야만 한다. 이 레지스터는 리셋시에 변경되지 않는다. 매칭되지 않는 프레임이 수신된 때에는 BSI는 리퀘스트를 종료하고 RCM, EXC 및 BRK 어텐션을 발생시킨다. 리퀘스트내의 어떠한 나머지 REQ도 REQ.L 또는 REQ.온리를 만날때까지 페치 된다. 그러면 다음 REQ.제1 또는 REQ.온리에서 재개될 것이다(다른 형태의 REQ는 일관성 고장이 될 것이다).The read / write Req? Efs register defines the expected frame state for the frame identified on each RSAP. Frames must meet program criteria to be counted as matching frames. In addition to the frame parameters defined by this register, the frame must have a valid ending delimiter. This register is not changed at reset. When an unmatched frame is received, the BSI closes the request and generates RCM, EXC and BRK Attention. Any remaining REQ in the request is fetched until it encounters REQ.L or REQ.only. It will then resume at the next REQ.1 or REQ.only (another form of REQ will be a consistency failure).

VDLVDL VFCSVFCS EE1EE1 EE0EE0 EA1EA1 EA0EA0 EC1EC1 ECOECO

VDL 유효 데이터 길이. VDL=1일 때 수신된 확인 프레임은 매칭 확인 기VDL valid data length. The acknowledgment frame received when VDL = 1 is matched to the match verifier.

준을 충족시키는 유효 데이터 길이를 가져야만 한다. VDL=0일때는It must have a valid data length that meets the criteria. When VDL = 0

그렇지 못하다.It is not.

VFCS 유효 FCS.FCS=1일 때 수신된 확인 프레임은 매칭 프레임 확인 기준Acknowledgment frame received when VFCS valid FCS.FCS = 1 is based on matching frame acknowledgment

을 충족시키기 위해 유효 FCS를 가져야만 한다. FCS=1일 때는 그렇Must have a valid FCS to meet Yes, when FCS = 1

지 못하다.I can't.

EE[1:0] 예상 E 인디케이터 선택:00=어떤 것도 좋음, 01=R, 10=S, 11=R|SEE [1: 0] Estimated E indicator selection: 00 = Anything is good, 01 = R, 10 = S, 11 = R | S

EA[1:0] 예상 A 인디케이터 선택:00=어떤 것도 좋음, 01=R, 10=S, 11=R|SEA [1: 0] Estimated A indicator selection: 00 = Anything is good, 01 = R, 10 = S, 11 = R | S

EC[1:0] 예상 C 인디케이터 선택:00=어떤 것도 좋음, 01=R, 10=S, 11=R|SEC [1: 0] Estimated C indicator selection: 00 = Anything is good, 01 = R, 10 = S, 11 = R | S

Ind_attn 및 Ind_notify HA14-15Ind_attn and Ind_notify HA14-15

판독/기입 Ind_attn/notify 레지스터는 ISAP에 의해 발생된 어텐션을 제공한다. 호스트는 어텐션을 발생시키기 위해 어떠한 어텐션 비트도 셋트할 수 있으나, 이것은 어떠한 내부 BST 상태에도 영향을 주지 않는다. 리셋시에 레지스터 둘 다 0으로 지워진다.The read / write Ind_attn / notify register provides the attention generated by ISAP. The host can set any attention bit to generate an attention, but this does not affect any internal BST state. Both registers are cleared to zero upon reset.

RsvdRsvd RsvdRsvd ExCOExCO BRK1BRK1 EXC1EXC1 BRK1BRK1 EXC2EXC2 BRK2BRK2

EXC_? ISAP_? 예외. 리셋시에 지워진다. 이 ISAP상에 예외가 발생될 때EXC_? ISAP? exception. Cleared on reset. When an exception is thrown on this ISAP

BSI에 의해 셋트된다. 그 ISAP상에서의 복사를 마감하기 위해 호Set by the BSI. To close the copy on the ISAP.

스트에 의해셋트될 수도 있다(Ind_gdrlen/Ind_threshold 레지스터It can also be set by the string (Ind \ gdrlen / Ind \ threshold register

를 업데이트시킬 때 편리하다). 셋트되어 있는 동안에는 그 ISAPIt is convenient when updating. The ISAP while it is set

상에서의 복사는 불능이다.Copying over is impossible.

BRK_? ISAP_? 중단점. 리셋시에 지워진다. 이 ISAP상에서 인디케이트BRK? ISAP? Breakpoint. Cleared on reset. Indicator on this ISAP

중단점이 검출될 때 셋트된다. 호스트가 이 비트를 셋트하면 어떤Set when a breakpoint is detected. When the host sets this bit

작동도 취해지지 않는다.No action is taken either.

Ind_InthresholdInd_Inthreshold

Ind_threshold 판독/기입 레지스터는 ISAP 임계 카운터 적재 값으로 프로그램된다. 리셋시에 변경되지 않는다. 이 레지스터는 INSTOP 또는 ISAP의 Ind_attn.EXC 비트가 셋트될 때 적재될 수 있다.The Ind_threshold read / write register is programmed with the ISAP threshold counter load value. It is not changed at reset. This register can be loaded when the Ind_attn.EXC bit of the INSTOP or ISAP is set.

THR[7:0]THR [7: 0]

THR THR=00-FF. 이 값은 SAP이 변경될 때마다 인디케이트 모듈내의 카운THR THR = 00-FF. This value is counted in the indicator module whenever SAP changes.

터내에 적재된다. SAP상에 복사된 각각의 유효 프레임은 카운터를It is loaded in the site. Each valid frame copied onto the SAP counts a counter.

감소시킨다. 카운터가 0에 도달할 때 BOT 비트가 ISAP상태 중단점Decrease. BOT bit is an ISAP state breakpoint when counter reaches zero

어텐션이 발생되고 카운터는 재적재된다.Attention is generated and the counter reloaded.

판독/기입 Ind_mode 레지스터는 공통 ISAP 구성 옵션을 정의한다. 리셋시에 변경되지 않는다. 이 레지스터는 INSTOP이 셋트될 때에만 변경되어야 한다. 그것은 항시(동일)현재 값으로 기입될 수 있다(RSAP_0 상에 한 쇼트(shot)샘플링을 가능하게 하는데 사용된다)The read / write Ind_mode register defines common ISAP configuration options. It is not changed at reset. This register should only be changed when INSTOP is set. It can always be written with the same (current) current value (used to enable one shot sampling on RSAP_0).

SM1SM1 SM0SM0 SKIPSKIP RsvdRsvd BOT1BOT1 BOT2BOT2 BOBBOB BOSBOS

SM[1:0] 소트 모드, 이러한 비트는 BSI가 인디케이트 데이터를 ISAP상에 소SM [1: 0] sort mode, where these bits indicate that the BSI clears indicator data on the ISAP.

트 하는 방법을 결정한다. 00=동기/비동기, 01=내부/외부, 10=헤더Decide how to do this. 00 = synchronous / asynchronous, 01 = internal / external, 10 = header

/info, 11=높은-우선순위/낮은 우선순위 비동기. 더욱 상세한 사항/ info, 11 = High-priority / low priority asynchronous. More details

에 대해서는 서비스 인터페이스 챕터를 참조하기 바란다.See the Service Interfaces chapter for more information.

SKIP 스킵 인에이블. SKIP=0일 때 ISAP_0상에서 스킵핑 디스에이블.SKIP Skip Enable. Disable skipping on ISAP_0 when SKIP = 0.

SKIP=1일 때는 스킵핑 인에이블. 더욱 상세한 사항에 대해서는 서Skip enabled when SKIP = 1. For more details

비스 인터페이스 챕터(인디케이트)를 참조하기 바란다. 이 레지스See the Service Interfaces chapter (indicators). This regis

터에의 기입은 스킵 특성을 증가시킨다.Writing to the data increases the skipping characteristic.

BOT 임계상에서의 중단점. 프레임 카운트 임계로 하여금 ISAP상에 인디Breakpoint on the BOT threshold. Induces Frame Count Threshold Indie on ISAP

케이트 중단점 어텐션을 발생시킬 수 있게 한다. BOT1은 ISAP_1을Allows you to generate a Kate breakpoint attention. BOT1 uses ISAP_1

위한 것이고 BOT2는 ISAP_2를 위한 것이다.And BOT2 is for ISAP # 2.

BOB 버스트 끝에서의 중단점. 버스트 엔드 검출로 하여금 인디케이트Breakpoint at the end of the BOB burst. Enable burst end detection

중단점 어텐션을 발생하게 한다. 세부사항에 대해서는 인디케이트Causes breakpoint attention. Indicate for details

연산 절을 참조하기 바란다.See the operation section.

BOS 서비스 기회상의 중단점. 서비스 기회의 끝이 인디케이트 중단점Breakpoints on BOS Service Opportunities. End of service opportunity indicator breakpoint

어텐션을 발생시키게 한다.It generates an attention.

Ind_cfgInd_cfg

판독/기입 Ind_cfg 레지스터는 각각의 ISAP를 위한 복사 기준을 설정한다. 세부사항에 대해서는 아래에 제공된 서비스 인터페이스 내용의 인디케이트 연산(ISAP 복사 및 소팅)절을 참조하기 바란다. 리셋시에 변경되지 않는다.Read / Write The Ind_cfg register sets the copy criteria for each ISAP. See the section on indicator operations (ISAP copying and sorting) in the Service Interface section below for details. It is not changed at reset.

CC7CC7 CC6CC6 RsvdRsvd CC4CC4 CC3CC3 RsvdRsvd CC1CC1 CC0CC0

CC[7:6] ISAP_0사에서의 복사 제어. 00=복사하지 않는다. 01=어드레스가CC [7: 6] Copy control from ISAP_0 company. 00 = do not copy. 01 = address

식별되고 ∼MFLAG이면 복사한다. 10=어드레스가 식별되고 OR MFLAGCopy if identified and MFLAG. 10 = address is identified and OR MFLAG

이면 복사한다. 11=무조건 복사.If it is, copy it. 11 = Unconditional copy.

CC[4:3] ISAP_1상에서의 복사 제어. ISAP_0상에서의 복사 제어와 동일.CC [4: 3] Copy control on ISAP # 1. Same as copy control on ISAP # 0.

CC[1:0] ISAP_2상에서의 복사 제어. ISAP_0상에서의 복사 제어와 동일.CC [1: 0] Copy control on ISAP # 2. Same as copy control on ISAP # 0.

Ind_hdrlenInd_hdrlen

이 판독/기입 레지스터는 헤더/Info 소트 모드에서의 프레임 헤더의 길이를 정의한다. 8-비트 레지스터에는 헤더내의 32-비트 단어의 수가 적재된다. 프레임 FC는 별도 단어로 기입되기 때문에, 그것은 1로 카운트된다. 예로서, 긴 어드레스를 가진 프레임내의 4바이트의 헤더 데이터 후에 분리시키고자 할 때에, 이 레지스터를 05(1 단어 FC, 1.5 DA, 1.5 SA, 1 HDR_데이타)로 프로그램해야 한다. 레지스터는 4미만의 값으로 적재되어서는 안된다. 만약 4미만의 값으로 적재되면, BSI는 CMDE와 INSTOP를 어텐션을 셋트한다. INSTOP를 셋팅하면 모든 인디케이트 처리를 정지시킬 것이다. 이 레지스터는 소트 모드를 헤더/Info에 셋트시키기 전에 초기화되어야 한다. 헤더는 항상 전체 버스트로서 기입된다는 것을 주목하기 바란다. 리셋시에 변경되지 않는다. 이 레지스터는 INSTOP를 셋팅하면 모든 인디케이트 처리를 정지시킬 것이다. 이 레지스터는 소트 모드를 헤더/Info에 셋트시키기 전에 초기화되어야 한다. 헤더는 항상 전체 버스트로서 기입된다는 것을 주목하기 바란다. 리셋시에 변경되지 않는다. 이 레지스터는 INSTOP 또는 Ind_attn.EXC가 셋트되는 동안에 변경될 수도 있다.This read / write register defines the length of the frame header in the header / Info sort mode. The 8-bit register is loaded with the number of 32-bit words in the header. Because frame FC is written in a separate word, it is counted as one. For example, when trying to separate after 4 bytes of header data in a frame having a long address, this register should be programmed to 05 (1 word FC, 1.5 DA, 1.5 SA, 1 HDR? Data). Registers should not be loaded with less than 4 values. If loaded with a value less than 4, the BSI sets the attention to CMDE and INSTOP. Setting INSTOP will stop all indicator processing. This register must be initialized before setting the sort mode to header / Info. Note that the header is always written as a full burst. It is not changed at reset. This register will stop all indicator processing when INSTOP is set. This register must be initialized before setting the sort mode to header / Info. Note that the header is always written as a full burst. It is not changed at reset. This register may be changed while INSTOP or Ind_attn.EXC is set.

단어로 표시된 헤더 길이[7:0]Header length in words [7: 0]

비교 HAIFCompare HAIF

판독/기입 비교 레지스터는 조건부 기입 메카니즘의 일부로서 사용된다. 리셋시에 0으로 된다.The read / write compare register is used as part of the conditional write mechanism. It becomes 0 at reset.

비교값[7:0]Comparison value [7: 0]

비교 레지스터내의 값은 조건부 기입 레지스터의 기입 액세스와의 비교에 사용된다. 비교 레지스터는 어떤 조건부 이벤트 레지스터의 판독부상에도 적재되거나 또는 그것에 직접 기입하므로써 적재된다. 조건부 기입의 발생시에는, 비교 레지스터내의 대응 비트와 동일한 현재 값을 갖는 비트만이 새로운 값으로 업데이트될 것이다.The value in the compare register is used for comparison with the write access of the conditional write register. The comparison register is loaded on the read portion of any conditional event register or by writing directly to it. In the event of a conditional write, only the bits with the same current value as the corresponding bits in the compare register will be updated to the new value.

DMADMA

5개의 DMA '채널'이 있는데, 2개는 SAP를 전송위한 것이고 3개는 SAP를 수신위한 것이다. 소프트웨어는 초기에는 BSI 레지스터 중에서 몇 개를 적재시켜야 하지만(기본적으로 큐 포인터), 일단 가동되면 BSI 자체가 대부분의 레지스터를 적재시킨다.There are five DMA 'channels', two for sending SAP and three for receiving SAP. The software initially has to load some of the BSI registers (basically a queue pointer), but once enabled, the BSI itself loads most of the registers.

아래의 표 4는 각각의 DMA 채널이 사용하는 작동 레지스터를 요약한다.Table 4 below summarizes the enable registers used by each DMA channel.

표 4Table 4

chch 레펀런스 명칭Reference Name 전송방법Transmission method 00000000 Req1_odu_ptrReq1_dud_ptrReq1_sts_ptrReq1_req_ptrReq1_odu_ptrReq1_dud_ptrReq1_sts_ptrReq1_req_ptr 출력 리퀘스트 ODUs 페칭출력 리퀘스트 ODUs 페칭확인 상태 저장출력 리퀘스트 페칭Output Request ODUs Fetching Output Request ODUs Fetching Confirmation Save State Output Request Fetching 11111111 Req0_odu_ptrReq0_dud_ptrReq0_sts_ptrReq0_req_ptrReq0_odu_ptrReq0_dud_ptrReq0_sts_ptrReq0_req_ptr 출력 리퀘스트 ODUs 페칭출력 리퀘스트 ODUs 페칭확인 상태 저장출력 리퀘스트 페칭Output Request ODUs Fetching Output Request ODUs Fetching Confirmation Save State Output Request Fetching 222222 Ind2_idu_ptrInd2_sts_ptrInd2_psp_ptrInd2_idu_ptrInd2_sts_ptrInd2_psp_ptr 인디케이트 IDUs 저장인디케이트 IDUs 저장PSPs 페칭Save indicator IDUs Save indicator IDUs PPS fetch 333333 Ind1_idu_ptrInd1_sts_ptrInd1_psp_ptrInd1_idu_ptrInd1_sts_ptrInd1_psp_ptr 인디케이트 IDUs 저장인디케이트 IDUs 저장PSPs 페칭Save indicator IDUs Save indicator IDUs PPS fetch 444444 Ind0_idu_ptrInd0_sts_ptrInd0_psp_ptrInd0_idu_ptrInd0_sts_ptrInd0_psp_ptr 인디케이트 IDUs 저장인디케이트 IDUs 저장PSPs 표 3-4 페칭 DMAIndication IDUs Storage Indication IDUs Storage PSPs Table 3-4 Fetching DMA

ABus를 위한 모든 DMA 작동은 우선순위가 지정된다. 버스 리퀘스트의 우선순위는 일반적으로 다음과 같다. 우선순위가 높은 것으로부터 낮은 것으로 명시하였다.All DMA operations for the ABus are prioritized. The priority of the bus request is generally: Priorities are specified from high to low.

1. 리퀘스트 데이터 판독1. Read request data

2. 인디케이트 데이터 기입2. Write indicator data

3. 인디케이트 상태 기입3. Enter Indicator Status

4. 리퀘스트 상태 기입4. Fill in the request status

5. PSP 큐 판독5. PSP Queue Reading

6. 메일박스 액세스6. Mailbox access

7. PTR RAM 연산7. PTR RAM Operation

그러나, 성능을 적정하게 하기 위하여 BSI는 우선순위를 동적으로 변경시킨다.However, in order to moderate performance, the BSI dynamically changes the priority.

서비스 인터페이스Service interface

다음의 내용은 BSI(10)에 의해 제공되는 MAC 사용자 데이터 서비스를 기술한다. 제 1 절은 리퀘스트 서비스, 즉, 호스트-프로그램 레지스터와 RSAP 디스크립터에 의해 정의되는 옵션의 범위를 정의한다. 제 2 절은 호스트가 어떻게 RSAP를 구성하고 작동시키는지를 기술한다. 제 3 및 제 4 절은 ISAP에 대한 처리와 유사한 처리를 제공하는데, 즉, 옵션과 구성/작동을 정의한다. 마지막 절은 상태 발생/스페이스 관리 모듈(16)의 구성 및 작동을 정의한다. 상술한 바와 같이, BSI(10)는 5개의 심플렉스 SAP을 제공한다. 2개의 RSAP(리퀘스트) 및 3개의 ISAP(인디케이트)가 있다. 각각의 SAP은 특정 레지스터의 자체 복사(즉, 구성)를 갖는다. 다음 설명에서, SAP 레지스터가 참조될 속명(generic name)이 사용된다. 예로써, 각각의 RSAP는 구성 레지스터를 갖는다. 2개의 레지스터는 Req0_cfg(RSAP_0)과 Reg1_cfg(RSAP_1)으로 지칭된다. 간단히 하기 위하여, 아래의 내용은 레지스터를 속명으로 지칭하는데, 즉, Reg?_cfg와 같이 지칭한다. 적절한 SAP를 식별하기 위해서 명칭속에 0 또는 1을 대치하면 된다.The following describes the MAC user data service provided by the BSI 10. Section 1 defines a range of options for the request service, that is, defined by the host-program register and the RSAP descriptor. Section 2 describes how the host configures and operates RSAP. Sections 3 and 4 provide processing similar to that for ISAP, ie defining options and configuration / operation. The last section defines the configuration and operation of the status generation / space management module 16. As mentioned above, the BSI 10 provides five simplex SAPs. There are two RSAPs (requests) and three ISAPs (indicators). Each SAP has its own copy (ie configuration) of a particular register. In the following description, the generic name to which the SAP register is referenced is used. By way of example, each RSAP has a configuration register. The two registers are referred to as Req0'cfg (RSAP'0) and Reg1'cfg (RSAP'1). For simplicity, the following refers to registers as generic names, ie Reg? Cfg. To identify the appropriate SAP, you can substitute 0 or 1 in the name.

리퀘스트 서비스는 여러개의 협동하는 스테이트 머신(제 13B도 내지 13F도 참조)으로서 실현된 리퀘스트 머신(14C)( 제 13A도 참조)에 의해 제공된다. 유사하게 인디케이트 서비스는 제 12도와 같이 여러개의 협동하는 스테이트 머신으로서 실현되는 인디케이트 머신(12C)에 의해 제공된다.The request service is provided by the request machine 14C (see also FIG. 13A) realized as several cooperating state machines (see FIGS. 13B to 13F). Similarly, the indication service is provided by the indicator machine 12C, which is realized as several cooperating state machines as shown in FIG.

리퀘스트 서비스Request Service

2개의 리퀘스트 SAP이 있는데, RSAP_0과 RSAP_1이 있으며, 각각 높은 우선순위와 낮은 우선순위를 갖는다. RSAP는 여러 방식으로 맵핑된다. 한 예는 동기식 트래픽을 RSAP_0에 비동기식 RSAP_1에 맵핑시키는데, 그러나 BSI(10)는 어느 RSAP도 이러한 용도에만 국한시키지 않는다. 두개의 RSAP 모두 거의 동일한 기능을 가지므로 다음의 설명은 둘 다에 적용된다. 중요한 차이는 상대적인 우선순위에 기인한 RSAP 사이의 상호작용이다.There are two requests SAP, RSAP'0 and RSAP'1, each with a high priority and a low priority. RSAP is mapped in several ways. One example maps synchronous traffic to RSAP'0 to asynchronous RSAP'1, but the BSI 10 does not limit either RSAP to this purpose. Since both RSAPs have almost the same functionality, the following description applies to both. An important difference is the interaction between RSAPs due to their relative priority.

상술한 바와 같이, 호스트는 4개의 레지스터를 경유하여 RSAP의 작동 특성을 프로그램한다. 2개의 구성 레지스터가 있는데,주식회사Reg? _cfg 레지스터와(보조) Reg?_desc 레지스터가 있고, 어텐션/통보 레지스터쌍이 있으며, Reg_attn 레지스터와 Reg_notify 레지스터가 있다. 큐는 REQ 디스크립터를 이송하는데 사용되며, REQ 디스크립터는 내부 Reg?_desc 레지스터내에 있다.As mentioned above, the host programs the operating characteristics of RSAP via four registers. There are two configuration registers. There are _cfg registers (auxiliary) and Reg? Desc registers, there is an attention / notification register pair, and there are Regnattn registers and Regifynotify registers. The queue is used to transfer REQ descriptors, which are in the internal RegDesk register.

호스트는 CBus 인터페이스를 통하여 Reg?_cfg를 프로그램하므로써 주요작동 파라미터를 위한 RSAP를 구성한다.The host configures RSAP for key operating parameters by programming Reg? Cfg through the CBus interface.

제 13A 도를 참조하면, 출력 리퀘스트를 요구하기 위해서, REQ 디스크립터의 스트림이 REQ 큐를 경유하여 리퀘스트 스테이트 머신(14C)에 전달된다. 큐가 디스크립터를 포함하는한, 리퀘스트 스테이트 머신(14C)은 디스크립터를 계속 페치하고 처리할 것이다.Referring to FIG. 13A, to request an output request, a stream of REQ descriptors is passed to the request state machine 14C via the REQ queue. As long as the queue contains descriptors, the request state machine 14C will continue to fetch and process the descriptors.

각각의 REQ 디스크립터는 출력 리퀘스트 파라미터(내부 Reg?_desc 레지스터내에 적재됨)를 가진 명령 필드와, 포인터 레지스터내에 적재된 위치 필드와, 카운터내에 적재된 프레임 카운트 필드를 포함한다. 확인 상태 오브젝트는 각각의 리퀘스트 오브젝트를 위해 선택적으로 발생될 수 있다.Each REQ descriptor contains an instruction field with an output request parameter (loaded in the internal Reg? Desc register), a position field loaded in the pointer register, and a frame count field loaded in the counter. An acknowledgment state object may optionally be generated for each request object.

어텐션 및 통보 레지스터는 리퀘스트 이벤트의 작동을 정의한다.Attention and notification registers define the behavior of the request event.

출력 리퀘스트의 의미는 다음과 같다.The meaning of the output request is as follows:

출력 리퀘스트{Output request {

8:Req_cfg; /*BSI Reg?_cfg 레지스터내에 적재됨*/8: Req_cfg; / * Loaded in the BSI Reg? Cfgcfg * /

8:Reg_efs; /*Beq상의 나간 프레임 상태*/8: Regefs; / * Out of frame status on Beq * /

3:Reg_attn; /*어텐션*/3: Reg? Attn; / * Attention * /

3:Reg_notify; /*통보할 어텐션*/3: Regnotify; / * Attention to Notify * /

REQ 디스트립터.F; /*REQ-제 1*/REQ descriptor. F; / * REQ-first * /

REQ 디스트립터.M; /*REQ-중간*/REQ descriptor. M; / * REQ-middle * /

To

To

REQ 디스트립터.L; /*REQ-중간*/REQ descriptor. L; / * REQ-middle * /

}}

Req_cfg,efs,attn,notify{Req_cfg, efs, attn, notify {

8:rqopt; */리퀘스트 구성 옵션, RSAP에 의함*/8: rqopt; * / Request configuration option, by RSAP * /

8:Req_efs; */Req상에서 예상된 프레임 상태, RSAP에 의함*/8: Reqefs; * / Expected frame state on Req, by RSAP * /

4:Req_attn; */이 RSAP상의 어텐션, 공유 attn 레지스터*/4: Req_attn; * / Attention on this RSAP, shared attn register * /

4:Req_notify; */통보할 어텐션*/4: Req_notify; * / Attention to Notify * /

REQ{REQ {

6:UID; /*사용자 ID(CNF에 복사됨)*/6: UID; / * User ID (copied to CNF) * /

8:사이즈; /*REQ 부분내의 프레임 수*/8: size; / * Number of frames in REQ part * /

4:/Cnf_cls /*확인 등급*/4: / Cnf_cls / * identification rating * /

8:fc; /*리퀘스트 등급*/8: fc; / * Request level * /

32:loc; /*ODUD 스트림의 위치(또한 F/L 플래그)*/32: loc; / * Location of ODUD stream (also F / L flag) * /

또한:Also:

ODUD{ODUD {

16:사이즈; */loc에서의 ODU 바이트의 수(13비트가 사용됨)*/16: size; * / number of ODU bytes at loc (13 bits used) * /

32:loc; */ODU와 F/L플래그의 위치*/32: loc; * / ODU and F / L Flag Positions * /

Req?_cfgReq? _Cfg

TT1TT1 TT0TT0 PREPRE HLDHLD FCTFCT SATSAT VSTVST FCSFCS

Req?_efsReq? _Efs

VDLVDL VFCSVFCS EE1EE1 EE0EE0 EA1EA1 EA0EA0 EC1EC1 ECOECO

Req_attn 및 Req_notifyReq_attn and Req_notify

USR_0USR_0 RCM_0RCM_0 EXC_0EXC_0 BRK_0BRK_0 USR_0USR_0 RCM_1RCM_1 EXC_1EXC_1 BRK_1BRK_1

REQREQ

RsvdRsvd UIDUID 사이즈size Cnf_clsCnf_cls Rq_clsRq_cls fcfc locloc

Rsvd 비트[31:30]가 유보됨, 0으로 프로그램되어야만 한다.Rsvd bits [31:30] are reserved, must be programmed to zero.

UID[5:0] 호스트(사용자) 정의 ID 필드. 기입된 각각의 CNF는 현재의 REQ.FUID [5: 0] Host (user) definition ID field. Each CNF listed is the current REQ.F

로부터 CNF.UID 필드로 UID 필드를 복사한다.Copy the UID field from the CNF.UID field.

사이즈[7:0] loc에 의해 지적된 ODUD 스트림에 의해 표시된 프레임 수의 카운트.Count of the number of frames indicated by the ODUD stream pointed to by size [7: 0] loc.

Cnf_cls[3:0] Confirm_class[RFIE]. 확인 서비스 등급 값은 아래에 나타내었Cnf_cls [3: 0] Confirm_class [RFIE]. Confirmation grade of service values are shown below

다. 이 필드는 REQ.제 1 또는 REQ.온리 상에서만 샘플링되었다.All. This field was sampled only on REQ. 1 or REQ.

등급은 4개의 비트를 갖는데, 반복:R=0일 때는, REQ의 모든 프레The rank has four bits, repeated: when R = 0, all frames in the REQ

임을 페치한다; R=1일 때는, REQ의 제 1 프레임의 전송을 반복한Fetch that; When R = 1, the transmission of the first frame of the REQ is repeated.

다. Full/Txr: F=0일 때는, 전송기 확인; F=1일 때는, 완전 확All. Full / Txr: when F = 0, check transmitter; When F = 1, complete expansion

인. 중간: I=0일 때는, 중간 CNF 불능;I=1일 때는, 중간 CNF 가sign. Medium: Intermediate CNF disabled when I = 0; Intermediate CNF is disabled when I = 1

능. 끝: E=0일 때는, 끝:CNF 불능, E=1 일때는 끝:CNF 가능.Twill. End: When E = 0, End: CNF disabled; When E = 1, End: CNF enabled.

표 5Table 5

확인 등급Confirm rating

cnf_clscnf_cls 리퀘스트된 등급 확인Check requested grade x000x000 무효 (일관성 고장)Invalid (consistency failure) xx10xx10 무효 (일관성 고장)Invalid (consistency failure) 0x000x00 넌 (확인 안됨, exc상에서 제외)You (unchecked, except on exc) 00010001 Tend (tx 확인, exc상에서 CNF 완료 )Tend (tx check, CNF completed on exc) 00110011 Tint (tx 확인, exc상에서 CNF 완료 중간)Tint (tx check, CNF complete on exc) 01010101 Fend (충분히 확인, exc상에서 CNF 완료 중간)Fend (enough check, complete CNF on exc) 01110111 Tint (충분히 확인, exc상에서 CNF 완료 중간)Tint (enough check, complete CNF on exc) 11001100 넌R (확인 안됨, exc상에서 제외, 반복 프레임)Non-R (unchecked, except on exc, repeating frame) 10011001 Tend R(tx 확인, exc상에서 CNF 완료 int, 반복 프레임)Tend R (tx check, CNF complete int on exc, repeat frame) 10111011 Tint R(tx 확인, exc상에서 CNF 완료, 반복 프레임)Tint R (confirm tx, CNF complete on exc, repeat frame) 11011101 Fend(충분히 확인, exc상에서 CNF 완료, 반복 프레임)Fend (full check, CNF complete on exc, repeat frame) 11111111 Tint R(충분히 확인, exc상에서 CNF 완료 int, 반복 프레임)Tint R (enough check, CNF complete int on exc, repeat frame)

Rq_cls[3:0] 리퀘스트/Release_class.Rq_cls [3: 0] Request / Release_class.

리퀘스트/해제 등급 값이 아래에 도시되었다.Request / release grade values are shown below.

이 필드는 REQ_제 1 또는 REQ.온리에서만 샘플링된다. 확인This field is sampled only in REQ 1 or REQ. Only. Confirm

등급 작동에 관한 상세사항을 위해서는 확인 설명을 참조하기 바Please refer to the verification instructions for details on rating operation.

란다.It is.

표 6Table 6

Rq_clsvalueRq_clsvalue Rq_clsNameRq_clsName 등급형태Grade form THTE/DTHTE / D 토큰포착Token capture 토큰방출Token release 00000000 NoneNone NoneNone nonenone nonenone 00010001 Apr1Apr1 Async pri1Async pri1 EE non-rnon-r non-rnon-r 00100010 Apr2Apr2 Async pri2Async pri2 EE non-rnon-r non-rnon-r 00110011 Apr3Apr3 Async pri3Async pri3 EE non-rnon-r non-rnon-r 01000100 SynSyn SyncSync DD anyany captcapt 01010101 ImmImm ImmedImmed DD nonenone nonenone 01100110 ImrnNImrnN ImmedImmed DD nonenone non-rnon-r 01110111 ImmRImmR ImmedImmed DD nonenone restrrestr 10001000 AsynAsyn AsyncAsync EE non-rnon-r non-rnon-r 10011001 RbegRbeg RestrictedRestricted EE non-rnon-r restrrestr 10101010 RendRend RestrictedRestricted EE restrrestr non-rnon-r 10111011 RcntRcnt RestrictedRestricted EE restrrestr restrrestr 11001100 AlynDAlynd AsyncAsync DD non-rnon-r non-rnon-r 11011101 RbegDRbegD RestrictedRestricted DD non-rnon-r restrrestr 11101110 RendDRendd RestrictedRestricted DD restrrestr non-rnon-r 11111111 RcntDRcntD RestrictedRestricted DD restrrestr restrrestr

-enabled, D=disabled, non-r=non-restricted, restr=restricted, capt=captured-enabled, D = disabled, non-r = non-restricted, restr = restricted, capt = captured

fc[7:0] FC 투명이 가능하지 아니하면 사용될 프레임 제어 필드. 이 필드는fc [7: 0] Frame control field to be used if FC transparency is not available. This field is

OCLM 또는 RQBCN을 가정할 것인지 결정하기 위해 디코드된다. 이It is decoded to determine whether to assume OCLM or RQBCN. this

디코팅딩은 예로서 프레임 제어 투명과 무관하게 항상 활성이다.Decoding is always active regardless of frame control transparency, for example.

이 필드는 확인 시(FC 투명이 없이) 수신된 프레임을 비교하기해 tkThis field compares the received frames upon confirmation (without FC transparency).

용된다.Is used.

loc 위치. 비트[31]=제 1 태그, 비트[30]=최종 태그, 비트[29:28]=유보loc location. Bit [31] = first tag, bit [30] = final tag, bit [29:28] = reservation

,비트[27:2]=ODUD 스트림의 메모리 단어 어드레스. 비트[1:0] 예상Bits [27: 2] = Memory word address of the ODUD stream. Expect bit [1: 0]

00, 체크되지 않음.00, not checked.

ODUDODUD

rsvdrsvd 사이즈size locloc

rsve 유보, 체크되지 않음.rsve Reserved, unchecked.

사이즈[12:0] ODU 내의 바이트 수의 카운트(pate_size내에서). 사이즈가 0이Size [12: 0] Count of the number of bytes in the ODU (in the rate_size). Size is 0

될 수도 있음에 주목하기 바란다.Note that it may be.

loc 위치=비트[31:30]=F-L 플래그. 비트[29:28]=유보. 비트[27:0]=0여의loc position = bit [31:30] = F-L flag. Bits [29:28] = reserved. Bits [27: 0] = 0

메모리 바이트 어드레스.Memory byte address.

CNFCNF

rsrs frafra frsfrs tfctfc cfccfc f-1f-1 UIDUID fcfc cscs RsvdRsvd

rs[3:0] 리퀘스트 상태, [4:code]rs [3: 0] request status, [4: code]

중간middle

[0000] - 넌[0000]-you

[0001] - 선취[0001]-lien

[0010] - Part_done[0010]-Part_done

중단점Breakpoint

[0011] - Service_loss(brkpt)[0011]-Service_loss (brkpt)

[0100] - 유보[0100]-reservation

완료complete

[0101] - Completed_BC[0101]-Completed_BC

[0110] - Completed_OK[0110]-Completed_OK

예외 완료Exception complete

[0111] - Bad_conf[0111]-Bad_conf

[1000] - 언더런[1000]-Underrun

[1001] - Host_abort[1001]-Host_abort

[1010] - Rad_Ringop[1010]-Rad_Ringop

[1011] - MAC_about[1011]-MAC_about

[1100] - 타임아웃[1100]-timeout

[1101] - MAC_reset[1101]-MAC_reset

[1110] - Con_fail[1110]-Con_fail

오류error

[1111] - 내부 또는 치명적 ABus 오류[1111]-Internal or fatal ABus error

fra[3:0] 프레임 속성=[MFLAG AFLAG TC]. BMAC로부터의 MFLAG 0=∼마인, 1=fra [3: 0] frame attribute = [MFLAG AFLAG TC]. MFLAG from BMAC 0 = -mine, 1 =

마인), BMAC로부터의 AFLAG(0=∼DA 매치, 1=DA매치), TC=종료 상태ME), AFLAG (0 = -DA match, 1 = DA match) from BMAC, TC = end status

(11=프레임이 스트립됨, 10=포맷 오류, 01=ED, 00=기타(즉, MAC(11 = Frames Stripped, 10 = Format Error, 01 = ED, 00 = Other (i.e. MAC

리셋 또는 토큰). 이 필드는 완전 확인에 대해서만 유효화다.Reset or token). This field is only valid for complete verification.

frs[7:0] 프레임 상태=[VDL VFCS EAC].VDL=유효 데이터 길이, VFCS=유효FCSfrs [7: 0] frame state = [VDL VFCS EAC] .VDL = valid data length, VFCS = valid FCS

, FCS, E,A,C=제어 인디케이터, 00=넌, 01=R, 10=S, 11=T. 이것은, FCS, E, A, C = control indicator, 00 = non, 01 = R, 10 = S, 11 = T. this is

프레임이 ED로 종료되면 완전 확인에 대해서만 유효하다.If the frame ends with ED, it is valid only for complete verification.

tfc[7:0] 전송된 프레임 카운트. BSI와 BMAC에 의해 성공적으로 전송된 프tfc [7: 0] Frame count transmitted. A program successfully sent by BSI and BMAC

레임 수를 포함한다. 이 필드는 확인 등급에 대해 유효하다.Include the number of layers. This field is valid for the confirmation class.

cfc[7:0] 확인된 프레임 카운트. 이 필드는 완전 확인이 요구될 때에만 유cfc [7: 0] Count of checked frames. This field is only valid if full verification is required.

효하다.Filial

f-1 제 2 단어의 비트[31:30]내의 제 1 및 최종 태그.f-1 First and last tags in bits [31:30] of the second word.

UID[5:0] 비트[29:24]는 현재의 REQ.F/0의 UID 필드로부터 복사된다.The UID [5: 0] bits [29:24] are copied from the UID field of the current REQ.F / 0.

fc[7:0] 확인된 버스트의 최종 프레임의 프레임 제어 필드. 완전확인에 대fc [7: 0] The frame control field of the last frame of the identified burst. For complete verification

해서만 유효하다.Only valid.

cs[5:0] 확인 상태[T R E P U F Ft]. [1:Tx 등급 1: Bad_Ringop 1: 예외cs [5: 0] Acknowledgment status [T R E P U F Ft]. [1: Tx class 1: Bad_Ringop 1: exception

1: Parity_Error 1: 예상되지 않은 프레임 상태 1: Full_Confirm1: Parity_Error 1: Unexpected frame state 1: Full_Confirm

2: Frame_Type]. BMAC에 의해 복귀되는 것처럼 제한에 대해서는2: Frame_Type]. Restrictions, such as returned by BMAC

Tx 등급=0, 또는 비 제한에 대해서는 TxClass=1.Bad_Ringop 비트Tx class = 0, or TxClass = 1.Bad_Ringop bit for non-limiting

는 전송 후에 또는 모든 복귀 프레임이 확인되기 전에 링이 불량The ring is bad after transmission or before all return frames are checked

작동 상태로 될 때 셋트된다. 예외가 발생되면, 예외 비트는 발생Set when in operation. If an exception is raised, the exception bit is raised

생되는 CNF.cx[]내에 셋트될 것이다(주의, EXC 어텐션이 또한 셋트It will be set in the generated CNF.cx [] (Note, EXC Attention is also set

된다). 양호한 프레임에 대해서 페리티 오류=0이며, 패리티 오류do). Parity error = 0, parity error for good frames

와 함께 수신된 프레임에 대해서는 패리티 오류=1이다. 패리티는Parity error = 1 for frames received with. Parity is

if 모드를 포함하여 FC로부터 ED로 체크된다. 플로우가 셋트된다.Checked from the FC to ED, including the if mode. The flow is set.

프레임 상태가 프로그램된 예상 프레임 상태와 매치되지 않을 때에When the frame state does not match the programmed expected frame state

는 예상되지 않은 프레임 상태 비트가 셋트된다(Req?_efs 참조).Is set to an unexpected frame status bit (see Req? Efs).

완전 확인에 대해서만 적용된다. Full_Confirm 비트는 리퀘스트Applies only for complete verification. Full_Confirm Bit Request

가 완전 확인을 위한 것이었을 때에 셋트된다. Frame_Type 비트Is set when is for full verification. Frame_Type bit

는 완전 확인을 완료한 프레임의 형태를 반영하는데, 11=My_Void,Reflects the shape of the frame that has been fully checked, where 11 = My_Void,

10=Other_Void, 01=토큰, 00=기타.10 = Other_Void, 01 = Token, 00 = Other.

리퀘스트 연산Request operation

구성Configuration

리퀘스트 머신(14C)이 작동되기 위해서는 그것의 스페이스 서브채널이 초기화되어야만 했다. 다음에는 리퀘스트 머신(14C)은 RQSTOP 비트를 스테이트 attn 레지스터내에 리셋하고 No_State_Space 비트를 Space_attn 레지스터내에 리셋하므로써 가능해질 수 있다. 다음에는, REQ 큐 리미트가 업데이트되면, 리퀘스트 머신(14C)은 RSAP를 서비스한 것이다. RSAP는 그것의 Req?_cfg 레지스터를 적재하므로써 구성된다. 이 레지스터는 이 RSAP상에서 모든 후속 리퀘스트에 영향을 미친다. 각각의 REQ.F 디스크립터는 Req?_desc 레지스터 온-더-플라이를 적재하며, 따라서 현재의 리퀘스트 오브젝트만에 영향을 미친다.In order for the request machine 14C to operate, its space subchannel had to be initialized. The request machine 14C may then be enabled by resetting the RQSTOP bit in the state attn register and the No_State_Space bit in the Space? Attn register. Next, when the REQ queue limit is updated, the request machine 14C has serviced RSAP. RSAP is configured by loading its Req? Cfg register. This register affects all subsequent requests on this RSAP. Each REQ.F descriptor loads a Req? Desc register on-the-fly, thus affecting only the current request object.

다음의 작동은 리퀘스트 서비스를 시작시킬 것이다.The following operation will start the request service.

1. CNF와 REQ 큐를 위해서 메모리 스페이스를 할당한다.1. Allocate memory space for the CNF and REQ queues.

2. CBus를 경유하여 구성 레지스터를 프로그램한다.2. Program the configuration register via CBus.

3. 초기 REQ를 REQ 큐내에 기입한다.3. Write the initial REQ into the REQ queue.

4. RQSTOP 비트를 State_attn내에 리셋한다.4. Reset the RQSTOP bit in State_attn.

5. NR?S 비트를 Space_attn내에 리셋한다.5. Reset the NR? S bits in Space? Attn.

6. REQ 큐 리미트 레지스터에 기입한다.6. Write to the REQ queue limit register.

다음에는 BSI(10)는 그것이 REQ 리미트에 도달하거나 또는 상태 스페이스를 초과할 때까지 REQ 디스크립터를 페치하고 처리할 것이다. 각각의 리퀘스트 오브젝트가 완료되면, RCM?_attention이 발생되고, CNF 오브젝트가 기입된다(프로그램되었을 때).The BSI 10 will then fetch and process the REQ descriptor until it reaches the REQ limit or exceeds the state space. Upon completion of each request object, an RCM? Attention is generated, and the CNF object is written (when programmed).

작동work

활성적, 유효 리퀘스트Active, valid requests

리퀘스트 머신(14C)은 활성적이고 유효한 리퀘스트를 처리한다. 리퀘스트는 다음과 같을 때에 활성적이다.Request machine 14C processes active and valid requests. Requests are active when:

1. REQ 큐 포인터가 리미트를 통과하지 않았을 때.1. When the REQ queue pointer has not passed a limit.

2. CNF 큐 포인터가 리미트를 도달하지 않았을 때.2. When the CNF queue pointer has not reached the limit.

3. RSAP를 위한 Req_attn . USR 비트가 0일 때.3. Req_attn for RSAP. When the USR bit is zero.

리퀘스트는 다음과 같을 때에 유효하다.Requests are valid when:

1. REQ 파라미터가 허용가능할 때.1. When the REQ parameter is acceptable.

2. Rq_cls가 현재의 링 스테이트와 호환될 때.2. Rq_cls is compatible with the current ring state.

각각의 REQ가 페치되면, Req?_req_prt는 다음의 REQ를 업데이트시킨동시에, 현재의(업데이트되지 않음) 값은 Req?_req_limit와 비교된다. 그들이 만약에 같다면, 최종 큐 REQ는 방금 페치된 것이다. 따라서, 호스트가 Req?_req_Limit에 기입할 때까지 더 이상의 REQ 프리페치는 금지된다.As each REQ is fetched, Req? Req? Prt updates the next REQ, while the current (not updated) value is compared to Req? Req? Limit. If they are the same, the final queue REQ is just fetched. Therefore, no further REQ prefetch is prohibited until the host writes to Req? Req? Limit.

예외가 발생될 때, 리퀘스트 머신(14C)은 CNF를 발생시키고 리퀘스트를 종료시킨다. CNF 큐내에는 상태를 기입할 스페이스가 있어야만 하며, 그렇지 못하면 리퀘스트 머신은 리퀘스트를 완료할 수 없다. 이러한 문제를 피하기 위해서, REQ는 큐내에 적어도 2개의 CNF를 기입할 스페이스가 없을 경우에 처리되지 않을 것이다.When an exception is raised, request machine 14C generates a CNF and terminates the request. There must be space in the CNF queue to write the state to, or the request machine will not be able to complete the request. To avoid this problem, REQ will not be processed if there is no space in the queue to write at least two CNFs.

하나의 리퀘스트가 일단 서비스 불가하게 되면 USR 어텐션은 후속 리퀘스트를 막기 위하여 셋트된다.Once a request is out of service, the USR Attention is set to prevent subsequent requests.

1. 리퀘스트 오브젝트 제 1 REQ가 적재될 때마다, UID, Cnf_cls, Rq_cls 및 FC는 내부Req?_desc 유지 레지스터내에 적재되고, 따라서, 리퀘스트 오브젝트 전체에 대하여 이러한 파라미터를 설정한다. 각각의 REQ(부분)의 제2 단어는 Req?_dud_ptr 레지스터내에 적재된다. 파라미터 중의 어떤 것이라도 허용가능하지 않으면, 리퀘스트는 포기된다.1. Whenever the request object first REQ is loaded, the UID, Cnf_cls, Rq_cls and FC are loaded into an internal Req_desc holding register, thus setting these parameters for the entire request object. The second word of each REQ (part) is loaded into the Req? Dudptr register. If any of the parameters are not acceptable, the request is abandoned.

2. 리퀘스트 Rq_cls가 현재의 링 스테이트에 대하여 체크되며, 만약에 등급 및 링 스테이트가 호환되지 않으면 리퀘스트는 포기된다. 예로서, 링이 작동 불능일때에는 즉각적인 Rq_cls가 표시되어야만 하며, 비즉각적 Rq_cls에 대해서는 링이 작동되어야만 한다.2. Request Rq_cls is checked against the current ring state, and if the class and ring state are incompatible, the request is abandoned. For example, when the ring is inoperative, the immediate Rq_cls should be indicated, and for the non-immediate Rq_cls the ring should be activated.

리퀘스트 처리Request processing

리퀘스트 머신(14C)은 리퀘스트 오브젝트를 판독하며, 선택적으로 확인 오브젝트를 발생시킨다. 성능을 극대화하기 위하여, REQ(또한 그들의 연관 ODUD)는 리퀘스트 머신(14C)에 의헤 프리페치되고, 다르게는-유휴 상태의 버스 사이클을 충전시킨다.Request machine 14C reads the request object and optionally generates a confirmation object. In order to maximize performance, REQ (also their associated ODUD) is prefetched by request machine 14C and charges an otherwise-idle bus cycle.

리퀘스트의 제 1 REQ가 적재될 때 리퀘스트 머신(14C)은 BMAC에 원하는 RQRCLS를 표시하며, RQRCLS는 BMAC에게 적절한 토큰을 포착하도록 명령한다. 한편, 제 1 ODUD는 프리페치되고 Req?_odu_ptr(PTR RAM) 및 Req?_frm_cnt 내부 레지스터내에 적재된다. 프리스테이징이 가능하거나 또는 서비스 기회가 이 RSAP상에 도달했을 때, 제 1 ODU로부터의 데이터는 리퀘스트 버스트 FIFO내로 페치되고 리퀘스트 머신(14C)은 BMAC으로부터의 전송을 요구한다. 전송이 시작될 때(프레임이 위탁된다). ODUD는 비유효/사용됨이라고 표시되며 다음의 ODUD가 페치된다. 이것은 상기 리퀘스트 오브젝트상의 모든 프레임이 전송되었거나, 또는, 리퀘스트를 미완성으로 종료시키는 예외가 발생될 때까지 계속된다. CNF 오브젝트는 만약 이것이 Cnf_cls내에 프로그램되거나 또는 예외가 발생하는 경우에 기입될 것이다. 리퀘스트는 THT가 종료되었는지 안되었는지에 따라서 한번 또는 그 이상의 서비스 기회에 걸쳐 서비스될 수 있다.When the first REQ of the request is loaded, the request machine 14C indicates the desired RQRCLS to the BMAC, which instructs the BMAC to capture the appropriate token. On the other hand, the first ODUD is prefetched and loaded into the Req? Odu? Ptr (PTR RAM) and Req? Frm? Cnt internal registers. When prestaging is possible or a service opportunity arrives on this RSAP, the data from the first ODU is fetched into the request burst FIFO and the request machine 14C requests transmission from the BMAC. When transmission begins (frame is committed). The ODUD is marked invalid / used and the next ODUD is fetched. This continues until all frames on the request object have been sent or an exception is thrown that terminates the request incompletely. The CNF object will be written if it is programmed in Cnf_cls or an exception occurs. The request may be serviced over one or more service opportunities depending on whether or not the THT has expired.

리퀘스트 머신은 두개의 RSAP상에서 동시에 리퀘스트를 처리한다. 그들의 상호작용은 HLD 및 PRE 구성 비트에 의해 결정된다.The request machine processes requests on two RSAPs simultaneously. Their interaction is determined by the HLD and PRE configuration bits.

널(Null)오브젝트Null Object

본 발명의 한 특징에 따라서, 제로 사이즈 필드를 가진 어떤 오브젝트는 리퀘스트 머신(14C)에 의해 지지된다. 리퀘스트는 프레임 카운트내에 0을 가질수 있다. 이것은 데이터를 반드시 보내지 않고도 리퀘스트를 종료시키는데에 대표적으로 사용된다. 예로써, 제한적 대화를 종료시키기 위해서, 0의 프레임 카운트를 가진 REQ.L이 큐될 수 있다. 이것은 리퀘스트 머신(14C)으로 하여금 BMAC에 명시된 등급의 토큰을 포착 및 해제하도록 명령하게 할 것이다. 이것은 아래에 요약되었다.According to one feature of the invention, any object with a zero size field is supported by the request machine 14C. The request can have zeros in the frame count. This is typically used to terminate a request without necessarily sending data. As an example, to terminate a restrictive conversation, REQ.L with a frame count of zero may be queued. This will cause the request machine 14C to instruct to capture and release tokens of the grade specified in the BMAC. This is summarized below.

1. 사이즈=0인 REQ. 제1: BSI(10)는 REQ 디스크립터 필드를 래치하고, 다음1. REQ with size = 0. 1: The BSI 10 latches the REQ descriptor field, and then

에는 다음의 REQ를 페치한다. RQRCLS는 BMAC으로 보내지만, RQRDY는 부Fetches the following REQ: RQRCLS is sent to BMAC, but RQRDY is negative

정된 상태로 유지된다.It remains fixed.

2. 사이즈=0인 REQ. 중간: BSI(10)는 다음의 REQ를 페치한다.2. REQ with size = 0. Middle: The BSI 10 fetches the next REQ.

3. 사이즈=0인 REQ. 온리: BSI(10)는 적절한 토큰의 포착을 요구하며, 포착3. REQ with size = 0. Only: The BSI 10 requires the capture of an appropriate token,

시에는 RQFINAL을 가정하고 리퀘스트를 종료시킨다.In the case of RQFINAL, the request is terminated.

4. 사이즈=0인 REQ. 최종: BSI(10)는 토큰을 포착하며, RQFINAL을 설정하고4. REQ with size = 0. Final: BSI 10 captures tokens, sets RQFINAL

다음에는 리퀘스트 완료를 표시한다(리퀘스트 오브젝트는 제로 프레임을Next, the request is marked complete (the request object returns zero frames).

가질 수 있다).Can have).

ODUD는 또한 제로 바이트 카운트를 가질 수도 있다. 이것은 고정 프로토콜 스택에 유용하다. 한 층이 인출될 수 있으며, 만약에 프레임에 더할 데이터가 없다면 그 층은 바이트 카운트를 0으로 하여 ODUD를 목록에 더할 수 있다. 리퀘스트와 달리, ODUD 오브젝트는 적어도 4 바이트를 가져야만 한다(짧은 어드레스에 대해서).The ODUD may also have a zero byte count. This is useful for fixed protocol stacks. A layer can be fetched, and if there is no data to add to the frame, the layer can add the ODUD to the list with a byte count of zero. Unlike requests, ODUD objects must have at least 4 bytes (for short addresses).

리퀘스트 예외Request exception

예외는 리퀘스트를 종료시킨다. 예외는 외부 오류(BMAC, 링,ABus)의 결과로서 발생될 수 있는데, 즉, 리퀘스트 오브젝트내의 호스트 오류(일관성 고장), 스테이트 스페이스의 부족, 또는 불량한 링 스테이트(작동적/비작동적)로부터 발생된다.The exception terminates the request. Exceptions can be thrown as a result of external errors (BMAC, ring, ABus), i.e. from host errors (consistency failures) in the request object, lack of state space, or bad ring states (operational / inoperative). do.

한가지 형태의 호스트 오류는 리퀘스트 오브젝트내의 비일관성이다. 리퀘스트 머신(14C)은 REQ 및 ODUD 스트림내의 비일관성을 체크한다. 다음의 이벤트는 일관성 고장으로서 검출된다.One type of host error is inconsistency in the request object. Request machine 14C checks for inconsistencies in the REQ and ODUD streams. The following event is detected as a consistency failure.

1. 비유효 Cnf_cls를 가진 REQ.F(확인 등급 테이블에 도시된 바와 같음).1. REQ.F with invalid Cnf_cls (as shown in the confirmation class table).

2. Rq_cls=0을 가진 REQ.F2. REQ.F with Rq_cls = 0

3. 전의 REQ가 (REQL;|REQ.O)이 아니었을 때의 REQ.F3. REQ.F when the previous REQ was not (REQL; | REQ.O)

4. 전의 REQ가 (REQ.L|REQ.O)이었을 때, REQ.F가 아닌 REQ4. When the previous REQ was (REQ.L | REQ.O), the REQ rather than the REQ.F

5. 전의 ODUD가 (ODUD.L|ODUD.O)이 아니었을 때의 ODUD.F5. ODUD.F when previous ODUD was not (ODUD.L | ODUD.O)

6. 전의 ODUD가 (ODUD.L|ODUD.O)이었을 때, ODUD.F가 아닌 ODUD6. When the previous ODUD was (ODUD.L | ODUD.O), ODUD instead of ODUD.F

7. 제로 바이트 카운트를 가지고, 그 최종 플래그는 셋트된 ODUD.7. With zero byte count, the last flag is set ODUD.

일관성 고장이 발생되면, 리퀘스트는 적절한 상태로 종료시킨다. 일관성 고장에 뒤따라서, 리퀘스트 머신(14C)은 현재의 오브젝트(REQ 또는 ODUD)의 끝을 찾는다. 만약에 현재의 디스크립터가 끝이 아니면(최종 비트가 셋트되지 않음), 리퀘스트 머신(14C)은 끝을 검출할때까지 후속 디스크립터를 페치한다. 다음 디스크립터는 그러면 오브젝트의 처음이어야 한다(즉, 상술한 바와 같이 일관성 규칙을 따른다).If a consistency failure occurs, the request terminates in the proper state. Following a consistency failure, request machine 14C finds the end of the current object (REQ or ODUD). If the current descriptor is not the end (the last bit is not set), the request machine 14C fetches subsequent descriptors until it detects the end. The next descriptor must then be the beginning of the object (ie, follow the consistency rule as described above).

확인Confirm

호스트는 리퀘스트 오브젝트상에서 확인을 요구할 수 있다. 리퀘스트 머신(14C)은 확인 상태를 2가지 방법으로 보고한다. 즉, 어텐션과 CNF디스크립터를 경유해서 보고한다. 어텐션은 항상 리퀘스트 머신(14C)에 의해 사용되며, 따라서, 호스트는 필요시에 통보 레지스터를 사용해야 한다.The host can request confirmation on the request object. Request machine 14C reports the confirmation status in two ways. That is, via the attention and the CNF descriptor. Attention is always used by the request machine 14C, so the host must use the notification register when needed.

CNF 디스크립터는 예외가 발생되거나(Cnf_cls와 무관하게), 리퀘스트가 완료되거나(엔드 또는 int Cnf_cls에 대하여), 또는 중단점이 발생될 때(int Cnf_cls에서만)기입될 것이다. CNF기입은 REQ.Cnf_cls의 비트[1:0]를 경유하여 제어된다. 비트 0(끝)은 예외/완료시에 CNF 기입을 가능하게 하며, 비트 1은 중단점(Int)에서 CNF 기입을 가능하게 한다.The CNF descriptor will be written when an exception is thrown (regardless of Cnf_cls), when the request completes (for end or int Cnf_cls), or when a breakpoint occurs (in int Cnf_cls only). CNF write is controlled via bits [1: 0] of REQ.Cnf_cls. Bit 0 (end) enables CNF write on exception / completion, and bit 1 enables CNF write at breakpoint Int.

수행된 확인의 유형은 REQ.Cnf_cls의 비트 2를 경유하여 선택된다. 0에 셋트되었을 때에는, 전송기 확인이 수행되고, 비트가 1에 셋트되었을 때에는 완전 확인이 수행된다. 전송기 확인은 성공적으로 전송된 프레임 수를 단순히 카운트한다. 완전 확인은 올바르게 전송된 프레임의 수와 올바르게 확인된 프레임의 수를 카운트한다. 올바르게 확인된 프레임이라는 것은 다음과 같은 매칭 기준을 만족시키는 프레임이다.The type of verification performed is selected via bit 2 of REQ.Cnf_cls. When set to 0, transmitter acknowledgment is performed; when the bit is set to 1, full acknowledgment is performed. Transmitter acknowledgment simply counts the number of frames successfully transmitted. A complete check counts the number of correctly transmitted frames and the number of correctly verified frames. A correctly identified frame is a frame that satisfies the following matching criteria.

매치=∼Void 및 END 및 FC_Match 및 Our_SA 및 EFS_of 및 VDL 및 parity_okMatch = ~ Void and END and FC_Match and Our_SA and EFS_of and VDL and parity_ok

여기서:here:

Void = 무효 프레임(BSI에 의해 무시됨).Void = Invalid frame (ignored by BSI).

ED = 프레임은 종료 디리미터를 갖는다.ED = Frame has an end delimiter.

FC_Match = 송신 및 수신된 프레임 FC의 선택된 비트는 같다.FC_Match = The selected bits of the transmitted and received frame FC are the same.

OurSA = MFLAG|SAT 및 EMOurSA = MFLAG | SAT and EM

EFS_ok = FCS_ok 및 EE_ok 및 EC_ok 및 EA_okEFS_ok = FCS_ok and EE_ok and EC_ok and EA_ok

FCS_ok = Req_EFS.FCS|(∼Req_EFS.FCS 및 프레임은 유효FCS_ok = Req_EFS.FCS | (∼Req_EFS.FCS and frames are valid

FCS를 갖는다.Have FCS.

VDL = 프레임이 유효 데이터 길이를 갖는다.VDL = frame has a valid data length.

parity ok = FC로부터 ED까지의 모든 바이트가 양호한 패리티를 갖parity ok = all bytes from FC to ED have good parity

는다(if 모드. 플로우)(If mode. Flow)

확인된 프레임 카운터는 제 1 리퀘스트 버스트 프레임이 BMAC에 의해 코미티드된 후에 Our_SA를 가진 프레임이 수신된 때에 시작된다. 그것은 모든 프레임이 전송되고 전송 및 확인된 프레임 카운트가 동일하거나, MACRESET이거나, 링이 작동가능 상태로부터 비작동상태로 바뀌었거나, 불량 프레임이 수신되었거나(아래를 참조바람), 비매칭 프레임이 수신되었거나(상기 기준을 만족시키지 못함), 토큰이 수신되었을 때에 종료된다. 무효 및 My_Void 프레임은 무시된다는 것을 주목하기 바란다.The confirmed frame counter starts when a frame with Our_SA is received after the first request burst frame is committed by the BMAC. It may be that all frames have been transmitted and the frame counts sent and acknowledged are the same, MACRESET, ring has been disabled from enabled, bad frames are received (see below), or mismatched frames are received. Is not satisfied (the above criteria are not met), or terminates when a token is received. Note that invalid and My_Void frames are ignored.

Rea?_cfg.SAT가 선택되고 완전 확인이 요구될 때, 확인은 프레임 끝이 가정된 MFLAG|EM이 검출될 때 시작된다. EM은 외부 어드레스 매칭 회로로부터 입력된 SA_match이다.When Rea? Cfg.SAT is selected and a full acknowledgment is required, the acknowledgment is started when an MFLAG | EM is detected, assuming the end of the frame. EM is SA_match input from the external address matching circuit.

불량 프레임은 스트립된 프레임 또는 포맷 오류가 있는 프레임, 또는 패리티 오류(모드. 플로우가 셋트된 때)를 가진 프레임이다. BMAC로부터의 정보상의 패리티 체크는 FC로부터의 ED까지의 프레임을 포함한다.A bad frame is a frame with a stripped frame or a format error, or a frame with a parity error (when a mode. Flow is set). The parity check on the information from the BMAC includes frames from the FC to the ED.

REQ.Cnf_cls의 MS 비트는 REQ의 제 1 프레임의 리페칭을 가능하게 한다. 이것은 정상 작동을 위해서 지워져야 한다. 리페칭이 가능해지면, BSI는 리퀘스트가 포기될 때가지 제 1 프레임을 계속적으로 페치하고 전송 한다.The MS bit of REQ.Cnf_cls enables refetching of the first frame of REQ. This must be cleared for normal operation. If refetching is enabled, the BSI continuously fetches and transmits the first frame until the request is abandoned.

리퀘스트 상태 코드Request status code

CNF내로 복귀된 rs[] 필드는 4-비트 상태 코드이다. 이것은 우선순위가 엔코드된 상태 값이다. 이 값들은 다음의 내용을 뜻한다.The rs [] field returned into CNF is a 4-bit status code. This is the priority value encoded state value. These values mean the following:

넌 상태가 아님. BSI(10)는 이 상태를 기입하지 않는다. 이 엔You are not in a state. The BSI 10 does not write this state. Yen

엔코딩은 NULL 또는 비유효 CNF를 식별하기 위하여 소프트 웨The encoding uses software to identify NULL or invalid CNFs.

어에 의해 사용될 수도 있다.It may also be used by a fish.

선취 RSAP_1이 서비스되고 있었으나, 더욱 높은 우선순위의 리퀘스Preemption RSAP'1 was in service, but a higher priority request

터가 RSAP_0상에 활성화되었다. RSAP_1은 R5A0 다음에 서비Is activated on RSAP_0. RSAP_1 is serviced after R5A0

스될 것이다. 기입 중간 CNF 가 명령되었을 때에만 발생된다Will be replaced. Occurs only when a write intermediate CNF is commanded.

(REQ.Cnf_cls[1]이 셋트된다).(REQ.Cnf_cls [1] is set).

Part_done BSI(10)가 리퀘스트를 서비스하지만, BSI가 토큰을 유지할 수Part_done BSI (10) services the request, but the BSI cannot keep the token.

없고 (HLD 옵션 참조) 또한 리퀘스트 파트의 최종 프레임이 전(See the HLD option) and the final frame of the request part

송되었을 때에, BSI(10)는 Part_done상태를 가지고 CNF를 기When sent, the BSI 10 has the PartDone state and writes the CNF.

입할 것이다(CNF 발생이 가능하다면).Will be used (if CNF generation is possible).

Service_loss THT가 가능한 상태에서 리퀘스트 동안에 THT가 종료된다. 기THT is terminated during the request with Serviceloss THT enabled. group

입 중간 CNF가 명령되었을 때에만 발생된다(REQ.cmd[1]이 셋트Generated only when an intermediate intermediate CNF is commanded (REQ.cmd [1] is set).

된다). 중단점이 발생될 것이다.do). Breakpoints will occur.

Completed_bc 비콘(beacon)스테이트에서 전달될 때, 이 스테이트는 BMAC가 MyWhen delivered from the Completed bbc beacon state, this state is defined by BMAC as My.

_Beacon을 수신할 때 복귀된다. 클레임 스테이트에서 전달될Return when receiving a Beacon. To be delivered in the claims state

때는, 이 상태는 BMAC가 클레임 과정에서 이겼을 때 복귀된다.This state is returned when the BMAC wins the claim process.

Completed_ok 양호한 상태로 통상적 완료 Bad_conf 전송된 프레임을 확인Completed_ok Checks for frames that were sent normally normal. Bad_conf.

하는 동안에 오류가 있었다. 이것은 리퀘스트로 하여금 이 상There was an error. This makes the request

태 또는 보다 높은 우선순위중의 하나(아래의 상태)로 완료되Status or one of the higher priorities (status below).

도록 하게 한다. 확인 오류의 유형은 MACRST, 링-작동 변경,Let's do it. Types of verification errors include MACRST, Ring-Operation Change,

불량 프레임을 수신하는 Other_Void/My_Void/토큰의 수신,Receipt of Other_Void / My_Void / Token to receive bad frame,

또는 프로그램 예상 프레임 상태에 매치되지 않는 프레임을 수Or frames that do not match the expected program frame state

신하는 것이다.It is to worship.

언더런 리퀘스트 데이터가 BMAC에 제공되도록 요구되었을 때 리퀘스트Requests when underrun request data is required to be provided to BMAC

데이터에 아무런 데이터가 없었다.There was no data in the data.

Host_about 호스트가 Service_attn 레지스터내의 ABR? 비트를 지움으로써Host_about The host has ABR? In the Service_attn register. By clearing the beat

직접적으로 또는 CNF큐내의 불충분한 엔트리를 가지므로써 간By having insufficient entries either directly or in the CNF queue.

접적으로 이 RSAP상에서 리퀘스트를 포기하였다.As a result, the request was abandoned on this RSAP.

Bad_Ringop 리퀘스트는 현재의 링 작동 스테이트에 부적절하였던 Rq_clsThe Bad_Ringop request is an Rq_cls that was inappropriate for the current ring activation state.

로 적재되었다.Was loaded.

MAC_abort BMAC는 리퀘스트를 포기하였고 TXABORT를 가정하였다. 이것은MAC_abort BMAC abandoned the request and assumed TXABORT. this is

인터페이스 패리티 오류로부터, 또는 전송된 프레임이 FC 체크FC check from interface parity error or transmitted frame

를 받지 못하였을 때에, 또는 비콘 스테이트에서 전송될 때When not received, or when sent from the beacon state

MAC 프레임을 수신하였을 때에 발생될 수 있다. 원인의 정확Can occur when a MAC frame is received. Exact cause

한 설명은 BMAC 기능 명세서를 참조하기 바란다. 이 상태는See the BMAC Functional Specification for a description. This state

BSI가 비콘 스테이트내에서 전송하는 동안에 Other_Beacon을While the BSI is transmitting in the Beacon State,

BMAC가 수신할 때에, 또는 BSI가 클레임 스테이트에서 전송하When the BMAC receives, or when the BSI transmits in the claim state

는 동안에 클레임 과정이 분실되었을 때에 복귀된다.Is returned when the claim process is lost.

타임 아웃 THT가 불능인 상태에서 리퀘스트 동안에 TRT가 종료되었다.TRT was terminated during the request with timeout THT disabled.

리퀘스트는 포기된다.The request is abandoned.

MAC_reset BMAC는 MACRST를 가정하였다.MAC_reset BMAC assumes MACRST.

Con_fail 일관성 고장. REQ 또는 ODUD 스트림내에 일관성 고장이 있었Con_fail consistency failure. There was a consistency failure in the REQ or ODUD stream.

다.All.

오류 내부 논리부 오류 또는 치명적 ABus 오류가 있었다(즉, CNF를There was an internal logic error or fatal ABus error.

기입하는 동안에).While filling in).

RSAP 상호작용RSAP interaction

프리스테이징 및 선취 구성 옵션에 의해 결정되는 RSAP 사이의 상호작용 이 있다.There is an interaction between RSAP, which is determined by prestaging and preemption configuration options.

리퀘스트 머신(14C)은 양쪽 RSAP상에서 REQ를 찾으면서 스타트 스테이트에 있다. 유효 REQ가 적재되자마자, 리퀘스트 머신은 BMAC에 토큰 포착 리퀘스트를 발행한다. 프리스테이징이 가능해지면 머신은 스테이징 스테이트로 즉각 이동될 것이다. 이것은 제 1 ODU를 리퀘스트 버스트 FIFO로 가져온다. 프리스테이징이 가능해지지 않으면, 리퀘스트 머신(14C)은 제 1 프레임을 버스트 FIFO내에 스테이징하기 전에 적절한 토큰이 포착될 때까지 기다린다. 토큰이 일단 포착되면, 리퀘스트 머신(14C)은 상기 RSAP상에 프레임의 전송을 시작한다.Request machine 14C is in start state looking for REQ on both RSAPs. As soon as a valid REQ is loaded, the request machine issues a token capture request to the BMAC. Once prestaging is enabled, the machine will move to the staging state immediately. This brings the first ODU to the request burst FIFO. If prestaging is not enabled, request machine 14C waits for the appropriate token to be captured before staging the first frame into the burst FIFO. Once the token is captured, request machine 14C starts sending a frame on the RSAP.

다른 시나리오에서, 리퀘스트 머신(14C)은 RSAP_1 프레임을 프리스테이지할 수도 있고 토큰이 포착되기 전에 RSAP_0 REQ를 식별할 수도 있다. 이 경우에 리퀘스트 머신(14C)은 FIFO내의 스테이지된 데이터를 무시한다. RSAP_0 REQ가 완료될 때, 리퀘스트 머신(14C)은 RSAP_1 리퀘스트 처리를 재개하며, RSAP_1 리퀘스트에서 RSAR_1은 리퀘스트 머신(14C)을 떠나는데, 즉, 데이터는 분실되지 않는다.In another scenario, request machine 14C may prestage the RSAP'1 frame and identify the RSAP'0 REQ before the token is captured. In this case request machine 14C ignores the staged data in the FIFO. When the RSAP'0 REQ is completed, the request machine 14C resumes the RSAP'1 request processing, and in the RSAP'1 request, RSAR'1 leaves the request machine 14C, i.e., no data is lost.

또 다른 시나리오에서, 리퀘스트 머신(14C)은 RSAP_0 REQ가 활성화될 때 RSAP_1 REQ를 서비스한다. 선취가 가능해지지 않으면, 리퀘스트 머신(14C)은 인터럽트 되지 않은 상태로 계속된다. 그러나, RSAP_0상에서 선취가 가능해지면, 리퀘스트 머신(14C)은 현재의 프레임을 RSAP_1상에 전송하는 것을 종료하고 토큰을 해제하여 스타트 스테이트로 복귀한다. 이것은 RSAP를 다시 우선순위화하는 효과를 가지며, 따라서, 다음 서비스 기회에는 RSAP_0이 제일 먼저 나갈수 있도록 보장한다. RSAP_0이 서비스되었을 때, RSAP_1은 RSAP_1이 떠났던 장소에서 픽업되고, 역시 데이터를 분실하지 않는다.In another scenario, request machine 14C services an RSAP'1 REQ when RSAP'0 REQ is activated. If preemption is not possible, the request machine 14C continues uninterrupted. However, when preemption is enabled on RSAP'0, request machine 14C ends the transmission of the current frame on RSAP'1, releases the token and returns to the start state. This has the effect of reprioritizing RSAP, thus ensuring that RSAP_0 is the first to go on the next service opportunity. When RSAP'0 is serviced, RSAP'1 is picked up from the place where RSAP'1 left, and no data is lost.

프리스테이징은 즉각적인 리퀘스트/해제 등급 없이 리퀘스트에만 적용된다. 프리스테이징은 항상 RSAP_0을 위해 가능하며, RSAP_1상에서 프로그램가능한 옵션이다. 선취는 RSAP_1에 적용가능하지 않으며 RSAP_0상의 프로그램가능한 옵션이다. BSI는 현재의 프레임이 수행되면 항상 현재의 RSAP상의 다음의 이용가능한 프레임을 FIFO내에 스테이지한다.Prestage only applies to requests without an immediate request / release level. Prestage is always available for RSAP'0 and is a programmable option on RSAP'1. Preemption is not applicable to RSAP'1 and is a programmable option on RSAP'0. The BSI always stages the next available frame on the current RSAP in the FIFO once the current frame is performed.

오류 및 예외Errors and exceptions

리퀘스트 이벤트 논리의 사용법은 Req_cfg 옵션에 의해 복잡해진다. 아래의 식과 내용은 각각의 기능을 독립적으로 설명하고자 한다(그러나 명백히 상호작용이 있다).The use of request event logic is complicated by the Req \ cfg option. The expressions and content below attempt to describe each function independently (but obviously there is interaction).

리퀘스트 머신(14c)으로부터 5개의 출력이 있는데, 즉, State_attn.ERR, Req_attn.RCM,Req_attn.BRK,Req_attn.EXC 및 CNF이다.There are five outputs from the request machine 14c: State? Attn.ERR, Req? Attn.RCM, Req? Attn.BRK, Req? Attn.EXC, and CNF.

오류error

BSI가 CNF를 기입하려고 시도하는 동안에 ABus 오류를 갖는 때에 Stat_attn.ERR가 셋트된다. 오류는 또한 request-complete 상태를 발생시키며, 아래에 설명된 바와 같은 작용이 발생된다. RQRSTOP 비트가 또한 셋트되며 리퀘스트 머신이 정지된다.Stat_attn.ERR is set when the BSI has an ABus error while attempting to write a CNF. The error also generates a request-complete state, with the action described below. The RQRSTOP bit is also set and the request machine is stopped.

예외exception

예외는 항상 Req_attn.EXC를 발생시키며, 확인 상태를 기입한다. 예외는 또한 E 비트가 CNF.cs[]내에 셋트되게 한다. 예외는 request-complete상태를 발생시키며, 다음에 설명된 바와 같은 작용이 발생된다.The exception always raises Req? Attn.EXC and writes the confirmation status. The exception also causes the E bit to be set in CNF.cs []. The exception raises a request-complete state, and the action described below occurs.

완료complete

완료는 리퀘스트 오브젝트가 정상적으로 완료되거나, 오류가 발생되거나, 완료 예외가 발생될 때에 발생된다. 완료는 Req_attn.RCM을 발생시킨다. 완료는 또한 BSI내에서 완전히 완료된 REQ 오브젝트를 표시한다.Completion occurs when the request object completes normally, an error occurs, or a completion exception occurs. Completion generates Req'attn.RCM. Completion also indicates a REQ object that is fully completed within the BSI.

중단점Breakpoint

중단점은 CNF가 기입될 때마다 발생된다.Breakpoints are generated whenever a CNF is written.

CNFCNF

CNF는 멀티-파트이며, 예로써, Service-loss CNF 가 기입될 때 CNF Middle이 기입될 수 있다. 파이프라이닝에 기인하여, BSI는 최종 바로 전의 CNF 엔트리에의 기입한 내용을 검출한 후에 2개의 CNF 까지 기입할 수 있다. 이러한 이유로, 호스트는 항상 CNF 큐 리미트를 이용가능 스페이스보다 적은 디스크립터가 되도록 정의해야만 한다.The CNF is multi-part and, for example, the CNF Middle can be written when the Service-loss CNF is written. Due to the pipelining, the BSI can write up to two CNFs after detecting the writing to the CNF entry just before the last one. For this reason, a host must always define CNF queue limits to be less descriptors than available space.

상기한 모든 내용은 다음의 식으로 요약된다.All of the above is summarized by the following equation.

ERR = internal_error|ABus_errorERR = internal_error | ABus_error

EXC = 예외EXC = exception

RCM = normal_complete|EXE|ERRRCM = normal_complete | EXE | ERR

BRK = CNF기입BRK = CNF write

CNF = CNF_enabled & normal_complete|EXCCNF = CNF_enabled & normal_complete | EXC

리퀘스트 머신(14C)을 위한 상세한 상태 다이어그램이 제 24도에 제공되었다.Detailed state diagrams for request machine 14C are provided in FIG.

인디케이트 서비스Indicator Service

3개의 인디케이트 ISAP가 있는데, 즉, ISAP_0, ISAP_1, ISAP_2가 있으며, 모두 동등한 우선순위를 갖는다. RSAP와는 달리, 각각의 ISAP는 약간 다른 기능을 갖는다. ISAP는 복사 기준을 위해 구성 레지스터를 공유하며, 모든 ISAP를 위해 중단점을 결정하는 모든 레지스터를 역시 공유한다.There are three indicator ISAPs: ISAP'0, ISAP'1, and ISAP'2, all of which have equal priority. Unlike RSAP, each ISAP has a slightly different function. ISAP shares configuration registers for copy criteria, and also shares all registers that determine breakpoints for all ISAPs.

사용자는 ISAP를 구성하기 위하여 2개의 공유 ISAP 모드/구성 레지스터를 프로그램한다. Ind_mode는 ISAP를 위해 공통 작동 모드를 설정한다. Ind_cfg 레지스터는 각각의 ISAP를 위해 복사 기준을 설정한다. Ind_threshold는 어텐션이 발생되기 전에 ISAP_1 또는 ISAP_2상에서 수신될 수 잇는 프레임의 최대수를 셋트한다. Ind_attn 및 Ind_notify는 인디케이트 이벤트 논리부의 연산을 정의한다. 만약에 헤더/Info소트 모드가 선택된다면, Ind_hdrlen 레지스터는 헤더의 길You program two shared ISAP mode / configuration registers to configure ISAP. Ind_mode sets the common operating mode for ISAP. The Ind \ cfg register sets the copy criteria for each ISAP. Ind_threshold sets the maximum number of frames that can be received on ISAP # 1 or ISAP # 2 before an attention occurs. Ind_attn and Ind_notify define the operation of the indicator event logic. If the Header / Info Sort mode is selected, the Ind_hdrlen register is the length of the header.

이를 단어로 한정한다(FC를 한 단어로 카운트한다).Limit this to words (counting FC as one word).

ISAP 연산의 의미는 다음과 같다.The meaning of the ISAP operation is as follows.

인디케이트{Indicator {

7:Ind_mode /*인디케이트 구성 옵션*/7: Ind_mode / * indicator configuration option * /

6:Ind_cfg; /*ISAP 복사 제어*/6: Ind_cfg; / * ISAP copy control * /

8:Ind_threshold; /*중단점 카운터 임계*/8: Ind_threshold; / * Endpoint Threshold * /

8:Ind_hdrlen; /*헤더 부분의 길이*/8: Ind_hdrlen; / * Length of the header part * /

6:Ind_attn; /*어텐션*/6: Ind_attn; / * Attention * /

6:Ind_notify; /*통보할 어텐션*/6: Ind_notify; / * Attention to Notify * /

BSI(10)는 IDUD(상태와 함께)를 다음과 같이 발생시킨다.The BSI 10 generates an IDUD (with state) as follows.

IDUDIIDUDI

4:is; /*인디케이트 상태*/4: is; / * Indication status * /

4:fra; /*프레임 속성*/4: fra; / * Frame properties * /

8:frs; /*프레임 상태*/8: frs; / * Frame state * /

1:vcopy; /*VCOPY는 BMAC에 보내진다*/1: vcopy; / * VCOPY is sent to BMAC * /

2:Rsvd; /*유보-0에 셋트된다*/2: Rsvd; / * Set to reservation-0 * /

13:사이즈; /*loc에 의해 지적되는 IDU 바이트의 카운트*/13: size; / * count of IDU bytes pointed to by loc * /

32:loc; /*F-L 플래그 및 IDU의 위치*/32: loc; / * Location of F-L flag and IDU * /

Ind_modeInd_mode

SM1SM1 SM0SM0 SKIPSKIP RsvdRsvd BOT1BOT1 BOT2BOT2 BOBBOB BOSBOS

Ind_cfgInd_cfg

CC7CC7 CC6CC6 RsvdRsvd CC4CC4 CC3CC3 RsvdRsvd CC1CC1 CC0CC0

Ind_thresholdInd_threshold

THR[7:0]THR [7: 0]

Ind_hdrlenInd_hdrlen

길이[7:0]Length [7: 0]

Ind_attn 및 Ind_notifyInd_attn and Ind_notify

RsvdRsvd RsvdRsvd EXC 0EXC 0 BRK 0BRK 0 EXC 1EXC 1 BRK 1BRK 1 EXC 2EXC 2 BRK 2BRK 2

IDUDIDUD

isis frafra frsfrs VCVC RsvdRsvd cntcnt locloc

ia[3:0] 인디케이트 상태, [1:버스트 경계 3:코드]ia [3: 0] indicator state, [1: burst boundary 3: code]

넌-엔드 프레임 상태Non-End Frame State

[0000] - 페이지 - 크로스를 가진 큐의 최종 IDUD[0000]-page-the final IDUD of the queue with cross

[0001] - 페이지 크로스[0001]-page cross

[0010] - 헤더 - 엔드[0010] -header-end

[0011] - 헤더 - 엔드를 가진 페이지 - 크로스[0011]-page with header-end-cross

정상 - 엔드 프레임 상태Normal-End Frame State

[0100] - 중간(중단점 없음)[0100]-Medium (no breakpoint)

[0101] - 버스트 경계[0101]-burst boundary

[0110] - 임계[0110]-critical

[0111] - 서비스 기회[0111]-service opportunities

스페이스가 없으므로 복사 포기Give up copy because there is no space

[1000] - 데이터 스페이스 없음(헤더/info모드 아님).[1000]-no data space (no header / info mode).

[1001] - 헤더 스페이스 없음[1001]-no header space

[1010] - 양호한 헤더, info 복사되지 않음[1010]-good header, info not copied

오류error

[1100] - IFF 오버런[1100]-IFF Overrun

[1101] - 불량 프레임(VDL 또는 VFCS 아님)[1101]-bad frame (not VDL or VFCS)

[1110] - 패리티 오류[1110]-parity error

[1111] - 내부 오류[1111]-internal error

fra[3:0] 프레임 속성=[MFLAG AFLAG TC] MFLAG=My 어드레스(0=다른 스테이션fra [3: 0] frame attribute = [MFLAG AFLAG TC] MFLAG = My address (0 = other station

에 의해 보내진 프레임, 1=이 스테이션이 보낸 프레임). AFLAG-DAFrame sent by, 1 = frame sent by this station). AFLAG-DA

매치(0=내부, 1=내부). TC=종료 상태(11=프레임이 스트립됨, 10Match (0 = internal, 1 = internal). TC = Ended state (11 = Frame stripped, 10

=포맷 오류, 01=ED,00=기타(즉,Resct/토큰)). MFLAG와 AFAG는= Format error, 01 = ED, 00 = Other (ie Resct / Token). MFLAG and AFAG

INFORCVD에서 BSI에 의해 샘플된다.Sampled by BSI in INFORCVD.

frs[7:0] 프레임 상태=[VDL VFC5 E A C]. VDI=유효 데이터 길이, VFCS=유효frs [7: 0] frame state = [VDL VFC5 E A C]. VDI = Valid Data Length, VFCS = Valid

FCS, E, A, C=제어 인디케이터(00=넌, 01=R, 10=S, 11=T). 이 필FCS, E, A, C = control indicators (00 = non, 01 = R, 10 = S, 11 = T). This Phil

드는 프레임이 ED로 끝날 때에만 유효하다.The lift is valid only when the frame ends with ED.

vc VCOPY. 이 프레임을 위해서 BMAC에 보내진 VCOPY 비트의 상태를vc VCOPY. The state of the VCOPY bit sent to the BMAC for this frame.

반영한다. 0=VCOPY가 부정됨. 1=VCOPY가 가정됨.Reflect. 0 = VCOPY is negated. 1 = VCOPY is assumed.

cnt[12:0] ODU내의 바이트 수의 카운트(page_size내임).cnt [12: 0] Count of number of bytes in the ODU (within pagesize).

loc 비트[31:30]=F-L태그. 비트[27:0]=28-비트의 ODU스타트의 메모리loc bits [31:30] = F-L tag. Bits [27: 0] = 28-bit ODU start memory

어데레스. 프레임의 제 1 ODU에 대해서는, 어드레스는 버스트-정Adheres. For the first ODU of a frame, the address is burst-positive

렬된 프레임의 제 4 FC 바이트(즉, 비트 [1:0]=11). 후속 ODU에Fourth FC byte (ie bits [1: 0] = 11) of the serialized frame. In subsequent ODUs

대해서는, 어드레스는 ODU의 제 1 바이트(즉, 비트 [1:0]=00).For an address, the address is the first byte of the ODU (ie bits [1: 0] = 00).

인디케이트 연산Indicator operation

구성Configuration

인디케이트 SAP는 Ind_mode, Ind_cfg, Ind_threshold 및 Ind_hdrlen 레지스터를 적재하므로써 구성된다.The indicator SAP is constructed by loading the registers Ind_mode, Ind_cfg, Ind_threshold, and Ind_hdrlen.

입력을 초기화하는데 필요한 단계는 다음과 같다.The steps required to initialize the input are as follows:

1. ISAP 상태 큐 스페이스를 셋업한다.1. Set up the ISAP status queue space.

2. ISAP 구성/모드 레지스터를 CBus를 경유하여 셋업한다.2. Set up the ISAP configuration / mode register via CBus.

3. INSTOP 비트를 Stat_attn내에 리셋한다.3. Reset the INSTOP bit in Stat_attn.

4. IDUD 큐 리미트 레지스터를 프로그램한다.4. Program the IDUD queue limit register.

ISAP 소팅 및 복사ISAP Sorting and Copying

인디케이트 데이터 처리는 인디케이트 머신(12C)에 의해 2단계 과정으로 수행된다고 볼 수 있는데, 즉, 소팅과 복사이다. 첫째, 프레임은 3개의 ISAP 중의 하나에 소트된다. 둘째, 프레임을 메모리에 복사할 것인가 아닌가 하는 것을 결정한다.It can be seen that the indicator data processing is performed in two steps by the indicator machine 12C, that is, sorting and copying. First, the frame is sorted into one of three ISAPs. Second, it decides whether or not to copy the frame into memory.

프레임은 프레임의 FC와, AFLAG와, 호스트-정의 소팅 모드에 따라 ISAP에 소트된다. 소팅 모드는 Ind_mode 레지스터내에서 비트[SMI.SMO]에 의해 결정된다. 아래의 표 7은 프레임이 어느 ISAP 위에 소트될 것인가를 보여준다.Frames are sorted in ISAP according to the FC, AFLAG, and host-defined sorting modes of the frame. The sorting mode is determined by the bit [SMI.SMO] in the Ind_mode register. Table 7 below shows which ISAP the frames will be sorted on.

표 7TABLE 7

ISAP 맵핑에의 프레임Frame to ISAP Mapping

소트 모드SM[1:0]Sort mode SM [1: 0] 프레임 형태FC etc.Frame mode FC etc ISAP#ISAP # Ind cfg(CC)Ind cfg (CC) xx0000010110101111xx0000010110101111 MAC|SMTSyncAsyncInternalExternalHeaderInfoHi P AsyncLo P AsyncMAC | SMTSyncAsyncInternalExternalHeaderInfoHi P AsyncLo P Async 012121212012121212 [7:6][4:3][1:0][4:3][1:0][4:3][1:0][4:3][1:0][7: 6] [4: 3] [1: 0] [4: 3] [1: 0] [4: 3] [1: 0] [4: 3] [1: 0]

BSI(10)는 다음과 같이 어드레스된 자체 스테이션을 식별한다.The BSI 10 identifies its own station addressed as follows.

Addr_recoginzed=AFLAG|(∼ECIP 및 EA)Addr_recoginzed = AFLAG | (to ECIP and EA)

아래의 표 8은 각각의 ISAP는 복사 제어 비트를 갖는다. 인디케이트 머신(12C)은 선택된 복사 제어 비트와 여러 가지 플래그를 복사 결정하는데 사용한다. 복사 제어 비트에 의해 프로그램된 기본 형태는 모든 ISAP상에서 동일하다.Table 8 below shows that each ISAP has a copy control bit. The indicator machine 12C uses the selected copy control bits and various flags to make copy decisions. The basic form programmed by the copy control bits is the same on all ISAPs.

표 8Table 8

ISAP 복사 결정ISAP Copy Decision

복사 제어Copy control 복사 결정Copy decision 0001101100011011 복사하지 않는다Addr recognized 및 ∼MFLAG이면 복사한다Addr recognizedM|FLAG이면 복사한다무조건 복사한다Do not copy. Addr recognized and MFLAG. Addr recognizedM | If FLAG, copy.

복사 제어 비트는 Ind_cfg 레지스터내에 프로그램된다.Copy control bits are programmed in the Ind_cfg register.

15A 0상의 스킵15A Skip 0

ISAP_0에는 한가지 추가적 특징이 있다. 본 발명의 한 특징에 따라서, 복사 제어가 01 또는 10이고 Ind_mode의 SKIP 비트가 가정될 때 새롭고/다른 MAC 프레임만 복사된다. 이것은 MSKIP 스테이트 비트를 경유하여 달성된다. ISAP_0상에서 프레임이 복사될 때 MSKIP이 셋트된다. MSKIP이 셋트되는 한, 더이상의 MAC 프레임이 복사되지 않을 것이다. 다음 3가지의 조건하에서 MSKIP이 지워지는데, 즉, SAMEINFO가 아님이라는 표시를 가진 MAC 프레임이 수신되거나, 또는 다른 FC를 가진 프레임이 수신되거나, 또는 Ind_mode 레지스터에의 CBus 기록이 수행될 때이다. 이들 중의 마지막 것은 MAC 프레임의 그 외의 점에서 '동일한' 스트림을 샘플링(oneshot)하는데에 사용될 수 있다.ISAP_0 has one additional feature. According to one aspect of the invention, only new / other MAC frames are copied when the copy control is 01 or 10 and the SKIP bit of Ind_mode is assumed. This is accomplished via the MSKIP state bit. MSKIP is set when a frame is copied on ISAP # 0. As long as MSKIP is set, no more MAC frames will be copied. The MSKIP is cleared under the following three conditions, that is, when a MAC frame with an indication of not SAMEINFO is received, a frame with another FC is received, or a CBus write to the Ind_mode register is performed. The last of these can be used to sample a 'same' stream at other points in the MAC frame.

Sync/Async 소팅 모드Sync / Async sorting mode

이 모드는 엔드 스테이션을 위한 것이거나 또는 동기적 전송을 사용하는 적용을 위한 것이다. MAC-SMT 프레임은 ISAP_0상에 소트되고, 동기적 프레임은 ISAP_1상에 소트되며, 비동기적 프레임은 ISAP_2상에 소트된다.This mode is for end stations or for applications using synchronous transmission. MAC-SMT frames are sorted on ISAP # 0, synchronous frames are sorted on ISAP # 1, and asynchronous frames are sorted on ISAP # 2.

내부/외부 소팅 모드Internal / External Sorting Mode

이 모드는 브리징 또는 모니터링 적용을 위한 것이다. 내부(BMAC) 어드레스와 매칭되는 MAC-SMT 프레임은 ISAP_0상에 소트된다. BMAC의 내부 어드레스(짧든 길든 간에)와 매칭되는 모든 다른 프레임은 ISAP_1상에 소트된다. 외부 어드레스와 매칭되는 모든 프레임(브리징을 필요로 하는 프레임)은 ISAP_2상에 소트된다(MAC-SMT 프레임도). 내부 매치는 외부 매치보다 우선권을 갖는다는 것을 주목하기 바란다. 이 소팅 모드는 EM/EA ECIP 핀을 사용한다. 그 용도는 다음과 같다.This mode is for bridging or monitoring applications. MAC-SMT frames that match internal (BMAC) addresses are sorted on ISAP # 0. All other frames that match the BMAC's internal address (either short or long) are sorted on ISAP # 1. All frames (frames requiring bridging) that match the external address are sorted on ISAP # 2 (MAC-SMT frame diagram). Note that the inner match takes precedence over the outer match. This sorting mode uses the EM / EA ECIP pin. Its use is as follows.

1. 외부 어드레스 회로는 INFORCVD 가정 전에 FCRCVD 가정으로부터 클록까지의 어느 위치에서 ECIP를 가정하지 않으면 안되며, 그렇지 않 으면 BSI는 외부 어드레스 비교가 일어나지 않는 것으로 가정한다.1. The external address circuit must assume ECIP at some point from the FCRCVD assumption to the clock before the INFORCVD assumption, otherwise the BSI assumes that no external address comparison occurs.

2. ECIP는 ECRCVD 전에 부정되어야만 한다. 그렇지 않으면, 프레임은 복사되지 않는다.2. ECIP must be negated before ECRCVD. Otherwise, the frame is not copied.

3. EA와 EM은 ECIP가 부정된 후에 클록상에 샘플링된다.3. EA and EM are sampled on the clock after ECIP is negated.

4. ECIP는 부정된 후에는 FCRCVD가 다시 가정될 때까지 무시된다.4. After the IPIP is denied, it is ignored until FCRCVD is assumed again.

이 설계는 ECIP가 양 또는 음의 펄스가 되도록 허용한다.This design allows the ECIP to be a positive or negative pulse.

이 모드에서 전송된 프레임을 확인하기 위해(대표적으로 SAT를 사용하 여), EM은 EA와 동일 타임 프레임내에 가정된다.To identify the transmitted frame in this mode (typically using the SAT), EM is assumed to be in the same time frame as the EA.

헤더/Info 소팅 모드Header / Info Sorting Mode

이 모드는 고성능 프로토콜 처리를 위한 것이다. MAC-SMT 프레임은 ISAP_0상에 소트된다. 모든 다른 프레임은 ISAP_1과 ISAP_2상에 소트된다. FC로부터 프로그램 헤더 길이까지의 프레임 바이트는 ISAP_2상에 복사된다. IDUD의 한 스트림만 발생되지만(ISAP_2상에), ISAP의 PSP 큐 둘다 스페이스를 위해 사용된다(즉, ISAP_1으로부터의 PSP는 헤더스페이스를 위한 것이고, ISAP_2로부터의 PSP는 info 스페이스를 위한 것이다). 프레임은 헤더만을 포함하거나 또는 헤더와 info를 포함할 수 있다. info를 가진 프레임을 위해서 멀티-파트 IDUD 오브젝트가 발생된다(프레임 길이가 헤더 길이보다 작거나 같으면 IDUD.온리가 발생될 수 있다.) 프레임이 복사될 것인지를 결정하기 위하여 ISAP_1 복사 제어 비트만이 사용된다는 것을 주목하기 바란다. 이 모드에서, 2개의 어드레스 스페이스(ISAP_1 및 ISAP_2 데이터)는 한 상태 스트림(ISAP_1)내에 IDUD를 갖는다. 이것은 다른 소팅 모드에 다른 스페이스-레클러메이션(Space-reclamation)소프트웨어를 발생시킬 것이다.This mode is for high performance protocol processing. MAC-SMT frames are sorted on ISAP # 0. All other frames are sorted on ISAP'1 and ISAP'2. Frame bytes from the FC to the program header length are copied on ISAP # 2. Only one stream of IDUD is generated (on ISAP # 2), but both PSP queues of ISAP are used for space (ie, PSP from ISAP # 1 is for header space and PSP from ISAP # 2 is for info space). The frame may include only headers or may include headers and info. For a frame with info, a multi-part IDUD object is generated (IDUD. Only can be generated if the frame length is less than or equal to the header length). Only the ISAP # 1 copy control bits are used to determine if the frame will be copied. Please note. In this mode, two address spaces (ISAP # 1 and ISAP # 2 data) have IDUDs in one status stream (ISAP # 1). This will generate different space-reclamation software in different sorting modes.

Hi/Lo - 우선순위 Async 소팅 모드Hi / Lo-Priority Async Sorting Mode

이 모드는 비동기적 전송의 2개의 우선순위 레벨을 사용하는 엔드 스테이션을 위한 것이다. MAC-SMT 프레임은 ISAP_0상에 소트되고, 높은 우선순위 Async 프레임은 ISAP_1상에 소트되고, 낮은 우선순위 async 프레임은 ISAP_2에 소트된다. 우선순위는 FC의 MS r-비트에 의해 결정되는데, r=oxx=낮은-우선순위이고, r=1xx=높은-우선순위이다.This mode is for end stations using two priority levels of asynchronous transmission. MAC-SMT frames are sorted on ISAP # 0, high priority Async frames are sorted on ISAP # 1, and low priority async frames are sorted on ISAP # 2. The priority is determined by the MS r-bits of the FC, where r = oxx = low-priority and r = 1xx = high-priority.

채널 차단Channel blocking

인디케이트 머신(12c)은 데이터 및 상태 스페이스가 있는 한 ISAP상에 복사된다. 어느 스페이스든 부족이 특정 ISAP상에서 검출되면, 인디케이트 머신(12C)은 그 ISAP를 위해서 링으로부터 새 프레임을 복사하는 것을 정지한다. 이것은 채널 차단이라고 지칭된다. 인디케이트 데이터 FIFO 12A내에 상기 ISAP를 위한 데이터가 아직 있을 수 있으나, 스페이스 부족으로 데이터는 메모리에 기입될 수 없을 것이다.The indicator machine 12c is copied onto the ISAP as long as there is data and state space. If a lack of any space is detected on a particular ISAP, the indicator machine 12C stops copying new frames from the ring for that ISAP. This is called channel blocking. There may still be data for the ISAP in indicator data FIFO 12A, but the data will not be able to be written to memory due to lack of space.

ISAP를 위한 최종 PSP가 프리페치될 때, 내부 no_data_space 플립 플롭이 셋트되며, 상기 ISAP상의 모든 추가적 프레임은 복사되지 않는다(계속되고 있는 것은 현재 복사하고 있다면). Low_data_space 어텐션이 또한 발생된다. 호스트가 PSP 큐 리미트를 업데이트시킬 때, 플립 플롭은 지워지고 복사는 계속된다.When the final PSP for ISAP is prefetched, an internal no dataspace flip-flop is set, and all additional frames on the ISAP are not copied (if what is currently being copied). Low_data_space attention is also generated. When the host updates the PSP queue limit, the flip flop is cleared and copying continues.

ISAP 큐를 위한 끝으로부터 두 번째의 IDUD가 기입될 때, 더이상의 프레임 복사는 정지되고 최종 IDUD는 특수 상태로 기입된다. 호스트가 IDUD 큐를 업데이트시킬 때, 리미트 복사가 계속된다.When the second IDUD is written from the end for the ISAP queue, further copying of the frame is stopped and the final IDUD is written to a special state. When the host updates the IDUD queue, limit copying continues.

인디케이트 상태 코드Indicator status code

IDUD내에 복귀된 is[] 필드는 4비트 상태 코드이다. 값은 우선순위 엔코드되며, 가장 큰 번호를 가지는 최고 우선순위 값을 갖는다. 어떤 코드는 상호 배타적이다(따라서 그들의 상대적 우선순위는 적용불가하다).The is [] field returned in IDUD is a 4-bit status code. The value is priority encoded and has the highest priority value with the largest number. Some codes are mutually exclusive (so their relative priorities are not applicable).

프레임의 통상적 끝 전의 상태를 기입할 때 아래의 첫 번째 4개의 값이 기입된다. 프레임이 통상적으로 종료될 때(오류 없음) 두번째 4개의 값이 기입된다. 데이터 및 또는 상태 스페이스의 부족으로 프레임 복사가 포기될 때 세번째 4개의 값이 기입된다. 예외 또는 오류가 있을 때에 마지막 4개의 값이 기입된다. 그 값들은 다음과 같은 의미를 갖는다.When writing the state before the normal end of the frame, the first four values below are written. When the frame normally ends (no errors) the second four values are written. The third four values are written when frame copy is abandoned due to lack of data and / or state space. The last four values are written when there is an exception or error. The values have the following meanings.

[0000] 큐의 최종 IDUD로서, 페이지를 넘는다. ISAP의 IDUD 큐의 최종이용[0000] The last IDUD of the queue, beyond the page. End use of the IDP queue in ISAP

가능 위치가 기입되었다. 페이지 넘음이 또한 필요하였는데, 그것Possible locations are listed. Page flips were also needed,

은 기입할 데이터가 더 있었다는 것을 뜻했다. IDUD 스페이스가 더Meant there was more data to fill out. IDUD space more

이상 없으므로 나머지 데이터는 기입되지 않았다. 이 코드는 IDUD.There is nothing wrong with the rest of the data. This code is IDUD.

중간에 기입되지 않을 것이며, 따라서, 제로 F-L 태그를 가진 제로Will not be written in the middle, thus zero with a F-L tag

is[]는 널 디스크립터로서 소프트웨어에 의해 사용될 수 있다.is [] can be used by software as a null descriptor.

[0001] 페이지 크로스. 제 1 또는 중간 IDUD이어야만 한다. 이것은 현재[0001] Page Cross. Must be a first or intermediate IDUD. This is currently

의 페이지의 나머지를 채우는 프레임 부분이며, 데이터의 나머지를Is the part of the frame that fills the rest of the page,

위하여 새로운 페이지로 넘어갔다.To the new page.

[0010] 헤더 끝. 이것은 프에미의 헤더부분의 최종 IDU를 지칭한다. (분[0010] The end of the header. This refers to the final IDU of the header part of the frame. (minute

명히 헤더/Info 소트 모드에만 적용가능하다).Obviously only applicable in header / Info sort mode).

[0011] 페이지 넘음 및 헤더 끝. 상기 두가지 상태가 모두 발생한 경우[0011] Page turn and header end. If both of these conditions occur

이다.to be.

[0100] 중간. 프레임이 정상적으로 종료되었으며, 중단점이 없었다.[0100] Medium. The frame ended normally and there was no breakpoint.

[0101] 버스트 경계. 프레임이 정상적으로 종료되었으며, 버스트 경계가[0101] Burst boundary. The frame ended normally and the burst boundary

검출되었기 때문에 중단점이 있었다.There was a breakpoint because it was detected.

[0110] 임계. 이 프레임이 정상적으로 복사되고 종료되었을 때 복사된 프[0110] Threshold. Copies copied when this frame was copied and ended normally.

레임 임계 카운터에 도달한다.Reach the lame threshold counter.

[0111] 서비스 기회. 이 (통상적 끝)프레임은 토큰의 뒤에 오며, 그렇지[0111] Service Opportunities. This (usually end) frame comes after the token, otherwise

않으면 MACRST 또는 MAC 프레임이 수신되고 또는 링 변화가 있었다.Otherwise a MACRST or MAC frame was received or there was a ring change.

이들 이벤트 중의 어느 것도 버스트 경계를 표시한다.None of these events indicate a burst boundary.

[1000] 데이터 스페이스 없음. 이 코드는 헤더/info 소트 모드에 있지 않[1000] No data space. This code is not in the header / info sort mode.

을 때 기입될 수 있다. 데이터 스페이스가 충분하지 않기 때문에Can be written when. Because there is not enough data space

모든 프레임이 복사되지 못한다.Not all frames can be copied.

[1001] 헤더 스페이스가 충분하지 않음. 헤더 스페이스가 다 되었기 때문[1001] Insufficient header space. Because the header space is exhausted

에 (헤더/info 소트 모드내에서), 프레임 복사는 포기되었다.In (in header / info sort mode), copying of frames is abandoned.

[1010] 성공적인 헤더 복사로서, 프레임 info는 복사되지 않았다. 헤더를[1010] As a successful header copy, the frame info was not copied. Header

복사하는데 충분한 스페이스가 있었다. info를 복사하고자 했을때There was enough space to copy. When you want to copy info

때는 데이터 스페이스, IDUD 스페이스(ISAP_2상에)또는 둘다 충분Data space, IDUD space (on ISAP # 2) or both

하지 않았다. info는 복사되지 않았다.Did not do it. info is not copied.

[1011] info 스페이스 없음. 헤더를 복사하였으며, info를 복사하는 동안[1011] info no space. I copied the header, while copying info

에 데이터 및 또는 IDUD 스페이스가 다 되었다.The data and / or IDUD space is exhausted.

[1100] FIFO 오버런. 인디케이트 FIFO는 이 프레임을 복사하는 동안에 오[1100] FIFO overrun. The indicator FIFO is displayed while copying this frame.

버런이 있었다.There was Burren.

[1101] 불량 프레임. 이 프레임은 유효 데이터 길이를 갖지 않았거나, 또[1101] Bad frame. This frame does not have a valid data length, or

는 무효 FCS를 가졌거나, 또는 둘다인 경우이다.Is the case with an invalid FCS, or both.

[1110] 패리티 오류. 이 프레임 동안에 패리티 오류가 있었다.[1110] Parity error. There was a parity error during this frame.

[1111] 내부 오류. 이 프레임 동안에 내부 논리부 오류가 있었다.[1111] Internal error. There was an internal logic error during this frame.

인디케이트 중단점Indicator breakpoint

인디케이트 머신(12C)은 매 IDUD와 함께 인디케이트 상태를 발생한다. 인디케이트 머신(12C)은 또한 연관된 데이터의 버스트를 식별한다. 버스트 경계는 중단점 어텐션을 발생한다. 호스트는 모든 ISAP에 공통적인 인디케이트 중단점을 설정하기 위해 Ind_mode, Ind_attn 및 Ind_notify 레지스터를 프로그램한다.The indicator machine 12C generates an indicator state with every IDUD. Indicator machine 12C also identifies a burst of associated data. Burst boundary generates breakpoint attention. The host programs the Ind_mode, Ind_attn, and Ind_notify registers to set an indication breakpoint common to all ISAPs.

어떤 때에는 데이터의 버스트의 끝을 검출하는 것이 불가능하다. 어텐션을 위해서 호스트가 너무 오래 기다리게 될 것이므로, 복사된 프레임 카운터가 제공된다. 프레임이 ISAP상에 복사될 때마다 이 카운터는 감소된다. 0에 도달할 때마다 중단점이 발생될 수 있다. ISAP가 변경될 때마다 카운터는 Ind_threshold 레지스터로부터 재적재된다. Ind_threshold를 0으로 적재하면 256개의 연속 프레임이 한 ISAP상에 수신된 후에 중단점이 발생된다. 중단점의 발생은 Ind_cfg내의 BOT 비트를 경유하여 ISAP_1 및 ISAP_2를 위해 개별적으로 가능해진다.Sometimes it is impossible to detect the end of a burst of data. The host will wait too long for the attention, so a copied frame counter is provided. Each time a frame is copied onto ISAP, this counter is decremented. Breakpoints can be generated whenever zero is reached. Each time the ISAP changes, the counter is reloaded from the Ind_threshold register. Loading Ind_threshold as zero causes a breakpoint after 256 consecutive frames are received on one ISAP. Breakpoint generation is enabled separately for ISAP # 1 and ISAP # 2 via the BOT bit in Ind \ cfg.

다음의 목록은 각각의 상태 중단점 조건을 기술한다.The following list describes each state breakpoint condition.

BOB 버스트상의 중단점. /Ind_cfg.BOB가 셋트되면, 버스트의 끝이 IndBreakpoint on the BOB burst. If /Ind\cfg.BOB is set, the end of the burst is Ind

_attn.BRK를 발생시킬 것이다. 버스트의 끝은 ISAP 변경 또는 DAWill generate aattn.BRK. End of Burst is ISAP Change or DA

변경 또는 SA 변경이다. ISAP 변경은 유효 복사 프레임의 FC로부터Change or SA change. ISAP change from FC of valid copy frame

검출된다. 프레임의 DA가 현재의 어드레스로부터 다른 것으로 변Is detected. DA of frame changes from current address to another

경될 때 DA 변경이 검출된다. 프레임의 SA가 전의 것과 동일하지DA change is detected when it is changed. The SA of the frame is not the same as before

않을때에 SA 변경이 검출된다.When not, the SA change is detected.

BOT 임계상의 중단점. BSI(10)는 중단점이 발생할 때마다 Ind_Breakpoint on the BOT threshold. The BSI 10 checks Ind

threshold 레지스터로부터 복사된-프레임 카운터를 적재한다. 이Load the frame counter copied from the threshold register. this

카운터는 현재의 ISAP상의 각각의 유효 복사 프레임에 대해 감소된The counter is decremented for each valid copy frame on the current ISAP.

다. 카운터가 0에 도달하고, ISAP의 Ind_cfg.BOT가 셋트되면, IndAll. When the counter reaches zero and Ind_cfg.BOT in ISAP is set, Ind

_attnBRK가 발생한다. BOT_1을 위한 것이고, BOT2는 ISAP_2를AttnBRK occurs. For BOT'1, BOT2's

위한 것이다.It is for.

BOS 서비스 기회상의 중단점. Ind_cfg.BOS가 셋트되면, 몇가지 복사된Breakpoints on BOS Service Opportunities. When Ind_cfg.BOS is set, some copied

프레임 뒤의 서비스 기회(토큰/MAC 프레임/링 작동 변경)는 Ind_After-frame service opportunities (token / MAC frame / ring behavior change)

attn.BRK를 발생시킬 것이다.will generate attn.BRK.

MACInfo MACInfo 중단점은 항상 Ind_attn.BRK를 발생시킨다(이 중단점은 항MACInfo MACInfo breakpoints always raise Ind_attn.BRK (this breakpoint

상 가능하다). MAC 프레임이 전의 프레임과 동일한 첫 번째 4개의Is possible). The first four frames with the same MAC frame as the previous frame

바이트의 info를 갖지 않을 때 MACInfo 중단점이 발생된다. 또한MACInfo breakpoints are generated when they do not have info of bytes. Also

SAMEINFO 검출은 SAMEINFO가 가정된 상태에서 더 이상의 MAC 프레임SAMEINFO detection is no more MAC frames with SAMEINFO assumed

을 복사하는것을 억제하는 데에 사용된다.Used to suppress copying.

오류 및 예외Errors and exceptions

오류/예외 조작과 관련하여 2개의 어텐션이 있는데, State_attn.ERR/ 및 Ind_attn.EXC이다.There are two attentions related to error / exception operations: State? Attn.ERR / and Ind? Attn.EXC.

인디케이트상의 오류는 State_attn.ERR 어텐션을 발생시킨다. 호스트는 상기 ISAP상에서 처리를 재개시하기 위해서 INSTOP 어텐션을 리셋해야만 한다.An error on the indicator causes a State_attn.ERR attention. The host must reset the INSTOP attention to resume processing on the ISAP.

예외가 발생되면, 현재의 프레임은 완료라고 표시되고, 상태가 IDUD.L내에 기록되며, Ind_attn.EXC가 발생된다.If an exception occurs, the current frame is marked complete, the status is recorded in IDUD.L, and Ind_attn.EXC is generated.

인디케이트 SDU 포맷Indicator SDU Format

아래의 표 9 및 10은 인디케이트 SDU 포맷을 보여준다. BSI(10)는 각각의 SDU를 16 또는 32-바이트 버스트-사이즈 경계상에 정렬시키는 것을 주목하기 바란다. 리퀘스트상에는 정렬 제한은 없지만, 즉, 각각의 ODU는 몇개의 바이트일 수도 있으며(ODU 0사이즈일 수 있다). 메모리내의 어떤 바이트 어드레스에서도 시작할 수 있다.Tables 9 and 10 below show the indicator SDU format. Note that the BSI 10 aligns each SDU on a 16 or 32-byte burst-size boundary. There are no sort restrictions on the request, i.e. each ODU may be several bytes (ODU 0 size). Can start at any byte address in memory.

표 9Table 9

큰-엔디언 인디케이트 SDU(짧은 어드레스)Large-endian indicator SDU (short address)

바이트 0 바이트 3Byte 0 Byte 3

비트 31 비트 0Bit 31 bit 0

FCFC FCFC FCFC FCFC DA0DA0 DA1DA1 SA0SA0 SA1SA1

표 10Table 10

작은-엔디언 인디케이트 SDUSmall-endian indicator SDU

바이트 3 바이트 0Byte 3 Byte 0

비트 31 비트 0Bit 31 bit 0

FCFC FCFC FCFC FCFC SA1SA1 SA0SA0 DA1DA1 DA0DA0

큐 매니지먼트Queue management

모든 큐를 위한 큐 엔트리/자유 스페이스의 관리는 상태/스페이스 머신(16)에 의해 조작된다(제 14도). 이 절은 상태/스페이스 머신(16)이 구성 및 작동되는 방법을 기술한다.Management of queue entry / free space for all queues is manipulated by state / space machine 16 (FIG. 14). This section describes how the state / space machine 16 is configured and operated.

구성Configuration

상태 큐와 PSP 큐는 State_attn내에 SPSTOP 비트를 리셋하기 전에 초기화되어야만 한다. 초기화는 PRT 및 리미트 RAM을 셋업하고, PSP 큐를 셋업하고, 상태 큐를 셋업하는 것을 포함한다.The state queue and the PSP queue must be initialized before resetting the SPSTOP bit in State? Attn. Initialization includes setting up a PRT and limit RAM, setting up a PSP queue, and setting up a status queue.

호스트와 BSI(10)는 RAM 액세스를 위하여 메모리 베이스 메일박스를 경유하여 통신한다. 메일박스 어드레스는 파워-업시에 한번 Ptr_mem_adr내에 통상적으로 적재된다. PRT RAM을 셋업하기 위하여 이것이 일단 수행되면, 호스트는 다음의 것을 수행한다.The host and BSI 10 communicate via a memory base mailbox for RAM access. The mailbox address is normally loaded into Ptr \ mem \ adr once at power-up. Once this is done to set up the PRT RAM, the host does the following:

1. PTOP 비트가 셋트되었는지 체크한다(만약 셋트되지 않았으면 기다린 다).1. Check that the PTOP bit is set (if not set, wait).

2. PTR RAM의 스타트 위치를 Ptr_int_adr에 적재한다(제로)2. Load the starting position of the PTR RAM into Ptr \ int \ adr (zero)

3. PTOP 비트를 지운다.3. Clear the PTOP bit.

4. 적재될 모든 PTR의 위치에 대해 이 단계를 반복한다.4. Repeat this step for all PTR positions to be loaded.

리미트 RAM을 셋업하기 위해서는 호스트는 다음의 것을 수행한다.To set up limit RAM, the host does the following:

1. LMOP 비트가 셋트되었는지 체크한다(만약 세트되지 않았으면 기다린다.1. Check that the LMOP bit is set (if not set, wait).

2. 적재될 리미트 RAM 위치를 Limit_adr에 적재한다(MS 데이터 비트도 함2. Load the limit RAM location to be loaded into Limit # adr (also with MS data bits).

께))

3. 한계치를 Limit_dat에 적재한다(LS8 비트)3. Load the limit value in Limit_dat (LS8 bit)

4. LMOP 비트를 지운다.4. Clear the LMOP bit.

5. 이 단계를 리미트의 모든 위치에 대해 반복한다.5. Repeat this step for every position of the limit.

PSP 큐를 위하여 BSI(10)를 초기화하기 위해 호스트는 다음의 것을 수행해야만 한다.To initialize the BSI 10 for the PSP queue, the host must do the following.

1. PSP 큐에 메모리를 할당한다.1. Allocate memory in the PSP queue.

2. 큐에 유효 PSP를 기입한다.2. Write a valid PSP to the queue.

3. 큐의 스타트 어드레스를 Ind?_psp_ptr 레지스터에 적재한다.3. Load the queue's start address into the Ind? Psp? Ptr register.

4. State_attn 레지스터내에 SPSTOP 비트를 리셋한다.4. Reset the SPSTOP bit in the State \ attn register.

5. 큐의 리미트를 리미트 레지스터에 적재한다.5. Load the limit of the queue into the limit register.

상태 큐를 초기화하기 위하여 호스트는 다음의 것을 수행하여야만 한다.To initialize the status queue, the host must do the following:

1. 상태 스페이스를 할당한다.1. Allocate a state space.

2. 큐 포인터를 Ind?_sts_prt 레지스터에 적재한다.2. Load the cue pointer into the Ind? Stsprt register.

3. 리미트를 리미트 RAM에 적재한다.3. Load the limit into the limit RAM.

REQ 큐를 초기화하기 위하여 호스트는 다음의 것을 수행하여야만 한다.To initialize the REQ queue, the host must do the following:

1. REQ 큐에 메모리를 할당한다.1. Allocate memory in the REQ queue.

2. 큐 스타트 어드레스를 Req?_req_ptr에 적재한다.2. Load the cue start address into Req? Req? Ptr.

3. State_attn 레지스터내에 RQSTOP 비트를 리셋한다.3. Reset the RQSTOP bit in the State_attn register.

4. 큐에 하나 또는 그 이상의 REQ를 기입한다.4. Write one or more REQs to the queue.

5. REQ 큐 리미트 레지스터를 적재한다.5. Load the REQ queue limit register.

작동work

PSP 큐PSP queue

각각의 ISAP는 그것의 PSP 큐를 작동시키는 DMA 서브채널을 갖는다. 각각의 서브채널은 큐를 관리하기 위하여 2개의 레지스터를 사용한다.Each ISAP has a DMA subchannel that activates its PSP queue. Each subchannel uses two registers to manage the queue.

1. Ind?_psp_ptr은 다음 이용가능한 PSP를 참조한다.1. Ind? Psp? Ptr refers to the next available PSP.

2. Ind?_next_psp 레지스터는 다음(프리페치된) PSP를 유지한다.2. The Ind? Next? Psp register holds the next (prefetched) PSP.

상태/스페이스 머신(16)은 Ind?_psp_ptr에 의해 참조된 위치로부터 다음 PSP를 프리페치하고, 그것을 잠정적으로 Ind?_next_psp 유지 레지스터내에 저장하며, 따라서, 그것은 인디케이트 머신(12C)으로 즉각 통과될 수 있다. 인디케이트 머신(12C)은 스페이스를 요청할 때, 상태/스페이스 머신(16)은 디스크립터를 유지 레지스터로부터 적절한 ISAP PSP 포인터 레지스터로 이동하며, 그 다음에 PSP를 목록으로부터 프리페치하여 유지 레지스터내로 넣는다. 이 프로세스는 PSP가 큐의 리미트로부터 프리페치될 때까지 반복된다. 이것은 상기 ISAP상에 Low_data 스페이스 어텐션을 발생시키고, 데이터 스페이스가 더 이상 없을 때 더 이상의 복사를 정지한다. 호스트는 더 많은 PSP를 큐 리셋 어텐션내에 두고, 큐의 리미트 레지스터를 업데이트한다. 복사가 정지되었으면, PSP 큐 리미트가 업데이트될 때 상기 ISAP상에서 복사가 재개될 것이다. (이 리미트 레지스터의 어떤 기입도 좋으며, 호스트는 리미트를 앞으로 이동시키는 것으로 가정된다.State / space machine 16 prefetches the next PSP from the location referenced by Ind? have. When the indicator machine 12C requests space, the state / space machine 16 moves the descriptor from the hold register to the appropriate ISAP PSP pointer register, and then prefetches the PSP from the list and puts it into the hold register. This process is repeated until the PSP is prefetched from the limit of the queue. This causes a Low Data Space Attention on the ISAP and stops further copying when there is no more data space. The host puts more PSPs in the queue reset attention and updates the limit register of the queue. If copying has stopped, copying will resume on the ISAP when the PSP queue limit is updated. (Any write to this limit register is fine, and the host is assumed to move the limit forward.

호스트는 (충전되지 않은) PSP 큐의 테일(tail)내에 새로운 PSP 디스크립터(리클레임된 스페이스로부터)를 형성한다. 4K 바이트 큐와 8바이트인 각각의 디스크립터를 가지고, 큐는 512 디스크립터를 포함하여, ISAP당 2M바이트의 풀 스페이스 메모리를 어드레스한다. 전체 관련된 스페이스 영역이 이 양보다 크면 호스트는 필요에 따라 Ind?_pap_ptr을 판독함으로써 외부적으로 보다 큰 큐를 용이하게 유지할 수 있다. 새로운 PSP는 큐의 테일과 사용되는 큐의 리미트에 기입된다.The host forms a new PSP descriptor (from the reclaimed space) in the tail of the (unfilled) PSP queue. With a 4K byte queue and each descriptor that is 8 bytes, the queue addresses 2M bytes of full space memory per ISAP, including 512 descriptors. If the total associated space area is greater than this amount, the host can easily maintain a larger queue externally by reading Ind? Pap? Ptr as needed. The new PSP is written to the tail of the queue and the limit of the queue used.

상태 큐Status queue

BSI(10)는 2-단어 디스크립터 또는 메시지를 상태 큐에 기입한다. 각각의 단어는 증가된 큐 포인터 레지스터내의 어드레스에 기입된다. 디스크립터 또는 메시지가 기록될 때, 기록된 어드레스는(후에 증가된)큐의 리미트 레지스터와 비교된다. 만약에 두 어드레스가 같으면, 디스크립터 또는 메시지 기입은 끝에서 두번째 큐 엔트리로 보내진다. 이러한 작용의 결과는 인디케이트와 리퀘스트 상태 큐 모두에 대해 매우 유사하다.The BSI 10 writes a two-word descriptor or message to the status queue. Each word is written to an address in the incremented queue pointer register. When a descriptor or message is written, the written address is compared with the limit register of the queue (which is later incremented). If the two addresses are the same, the descriptor or message write is sent to the second queue entry at the end. The consequences of this action are very similar for both the indication and request status queues.

두 큐 모두에 대해 이 작용은 No_Status_Space 어텐션을 발생시킨다.For both queues, this action generates a No_Status_Space attention.

ISPA에 대해서, BSI(10)는 상기 ISAP상에 더 이상의 SDU의 복사를 중지하고, 기입된 ISDU는 IDUD. 최종으로 변경되며, 이것은 상태 스페이스가 없었다는 것을 나타내는 상태를 가질 수도 있다. 이 프레임의 포착을 완료하기 위해 다른 IDUD가 필요했다면, is[]는 [0000]일 것이다. SDU 복사 완료에 이 IDUD만이 필요했다면 is[]는 어떤 통상적인 끝상태를 포함할 것이고, 따라서, No_Status_Space 어텐션만이 호스트에 큐내의 상태 스페이스 부족을 경고할 것이다. No_Space_attention이 지워질 때까지 더 이상의 SDU는 호스트 메모리에 복사되지 않을 것이며, 더 많은 상태 스페이스가 호스트에 의해 큐에 첨가되고 리미트 레지스터를 업데이트한다. BSI는 다른 ISAP상에 SDU 복사를 계속할 것이다(스페이스가 있는 ISAP상에).For ISPA, the BSI 10 stops copying any more SDUs on the ISAP, and the ISDUs written to the IDUD. Finally, it may have a state indicating that there was no state space. If another IDUD was needed to complete the capture of this frame, is [] would be [0000]. If only this IDUD was needed to complete the SDU copy, is [] will contain some normal end status, so only the No_Status_Space attention will warn the host of lack of status space in the queue. No more SDUs will be copied to host memory until No_Space? Attention is cleared, more status space is queued by the host and the limit register is updated. The BSI will continue copying SDUs to another ISAP (on a spaced ISAP).

RSAP에 대해서는, 끝에서 두번째 기입은 또한 Req_atnn.USR을 셋트할 것이다. USR 어텐션이 RSAP에 셋트되는 동안에 더 이상의 리퀘스트는 서비스되지 않을 것이다. 서비스는 No_Status_Space 및 USR 어텐션을 지움으로써 계속될 수 있다.For RSAP, the second write at the end will also set Req_atnn.USR. No further requests will be serviced while the USR Attention is set in RSAP. The service may continue by clearing the No_Status_Space and USR Attention.

PSP 큐와는 달리, 상태 큐 리미트를 업데이트하는 것이 서비스를 재개하지 않으며, 단지 어텐션을 지우는 것만이 서비스를 재개할 것이다.Unlike PSP queues, updating the status queue limit does not resume the service, only clearing the attention will resume the service.

REQ 큐REQ queue

BSI(10)는 각각의 REQ 큐로부터 2-단어 디스크립터를 페치한다. 액세스를 제어하기 위하여, 각각의 RSAP는 내부 Request_Queue_Empty(RQE) 비트를 유지한다. REQ? 비트가 지워지는 한, REQ 처리는 계속한다. BSI(10)가 큐의 리미트 위치로부터 REQ를 페치하면, 이것은 REQ 비트를 셋트 한다. 호스트가 큐의 리미트 레지스터에 기록할 때마다, 비트는 리셋된다. 호스트는 리미트 레지스터에 각각의 새로운 리미트를 기록하며, BSI의 REQ 포인터와 리미트 레지스터 사이에 차이가 있는 한, BSI(10)는 REQ를 페치하고 처리할 것이다.The BSI 10 fetches a two-word descriptor from each REQ queue. To control access, each RSAP maintains an internal Request 내부 Queue_Empty (RQE) bit. REQ? As long as the bit is cleared, the REQ process continues. If the BSI 10 fetches a REQ from the limit position of the queue, it sets the REQ bit. Each time the host writes to the limit register of the queue, the bit is reset. The host writes each new limit in the limit register, and as long as there is a difference between the BSI's REQ pointer and the limit register, the BSI 10 will fetch and process the REQ.

인디케이트 드로틀링(throtting)Indicator throtting

호스트는 비록 데이터 스페이스 흐름 제어가 보다 정확하지만, 데이터 또는 상태 스페이스를 제한하므로써 ISPA상에 흐름 제어를 제공할 수 있다.A host can provide flow control on ISPA by limiting data or state space, although data space flow control is more accurate.

각각의 ISAP는 자체 PSP 큐를 가지므로, 상대적 ISAP 우선순위는 호스트-정의된다.Each ISAP has its own PSP queue, so relative ISAP priorities are host-defined.

ABus 인터페이스ABus interface

이 절은 BSI-메모리 버스(ABus)인터페이스를 기술한다.This section describes the BSI-Memory Bus (ABus) interface.

ABus 인터페이스는 버스 인터페이스 유닛(BIU)(18)(제 15도 참조)에 의해 조작된다. ABus 인터페이스는 BSI와 32-비트 외부 메모리를 연결한다.The ABus interface is operated by a bus interface unit (BIU) 18 (see FIG. 15). The ABus interface connects the BSI with 32-bit external memory.

ABus 인터페이스는 멀티-마스터 버스에 인터페이스하고, 가상 또는 실제 어드레스 지정 시스템을 지지하며, 매우 높은 대역폭을 전송하고, 큰-엔디언 또는 적은-엔디언 시스템을 지지하며, 링과 버스 타이밍 영역사이의 동기화를 제공하도록 설계된다.The ABus interface interfaces to a multi-master bus, supports virtual or real addressing systems, transmits very high bandwidth, supports large-endian or less-endian systems, and synchronizes between ring and bus timing domains. Is designed to provide.

버스-리퀘스트/버스-그랜트 메카니즘은 멀티-마스터 버스를 지지한다. BSI(10)는 버스 마스터를 트라이-스테이트화 하지 않을 때에는 모든 버스 출력을 트라이-스테이트화 한다. 메카니즘은 또한 버스 마스터를 선취하는것을 지지한다.The bus-request / bus-grant mechanism supports multi-master buses. The BSI 10 tri-states all bus outputs when not tri-stateing the bus master. The mechanism also supports preoccupying the bus master.

BIU(18)의 작동의 통상적 모드는 실제 어드레스를 방출하는 것이다. 가상적 메모리 시스템을 보조하기 위해서, BSI(10)는 MMU 번역 스테이트를 버스 트랜잭션내에 삽입할 수 있다.A typical mode of operation of the BIU 18 is to emit the actual address. To assist the virtual memory system, the BSI 10 may insert the MMU translation state into the bus transaction.

다수의 마스터Multiple masters

BIU(18)는 멀티-마스터 버스이다. 간단한 버스-리퀘스트/버스-그랜트 프로토콜은 중재 스킴(예;회전 또는 고정 우선순위)을 사용하여 외부 중재기가 어떠한 수의 버스 마스터를 지지하도록 허용한다. 이것은 또한 버스 마스터 선취를 지지한다.BIU 18 is a multi-master bus. The simple bus-request / bus-grant protocol uses an arbitration scheme (eg, rotational or fixed priority) to allow the external arbiter to support any number of bus masters. This also supports bus master preemption.

최대 대역폭을 전송하기 위해서, BIU(18) ABus는 정렬된 버스트 모드 전송을 사용한다. 이것은 DRAM 또는 SRAM 외부 메모리의 사용을 허용한다. 16-바이트 또는 32-바이트 버스트가 지지된다.To transmit maximum bandwidth, BIU 18 ABus uses aligned burst mode transmission. This allows the use of DRAM or SRAM external memory. 16-byte or 32-byte bursts are supported.

큰/작은-엔디언을 위한 프로그램가능 옵션은 어느 시스템이건 지지한다.Programmable options for large / small-endian support any system.

단순한 프로토콜은 다른 버스 프로토콜에의 용이한 적응을 허용한다.Simple protocols allow easy adaptation to other bus protocols.

개요summary

BIU(18)(제 15도 참조)는 버스트 능력을 가진 32-비트 동기적 멀티플렉스 어드레스/데이타 멀티-마스터 버스이다. 모든 버스 신호는 마스터 버스 클록에 동기화된다. 최대 버스트 속도는 클록당 하나의 32-비트 단어이지만, 더욱 느린 속도도 대기-상태를 삽입하므로써 수용될 수 있다.BIU 18 (see FIG. 15) is a 32-bit synchronous multiplex address / data multi-master bus with burst capability. All bus signals are synchronized to the master bus clock. The maximum burst rate is one 32-bit word per clock, but even slower rates can be accommodated by inserting a wait-state.

다수의 마스터Multiple masters

BIU(18)는 멀티-마스터 버스이다. 간단한 버스-리퀘스트/버스-그랜트 프로토콜은 중재스킴(예; 회전 또는 고정 우선순위)을 사용하여 외부 중재기가 어떠한 수의 버스 마스터를 지지하도록 허용한다. 이것은 또한 버스 마스터 선취를 지지한다.BIU 18 is a multi-master bus. The simple bus-request / bus-grant protocol uses an arbitration scheme (eg, rotational or fixed priority) to allow the external arbiter to support any number of bus masters. This also supports bus master preemption.

2개의 주요 적용 환경이 있는데, BSI(10)는 호스트 메모리(제 8도 참조)와 호스트-BSI 공유 메모리(제 9도 참조)에 직접 연결된다. 정확한 구성은 BSI(10)에 투명하며, 양쪽의 경우에 버스는 멀티-마스터일 수 있다. 통상적으로, BSI는 호스트의 시스템 버스에 직접 연결되었을 때에는 여러개의 버스 마스터 중의 하나이며, 공유 메모리 환경에서, BSI(10)는 디폴트 버스 마스터이다(대기시간/대역폭의 이유로).There are two main application environments, where the BSI 10 is directly connected to host memory (see FIG. 8) and host-BSI shared memory (see FIG. 9). The exact configuration is transparent to the BSI 10 and in both cases the bus may be multi-master. Typically, the BSI is one of several bus masters when directly connected to the system bus of the host, and in a shared memory environment, the BSI 10 is the default bus master (for latency / bandwidth reasons).

버스는 BSI 내부 DMA 채널과 외부 마스터 사이에서 효과적으로 공유 된다. BSI내에서 채널은 우선순위에 따라서 서비스된다.The bus is effectively shared between the BSI internal DMA channel and the external master. Within the BSI, channels are serviced according to their priority.

어드레스지정 모드Addressing mode

ABus 인터페이스는 가상 또는 실제 번지지정을 선택하는 프로그램가능 버스 모드를 갖는다. 실제 번지지정에서는 BIU(18)는 메모리 어드레스를 방출하고, 데이터를 즉각적으로 전송하기 시작한다. 가상적 번지지정에서는 BIU(18)는 가상 어드레스의 방출과 데이터 전송 시작과의 사이에 2개의 클록을 삽입한다. 이것은 외부 mmu에 의한 어드레스 번역을 허용한다.The ABus interface has a programmable bus mode that selects virtual or real addressing. In actual addressing, the BIU 18 releases the memory address and begins to transmit data immediately. In virtual addressing, the BIU 18 inserts two clocks between the release of the virtual address and the start of data transfer. This allows address translation by external mmu.

대역폭Bandwidth

본 발명의 특징에 따라서, BIU(18)는 단일 판독 및 기입과 버스트 판독 및 기입을 지지한다. 백-투-백(back-to-back) 단일 판독 및 기입은 매 4 클록 사이클마다 실제 어드레스지정으로 발생될 수 있다. 버스트 트랜잭션은 매 12 클록 사이클마다 8개의 32-비트 단어를 전송할 수 있다. 36/MHz 클록을 가지고 96M바이트/초의 피크 대역폭을 제공한다.In accordance with features of the present invention, BIU 18 supports single read and write and burst read and write. Back-to-back single reads and writes can occur with real addressing every four clock cycles. A burst transaction can send eight 32-bit words every 12 clock cycles. It offers a peak bandwidth of 96Mbytes / sec with a 36 / MHz clock.

버스가 높은 주파수에서 작동하도록 허용하기 위하여, 프로토콜은 모든 신호가 버스 마스터의 슬레이브에 의해 가정(assertion)되고 역가정(deassertion)되도록 정의한다. 버스 장치로 하여금 신호를 능동적으로 해제하는 것은 비활성 전이가 고속인 것을 보장한다. 이것이 정의되지 않았다면, 외부 풀업 레지스터는 신호를 충분히 빨리 해제시킬 수 없을 것이다. 프로토콜은 또한 2개의 버스 장치가 동시에 한 회선을 구동하는 경우를 피하므로써 회선쟁탈(contention)을 감소시킨다.To allow the bus to operate at higher frequencies, the protocol defines that all signals are asserted and deasserted by the slaves of the bus master. Actively releasing the signal by the bus device ensures that the inactive transition is fast. If this is not defined, the external pullup register will not be able to release the signal fast enough. The protocol also reduces contention by avoiding the case where two bus devices are driving one line at the same time.

BSI(10)는 ABus 클록과 동기적으로 작동한다. 일반적으로, 대부분의 적용에 있어서 링에 비동기적 시스템 버스 클록을 가질 것이기 때문에 작동은 링에 비동기적일 것이다. BSI(10)는 호스트 메인 시스템 버스상에 직접 작용하도록 설계되거나 또는 국부 메모리내에 작용하도록 설계된다. 호스트 버스에서 직접 작동할 때에는 두개의 파라미터 즉 대기시간과 대역폭이 중요한 관심 대상이다.The BSI 10 operates synchronously with the ABus clock. In general, the operation will be asynchronous to the ring because for most applications it will have an asynchronous system bus clock on the ring. The BSI 10 is designed to operate directly on the host main system bus or in local memory. When operating directly on the host bus, two parameters are of interest, latency and bandwidth.

상술한 바와 같이, BSI(10)는 전송과 수신 경로 각각에 2개 FIFO를 사용한다. 한 FIFO는 64-바이트 깊이이고, 다른 FIFO는 각각 버스팅 능력을 제공하는 2개의 뱅크의 32 바이트를 포함한다. 메인 데이터 FIFO(버스트 뱅크중의 하나를 더함)에 의해 포함되는 대기시간 양은 외부 메모리의 평균 및 최대 버스 대기시간은 충족시켜야만 한다. 링으로부터 매 80ns마다 새로운 바이트를 가지면, 64바이트 FIFO는 6×80=5.12us 최대 대기시간을 제공한다. 물론, 버스는 BSI가 링으로부터 버스트를 조립하는 데에 걸리는 시간보다 적은 평균버스 대기시간을 제공해야만 한다. 32-바이트 버스트에 대해 이것은 2560ns이다.As mentioned above, the BSI 10 uses two FIFOs in each of the transmit and receive paths. One FIFO is 64-byte deep and the other FIFO contains 32 bytes of two banks, each providing bursting capability. The amount of latency covered by the main data FIFO (plus one of the burst banks) must meet the average and maximum bus latency of the external memory. With a new byte every 80ns from the ring, a 64-byte FIFO provides 6 x 80 = 5.12us maximum latency. Of course, the bus must provide less average bus latency than the time it takes for the BSI to assemble a burst from the ring. For a 32-byte burst this is 2560 ns.

대기시간 문제를 지원하기 위하여, BSI(10)는 한 버스 보유기간(tenure)내에 FIFO를 완전히 비우거나 충전시킨다. 이것을 달성하기 위하여, BSI(10)는 FIFO가 충전/비움이 아니면 버스트-리퀘스트가 다수의 트랜잭션을 위해 가정된 상태로 유지한다. 만약에 버스 중재기가 버스를 다른 어떤 것에 대해서는 해제를 하지 않고 다수의 트랜잭션을 위해 BSI(10)에게 승인한다면, 최대 대기시간이 허용될 수 있다. BSI(10)는 버스-그랜트를 제거하므로써 언제든지 선취될 수 있다. 버스-그랜트가 부정될 때 버스는 현재의 트랜잭션을 완료하고 버스를 해제시킨다. 선취로 부터 버스 해제(메모리 대기 상태를 더함)까지에는 최대 11개의 클록이 있게 된다.To support latency issues, the BSI 10 completely emptys or charges the FIFO within one bus tenure. To accomplish this, the BSI 10 keeps burst-requests assumed for multiple transactions unless the FIFO is charging / emptying. If the bus arbiter grants the BSI 10 for multiple transactions without releasing the bus for anything else, the maximum latency may be allowed. The BSI 10 can be preempted at any time by removing the bus-grant. When the bus-grant is denied, the bus completes the current transaction and releases the bus. There is a maximum of 11 clocks from preemption to bus release (plus memory wait).

바이트 오더링Byte ordering

ABus 성능 최적화가 어느 정도된 바이트-어드레스지정 가능 버스이다.ABus performance optimization is a byte-addressable bus with some degree of optimization.

디스크립터는 항상 32-비트 어드레스 경계에 정렬된다. 입력 IDU는 항상 burst_size 경계에 정렬된다 (디폴트 burst_size는 모드 레지스터 셋팅에 의해 결정된다). 출력 OUD는 어떠한 수의 바이트일 수도 있으며 (이것이 프레임의 최종 ODU가 아니면 0바이트일 수도 있다). 어떤 바이트 어드레스 경계에도 정렬될 수 있으나, burst_size 경계에도 정렬된 때 가장 효과적으로 작동한다.Descriptors are always aligned on 32-bit address boundaries. The input IDU is always aligned on a burst_size boundary (the default burst_size is determined by the mode register setting). The output OUD can be any number of bytes (or 0 bytes if this is not the last ODU of the frame). It can be aligned on any byte address boundary, but works best when aligned on a burst_size boundary.

버스트는 항상 32-비트 단어, 16 또는 32바이트(burst_size)어드레스 경계에 정렬된다. 버스트는 결코 burst_size 경계를 넘지 않는다. 만약 큰 버스트가 허용된다면, BSI는 16-바이트와 32-바이트 버스트 중에서 보다 큰 버스트를 수행할 것이다(모든 필요한 데이터를 적재/저장하기에 최소 수의 클록).Bursts are always aligned on 32-bit words, 16 or 32 byte (burst size) address boundaries. The burst never crosses the burst size boundary. If a large burst is allowed, the BSI will perform the larger burst between 16-byte and 32-byte bursts (the minimum number of clocks to load / store all necessary data).

모든 디스크립터 페치는 2개의 단일 단어가 32-비트 정렬된 경계에 및 그경계로부터 접근할 때에 발생된다.All descriptor fetches occur when two single words approach a 32-bit aligned boundary and from its boundaries.

BSI(10)는 동적 버스 사이징을 수행하지 않을 것이다. 액세스된 메모리는 32비트이어야 한다. 버스 인터페이스는 존-엔디언 또는 작은-엔디언 모드에서 작동될 수 있다. 두가지 모드 모두에 대한 비트/바이트 정렬이 각각 표 11 및 12에 도시되었다. 바이트 0은 링으로부터 수신되거나 또는 링으로 전송하지못한 제 1 바이트이다.The BSI 10 will not perform dynamic bus sizing. The memory accessed must be 32 bits. The bus interface can be operated in zone-endian or small-endian mode. Bit / byte alignment for both modes is shown in Tables 11 and 12, respectively. Byte 0 is the first byte received from or not sent to the ring.

표 11Table 11

D[31] D[0]D [31] D [0] 단어word 반부 0Half 0 반부 1Half 1 바이트0Byte 0 바이트 1Byte 1 바이트 2Byte 2 바이트 3Byte 3

표 12Table 12

D[31] D[0]D [31] D [0] 단어word 반부 0Half 0 반부 1Half 1 바이트0Byte 0 바이트 1Byte 1 바이트 2Byte 2 바이트 3Byte 3

디스크립터는 단어 양이며, 따라서, 각 모드에서 같은 것을 배열하는데 단지 데이터 스트림 순서만 바뀐다는 것을 주목하기 바란다.Note that the descriptor is a word quantity, so only the data stream order changes in order to arrange the same in each mode.

버스 상태Bus status

BIU(18)는 단일 및 버스트 판독 및 기입 사이클을 사용한다. 가상 어드레스 모드로 프로그램된 때는 BSI는 'DMA 마스터'이며 가상 어드레스를 공급하는데, 실제 어드레스는 호스트 CPU/MMU에 의해 발생된다. BSI(10)는 MMU가 어드레스를 번역하고 어드레스를 버스상에 보내도록 허용하기 위해서 실제 어드레스를 방출한 후에 2개의 여분의 사이클을 삽입한다. 실제어드레스 모드에서, BSI는 실제 어드레스만을 방출하고 어떤 여분의 사이클도 삽입하지 않는다.BIU 18 uses single and burst read and write cycles. When programmed in virtual address mode, the BSI is a 'DMA master' and supplies a virtual address, which is generated by the host CPU / MMU. The BSI 10 inserts two extra cycles after releasing the actual address to allow the MMU to translate the address and send the address on the bus. In the real address mode, the BSI only releases the real address and does not insert any extra cycles.

BIU 마스터 스테이트 다이어그램이 제 25 도에 도시되었다.The BIU master state diagram is shown in FIG.

마스터 스테이트Master state

Ti 스테이트는 버스 활동이 요구되지 않는 때에 존재한다. BIU(18)는 이 스테이트(모든 것이 해제됨)에 있을 때 버스 신호를 작동하지 않는다. 그러나 BIU(18)가 버스 서비스를 요구하면, BIU(18)는 그것의 버스-리퀘스트를 가정할 수 있다.The Ti state is present when no bus activity is required. BIU 18 does not operate the bus signal when in this state (everything is released). However, if BIU 18 requires a bus service, BIU 18 may assume its bus-request.

트랜잭션이 실행될 때, BIU(18)는 Tbr 스테이트로 되고 버스-리퀘스트를 가정하며 다음에는 버스-그랜트를 기다린다.When the transaction is executed, the BIU 18 goes to the Tbr state and assumes a bus-request and then waits for a bus-grant.

Tbr 다음에 오는 스테이트는 Tva 또는 Tpa이다. 가상 어드레스 모드에서, BIU(18)는 Tva로 되고 가상 어드레스와 사이즈 회선을 버스상에 구동시킨다. 실제 어드레스 모드에서 Tpa는 다음에 발생된다.The state following Tbr is Tva or Tpa. In the virtual address mode, the BIU 18 becomes Tva and drives the virtual address and size lines on the bus. In the real address mode, Tpa is generated next.

Tva 스테이트 다음에 Tmmu 스테이트가 온다. 이 사이클 동안에, 외부 MMU는 Tva동안에 방출된 BIU 가상 어드레스의 번역을 수행한다.The Tva state is followed by the Tmmu state. During this cycle, the external MMU performs the translation of the BIU virtual address released during Tva.

Tmmu 스테이트(가상 어드레스) 또는 Tbr 스테이트(실제 어드레스)뒤에 Tpa 스테이트가 온다. 버스 마스터(가상 어드레스 호스트 CPU/MMU, 실제 어드레스 BSI)는 실제 어드레스를 구동하고 BSI(10)는 어드레스, 판독/기입 스트로브 및 사이즈 신호를 구동한다.The Tpa state comes after the Tmmu state (virtual address) or the Tbr state (actual address). The bus master (virtual address host CPU / MMU, real address BSI) drives the real address and the BSI 10 drives the address, read / write strobe and size signals.

Tpa 스테이트 다음에 BIU(18)는 Td 스테이트로 되어 데이터 단어를 전송한다. 각각의 데이터 전송은 Tw 스테이트를 삽입하므로써 무한히 확장될 수 있는데, 슬레이브(Slave)는 확인응답을 가정하고 데이터를 Td e(사이클)내에 전송하므로써 확인응답한다. 슬레이브가 데이터를 클록당 한 단어의 속도로 구동시킬 수 있다면, 슬레이브는 가정된 그의 확인 응답을 유지하게 된다.Following the Tpa state, the BIU 18 goes to the Td state and transmits the data word. Each data transmission can be infinitely extended by inserting a Tw state. The slave assumes an acknowledgment and acknowledges by transmitting data in Td e (cycle). If the slave can drive data at a rate of one word per clock, the slave will maintain its assumed acknowledgment.

최종 Td/Tw 스테이트 다음에 BIU(18)는 버스 트랜시버를 끄고 반환할 시간을 허용하기 위해 Tr 스테이트로 된다.After the last Td / Tw state, the BIU 18 goes to the Tr state to allow time to turn off and return the bus transceiver.

버스 재시도 리퀘스트는 어떠한 Td/Tw 스테이트에서도 인지된다. BIU(18)는 Tr 스테이트로 되고 다음에는 새로운 버스-그랜트를 얻을 때 트랜잭션을 복귀시킨다. 전체 트랜잭션이 재시도되는데, 즉 버스트의 모든 단어가 재시도된다. 또한, 인터럽트된 트랜잭션이 재시도되기 전에 다른 트랜잭션이 시도될 것이다. BIU(18)는 트랜잭션이 성공적으로 완료되거나 또는 버스 오류가 신호되거나 할 때까지 무한히 재시도한다.Bus retry requests are recognized in any Td / Tw state. BIU 18 goes to the Tr state and then returns the transaction when a new bus-grant is obtained. The entire transaction is retried, ie all words in the burst are retried. Also, another transaction will be attempted before the interrupted transaction is retried. BIU 18 retries indefinitely until the transaction completes successfully or a bus error is signaled.

버스 오류는 Td/Tw 스테이트내에서 인지된다.Bus errors are recognized in the Td / Tw state.

버스 중재Bus arbitration

BIU(18)는 중재를 위해서 버스-리퀘스트 /버스-그랜트 쌍을 사용한다. 외부 논리부는 중재기 기능을 제공해야만 한다. 프로토콜은 보유기간 당 다수의 트랜잭션과 버스 마스터 선취를 제공한다.BIU 18 uses a bus-request / bus-grant pair for arbitration. The external logic must provide the intermediary function. The protocol provides a number of transactions and bus master preemptions per retention period.

BSI(18)는 버스-리퀘스트를 가정하고, 버스-그랜트가 가정되면 마스터 쉽을 수행한다. BIU(18)는 또다른 트랜잭션이 펜딩(pending)되어 있으면, BIU(18)는 버스-리퀘스트가 가정된 스테이트를 유지할 것이며 현재의 트랜잭션이 완료되기전에는 버스-리퀘스트를 재 가정할 것이다. 버스-그랜트가 현재의 트랜잭션 종료전에 (재)가정되면, BIU는 마스터쉽을 유지하고 다음의 트랜잭션을 실행한다. 이 프로세스는 무한히 반복될 수 있다.The BSI 18 assumes a bus-request and performs mastership if a bus-grant is assumed. If the BIU 18 is pending another transaction, the BIU 18 will maintain the state at which the bus-request was assumed and will re-think the bus-request before the current transaction is completed. If the bus-grant is (re) established before the end of the current transaction, the BIU maintains mastership and executes the next transaction. This process can be repeated indefinitely.

만약에 중재기가 BIU를 선취하고자 한다면, 이것은 버스-그랜트를 역가정한다. BIU는 현재의 버스 트랜잭션을 완료하고 버스를 해제할 것이다. 선취로부터 버스 해제까지는 버스 클록의 최대이다(11+8×memory_wait_states).예로서, 1대기-상태 시스템에 있어서, BSI는 최대 19버스 클록내에서 버스를 해제할 것이다.If the arbitrator wishes to preempt the BIU, this reverses the bus grant. The BIU will complete the current bus transaction and release the bus. From preemption to bus release is the maximum of the bus clock (11 + 8 × memory_wait_states). For example, in a one-state system, the BSI will release the bus within a maximum of 19 bus clocks.

신호 (제 15aaa도 내지 제 15dddd도)Signal (fifth 15aaa degree to 15dddd degree)

어드레스 및 데이터Address and data

상술한 바와 같이 ABus는 32-비트 멀티플렉스 어드레스/데이타 버스를 사용한다. 버스트 전송 능력으로 사용자를 지원하기 위하여, 버스트 동안에 사이클하는 어드레스의 3비트가 디멀티플렉스되어 출력된다. 버스는 현재 스테이트에 따라 다른 정보를 전송한다.As mentioned above, ABus uses a 32-bit multiplex address / data bus. To support the user with burst transfer capability, three bits of the address that cycle during the burst are demultiplexed and output. The bus carries different information depending on the current state.

AB_AD[31:0] 32-비트 멀티플렉스 어드레스/데이타 버스. 3-스테이트 입력/출AB_AD [31: 0] 32-bit multiplex address / data bus. 3-state input / output

력. Tva동안에 AB_AD[27:0]은 액세스될(28 비트)메모리 위치의Force. During Tva, AB_AD [27: 0] is the address of the memory location to be accessed (28-bit).

가상 어드레스를 전송하며, AB_AD[31:28]은 사이클 식별기/기능Transmit virtual address, AB_AD [31:28] is the cycle identifier / function

코드(4 비트)를 전송한다. 가상 어드레스 모드에서 호스트 마스Send the code (4 bits). Host Mask in Virtual Address Mode

터는 Tpa동안에 번역된 어드레스를 발원할 것이지만, 실제 어드Will generate a translated address during Tpa,

레스 모드에서 BSI는 Tpa동안에 실제 어드레스와 기능 코드를 구Inless mode, the BSI obtains the actual address and function code during Tpa.

동할 것이다. Td 및 Tw 스테이트 동안에 AB_AD 버스는 데이터Will be. AB_AD bus data during Td and Tw states

를 전송한다. 데이터의 정렬은 큰-엔디언 또는 작은-엔디언이Send it. Sorting of data is big-endian or small-endian

다. 아래의 표는 버스 액세스를 위해 엔코드하는 기능 코드를All. The table below shows the function codes that encode for bus access.

도시한다.Illustrated.

AB_AD[3:0] 이것들은 AB_AD를 위한 바이트 패리티 라인이다. AB_BP[3]는AB_AD [3: 0] These are the byte parity lines for AB_AD. AB_BP [3] is

AB_AD[32:24]를 위한 바이트 패리티이고, AB_BP[2]는 AB_ADByte parity for AB_AD [32:24], AB_BP [2] is AB_AD

[23:16]를 위한 것이며, AB_BP[1]은 AB_AD[15:8]을 위한 것이[23:16], and AB_BP [1] is for AB_AD [15: 8].

고 AB_BP[0]은 AB_AD[7:0]을 위한 것이다. BSI는 ABus로 출력AB_BP [0] is for AB_AD [7: 0]. BSI output to ABus

되는 어드레스상에 패리티를 발생시킨다. 속도를 최대로 하기Parity is generated on the address. Maximizing speed

위하여 패리티는 예비 계산된다 (어드레스가 저장될 때 계산된다Parity is preliminarily computed (calculated when the address is stored)

).).

표 13Table 13

트랜잭션 기능 코드Transaction function code

AD[31:28]AD [31:28] 트랜잭션 형태Transaction type 0123456789ABCDEF0123456789ABCDEF RSAP_1 ODU 적재RSAP_1 ODUD 적재/CNF 저장RSAP_1 REQ 적재RSAP_0 ODU 적재RSAP_0 ODUD 적재/CNF 저장RSAP_0 REQ 적재ISAP_2 IDU 저장ISAP_2 IDUD 저장ISAP_2 PSP 적재ISAP_1 IDU 저장ISAP_1 IDUD 저장ISAP_1 PSP 적재ISAP_0 IDU 저장ISAP_0 IDUD 저장ISAP_0 PSP 적재PTR RAM 적재/저장RSAP_1 ODU LoadRSAP_1 ODUD Load / CNF Save RSAP_1 REQ Load RSAP_0 ODU Load RSAP_0 ODUD Load / CNF Save RSAP_0 REQ Load ISAP_2 IDU Save ISAP_2 IDUD Save ISAP_2 PSP Load ISAP_1 IDU Storage ISAP_1 IDUD Storage ISAP_0 PSP IDSPAP0 Load / Save PTR RAM

AB_A[4:2] 버스트 동안에 사이클하는 디멀티플렉스 어드레스의 3개의 비트.AB_A [4: 2] Three bits of the demultiplex address that cycle during the burst.

3-스테이트 출력만 있음. 이것들은 Tpa로부터 최종 Td 스테이트Only 3-state output is present. These are the final Td states from Tpa

로 구동되고, 다음의 Tr 스테이트에서 부정되면, 다음에는 해제, Then negated in the next Tr state, then released

된다. 제공된 어드레스는 최적 메모리 타이밍을 위하여 외부 파do. The address provided provides an external wave for optimal memory timing.

이프라이닝을 허용하는 것에 주목한다(세부사항에 대해서는 타이Note the allowing efraining (Tie for details

밍 다이어그램을 참조할 것).See the mining diagram).

명령Command

AB_AS_ 어드레스 스트로브 신호는 3-신호 출력으로서, BSI에 의해 Tpa로부터 최종 Td 스테이트까지 가정되며, 그곳에서 신호는 부정되고 Tr 스테이트에서 해제된다. 이것은 2개의 목적을 위해 사용되도록 의도되었다. 어드레스가 가정된 사이클은 AB_AD상에서 구동되며, 따라서, AB_AS는 어드레스 스트로브이다. AB_AS가 비활성이고, AB_ACK_가 활성일 때 다음 사이클은 Tr 스테이트이고 외부 중재기는 bus-reuqest를 모두 샘플링하고 다음의 사이클에서 bus-grant를 방출할 수 있다.The AB_AS_ address strobe signal is a 3-signal output, assumed by the BSI from Tpa to the final Td state, where the signal is negated and released at the Tr state. It is intended to be used for two purposes. A cycle whose address is assumed is driven on AB_AD, so AB_AS is an address strobe. When AB_AS is inactive and AB_ACK_ is active, the next cycle is the Tr state and the external arbitrator can sample all bus-reuqests and release the bus-grant in the next cycle.

AB_RW_ Read_Write_Singnal는 3-상태 출력이며, Tpa로부터 최종 Td 스AB_RW_ Read_Write_Singnal is a three-state output and the final Td switch from Tpa.

테이트까지 가정되고, 다음의 Tr 스테이트내에서 부정되며, 다음Tate is assumed, negated within the next Tr state, and

에는 해제된다. 이것은 판독에 대해서는 높게 구동되고 기입에Is released. It is driven high for read and write to

대해서는 낮게 구동된다.Drive low.

AB_DEN_ Data_Enable 신호는 3-스테이트 출력이며, 제 1 Td 스테이트로The AB_DEN_ Data_Enable signal is a 3-state output and goes to the first Td state.

부터 최종 Td 스테이트까지 가정되고, 다음의 Tr 스테이트내에서To the final Td state, in the next Tr state

부정되며, 다음에는 해제된다.It is negated and then released.

AB_SIZ[2:0] 사이즈 신호는 3-스테이트 출력이며, Tpa로부터 최종 Td 스테이AB_SIZ [2: 0] size signal is a 3-state output and the final Td stay from Tpa

트까지 가정되고, 다음의 Tr 스테이트내에서 부정되며, 다음에는Is assumed, and negated within the next Tr state,

해제된다. 이것들은 트랜잭션의 전송 사이즈를 나타낸다. 엔코Is released. These represent the transfer size of the transaction. Enco

딩을 위해서 아래의 표를 참조하기 바란다(AB_SIZ[2]가 버스트Please refer to the table below for more details.

인디케이터임을 주목하기 바란다).Note that it is an indicator).

표 14Table 14

사이즈 엔코딩Size encoding

AB_SIZ2AB_SIZ2 AB_SIZ1AB_SIZ1 AB_SIZ0AB_SIZ0 전송 사이즈Transmission size NNNNAAAANNNNAAAA NNAANNAANNAANNAA NANANANANANANANA 4 바이트1 바이트2 바이트유보16 바이트32 바이트유보유보4 bytes 1 byte 2 bytes Reserved 16 bytes 32 bytes Reserved

AB_ACK_ 전송 확인응답 입력은 버스 마스터에 슬레이브의 응답을 나태기The AB_ACK_ transmit acknowledgment input indicates the slave's response to the bus master.

는데 사용된다. 슬레이브는 4개의 선택과 삽입 대기 상태를 가It is used to The slave has four select and insert wait states.

지며, 트랜잭션을 위해 재시도하며, 오류 발생시 종료되고, 또는Retry for the transaction, terminate on error, or

통상적으로 종료된다. BSI는 32-비트의 전송만을 수행한다.Normally ends. The BSI performs only 32-bit transmission.

아래의 표 1을 참조하기 바란다.See Table 1 below.

AB_ERR_ 버스 오류 입력은 트랜잭션 재시도 또는 트랜잭션 포기를 발생시AB_ERR_ bus error input causes a transaction retry or transaction abandonment

정된다. 상태 엔코딩은 아래의 표에 도시되었다.It is decided. State encoding is shown in the table below.

표15Table 15

슬레이브 트랜잭션 응답Slave transaction response

AB_ACK_AB_ACK_ AB_ERR_AB_ERR_ 정의Justice NNAANNAA NAAANAAA 삽입 대기상태버스 오류트랜잭션 재시도확인응답Insert Queue Bus Error Transaction Retry Acknowledgment

BIU(18)는 내부 DMA 채널 사이에서 중재하며, 어느 채널이든지 서비스를 요구할 때에는 버스 리퀘스트를 방출한다.The BIU 18 arbitrates between internal DMA channels and issues bus requests when either channel requests service.

AB_BR_ 버스 리퀘스트 출력은 ABus에 액세스하기 위해 BIU에 의해 설정된The AB_BR_ bus request output is set by the BIU to access the ABus.

다.All.

AB_BG_ 버스 그랜트 입력은 버스를 BSI에게 승인하기 위하여 외부 논리부에The AB_BG_ bus grant input is connected to the external logic to authorize the bus to the BSI.

의해 가정되는 것이다. 만약에 AB_BG가 트랜잭션(Tbr)의 초기에 가Is assumed. If AB_BG goes to the beginning of the transaction (Tbr)

정된다면, BSI가 트랜잭션을 실행할 것이다. LE.UH '기타'.VL150If so, the BSI will execute the transaction. LE.UH 'Other'.VL150

AB_CLK_ 모든 ABus 작동은 AB_CLK의 상승 에지에 동기화된다.AB_CLK_ All ABus operations are synchronized to the rising edge of AB_CLK.

실제 어드레스지정 버스 트랜잭션Actual Addressed Bus Transaction

이 절은 실제 어드레스지정 모드에서의 모든 버스 트랜잭션의 세부사항을제공한다(제 24 도 내지 제 26 도). 다음 절은 가상 어드레스지정을 상세히 설명할 것이다.This section provides details of all bus transactions in actual addressing mode (FIGS. 24-26). The next section will describe the virtual addressing in detail.

단일 판독Single reading

Tbr. BSI는 전송을 수행하고자 하는 것을 나타내기 위해 AB_BR을 설정Tbr. The BSI sets AB_BR to indicate that it wants to perform the transmission.

한다. 호스트는 AB_BR을 가정하고, BSI는 AB_A를 구동하며, ABdo. Host assumes AB_BR, BSI drives AB_A, AB

_BG가 가정된 때는 AB_AD를 구동한다. 다음 클록에서 Tpa로 이When _BG is assumed, drive AB.AD. From this clock to Tpa

동한다.Do it.

Tpa. BSI는 어드레스와 함께 AB_A와 AB_AD를 구동하며, AB_AS 를 가Tpa. The BSI drives AB_A and AB_AD with an address, and adds AB 가 AS

정하고, AB_RW와 AB_SIZ[2:0]를 구동하며, 만약에 다른 트랜잭션And run AB_RW and AB_SIZ [2: 0], if other transactions

이 요구되지 않으면, AB_BR를 부정한다.If this is not required, negate AB_BR.

Td. BSI는 AB_AS를 부정하고 AB_DEN_을 가정하며, AB_ACK _와 ABTd. BSI denies AB_AS and assumes AB_DEN_, AB_ACK_ and AB

_ERR_을 샘플링한다. 슬레이브는 AB_ACK를 가정하고, AB_ERRSample the "ERR". Slave assumes AB_ACK and AB_ERR

_를 구동하며, 준비가되면 AB_AD(데이타와 함께)를 구동한다.Drive and, when ready, drive AB_AD (with data).

BSI는 유효 AB_ACK_를 샘플링하고, 판독된 데이터를 포착한다.The BSI samples the valid AB_ACK_ and captures the read data.

Tw 스테이트는 Td 후에 발생할 수 있다.The Tw state may occur after Td.

Tr. BSI는 AB_RW, AB_DEN_ 및 AB_SIZ[2:0]를 부정하고, AB_AS와Tr. The BSI denies AB_RW, AB_DEN_ and AB_SIZ [2: 0], and with AB_AS

AB_AS_를 해제한다. 슬레이브는 AB_ACK_ 및 AB _ERR_을 역Release AB_AS_. Slave reverses AB_ACK_ and AB_ERR_

가정하고, AB_AD를 해제한다.Assume, release AB_AD.

단일 기입Single entry

Tbr. BSI는 전송하고자 하는 것을 나타내기 위하여 AB_BR_을 가정한Tbr. BSI assumes AB_BR_ to indicate that it wants to transmit.

다. 호스트는 AB_BG_을 가정하고, BSI는 AB_A를 구동하며, ABAll. The host assumes AB_BG_, BSI drives AB_A, AB

_ BG가 가정된 때는 AB_AD를 구동한다. 다음 클록에서 Tpa로 이When AB is assumed, drive AB_AD. From this clock to Tpa

동한다.Do it.

Tpa. BSI는 어드레스와 하게 AB_A와 AB_AD를 구동하며, AB_AS를 가Tpa. The BSI drives AB_A and AB_AD with the address and adds AB_AS.

정하고, AB_RW_와 AB_SIZ[2:0]를 구동하며, 만약에 다른 트랜잭And run AB_RW_ and AB_SIZ [2: 0], if different transactions

션이 요구되지 않으면 AB_BR_을 부정한다.If no option is required, negate AB_BR_.

Td. BSI는 AB_AD_를 부정하고, AB_DEN_을 가정하며, 기입 데이터와Td. The BSI denies AB_AD_, assumes AB_DEN_, and

함께 AB_AD를 구동하고, AB_ACK_와 AB_ERR_ 샘플링을 시작한Drive AB_AD together and start sampling AB_ACK_ and AB_ERR_.

다. 슬레이브는 AB_AD 데이터를 포착하고, AB_ACK_를 가정하고All. Slave captures AB_AD data, assuming AB_ACK_

AB_ERR_을 구동한다. BSI는 유효 AB_ACK_를 샘플링한다. TwDrive AB_ERR_. The BSI samples the valid AB_ACK_. Tw

스테이트는 Td 후에 발생할 수 있다.The state may occur after Td.

Tr. BSI는 AB_RW_, AB_DEN_ 및 AB_SIZ[2:0]를 부정하고, AB_A와Tr. BSI denies AB_RW_, AB_DEN_ and AB_SIZ [2: 0], and AB 와 A and

AB_AD 및 AB_AS_를 해제한다. 슬레이브는 AB_ACK_와 AB_ERRRelease AB_AD and AB_AS_. Slave is AB_ACK_ and AB_ERR

_을 역가정하고, 데이터와 함께 AB_AD의 구동을 정지시킨다.Invert and stop AB_AD with data.

버스트 판독Burst reading

Tbr. BSI는 전송을 수행하고자하는 것을 표시하기 위하여 AB_BR_을 가Tbr. The BSI adds AB_BR_ to indicate that it wants to perform the transmission.

정한다. 호스트는 AB_BG_를 가정하고, BSI는 AB_A를 구동하며,Decide The host assumes AB_BG_, BSI drives AB_A,

AB_BG_가 가정된 때 AB_AD를 구동한다. 다음 클록에서 Tpa로Drive AB_AD when AB_BG_ is assumed. Tpa at next clock

이동한다.Move.

Tpa. BSI는 어드레스와 함께 AB_A와 AB_AD를 구동하고, AB_AS를 가정Tpa. BSI drives AB_A and AB_AD with address, assuming AB_AS

하며, AB_RW_ 및 AB_SIZ[2:0]을 구동하고, 다른 트랜잭션이 요Drive AB_RW_ and AB_SIZ [2: 0], and other transactions

구되지 않으면 AB_BR_을 부정한다.If not found, negate AB_BR_.

Td. BSI는 AB_DEN_을 가정하고, AB_ACK_와 AB_ERR_을 샘플링하Td. The BSI assumes AB_DEN_ and samples AB_ACK_ and AB_ERR_.

며, 어드레스를 AB_A상에서 증가시킨다. 슬레이브는 AB_ACK_를Increase the address on AB_A. The slave sends AB 는 ACK_.

가정하고, AB_ERR_을 구동하며, 준비가된 때에는 AB_AD(데이타Assume, drive AB_ERR_ and, when ready, AB_AD (data

와 함께)를 구동한다. BSI는 유효 AB_ACK_를 샘플링하고, 판독With). BSI samples and reads valid AB_ACK_

된 데이터를 포착한다. Tw스테이트는 Td후에 발생될 수 있다. 이Captured data. The Tw state may be generated after Td. this

스테이트는 네번 또는 여덟 번 반복된다(버스트 사이즈에 따라).The state is repeated four or eight times (depending on the bust size).

최종 Td 스테이트상에서 BSI는 AB_AS_를 부정한다.On the final Td state, the BSI negates AB_AS_.

Tr. BSI는 AB_RW_와 AB_DEN_와 AB_SIZ[2:0]를 부정하고, AB_A와Tr. BSI denies AB_RW_, AB_DEN_ and AB_SIZ [2: 0], and AB_A

AB_AS_를 해제한다. 슬레이브는 AB_ACK_ 및 AB_ERR_을 역가Release AB_AS_. Slave titers AB_ACK_ and AB_ERR_

정하고, AB_AD를 해제한다.And release AB_AD.

버스트 기입Burst entry

Tbr. BSI는 전송하고자 하는 것을 나타내기 위하여 AB_BR_을 가정한Tbr. BSI assumes AB_BR_ to indicate that it wants to transmit.

다. 호스트는 AB_BE_를 가정하고, BSI는 AB_A를 구동하며, ABAll. The host assumes AB_BE_, BSI drives AB_A, AB

_BG_가 가정된 때에는 AB_AD를 구동한다. 다음 클록에서 Tpa로When _BG_ is assumed, drive AB_AD. Tpa at next clock

이동한다.Move.

Tpa. BSI는 어드레스와 함께 AB_A와 AB_AD를 구동하고, AB_AS를 가정Tpa. BSI drives AB_A and AB_AD with address, assuming AB_AS

하며, AB_RW_ 및 AB_RW_ 및 AB_SIZ[2:0]를 구동하고, 다른 트Drive AB_RW_ and AB_RW_ and AB_SIZ [2: 0];

랜잭션이 요구되지 않을 때에는 AB_BR_을 부정한다.If no transaction is required, AB_BR_ is negated.

Td. BSI는 AB_DEN_을 가정하며, 기입 데이터와 함께 AB_AD를 구동하고Td. The BSI assumes AB_DEN_ and drives AB_AD with the write data.

, AB_ACK_ 및 AB_ERR을 샘플링하며, AB_A상에서 어드레스를 증, AB_ACK_ and AB_ERR, and increment the address on AB_A

가시킨다. 슬레이브는 AB_AD 데이터를 포착하고, AB_ACK_를 가Add. Slave captures AB_AD data and adds AB_ACK_.

정하며, AB_ERR_을 구동시킨다. BSI는 유효 AB_ACK_를 샘플링Drive the drive AB_ERR_. BSI samples valid AB_ACK_

한다. Tw 스테이트는 Td후에 발생할 수 있다. 이 스테이트는 완do. The Tw state may occur after Td. This state

전한 버스트에 대해 요구되는 대로 반복된다. 최종 Td 스테이트상Repeat as required for transmitted bursts. Final Td State Award

에서 BSI는 AB_AS를 부정한다.BSI denies AB_AS.

Tr. BSI는 AB_RW와 AB_DEN_과 AB_SIZ[2:0]를 부정하고, AB_A와Tr. BSI denies AB_RW, AB_DEN_ and AB_SIZ [2: 0], and AB 와 A

AB_AD와 AB_AS를 해제한다. 슬레이브는 AB_ACK_ 및 AB_ERR_Release AB_AD and AB_AS. Slave is AB_ACK_ and AB_ERR_

을 역가정하고, 데이터와 함께 AB_AD의 구동을 정지시킨다.Inversely, stop the drive of AB_AD with the data.

가상 어드레스지정 버스 트랜잭션Virtual Addressed Bus Transaction

이 절은 가상 어드레스지정 모드에서의 모든 버스 트랜잭션의 세부사항을 제공한다.This section provides details of all bus transactions in virtual addressing mode.

단일 판독Single reading

Tbr. BSI는 전송을 수행하고자 하는 것을 나타내기 위하여 AB_BR_를Tbr. The BSI uses AB_BR_ to indicate that it wants to perform the transmission.

가정한다. 호스트는 AB_BG_를 가정하고 BSI는 AB_A를 구동하고Assume The host assumes AB_BG_ and BSI drives AB_A

, AB_BG_가 가정된 때에는 AB_AD를 구동한다. 다음 클록에서If AB_BG_ is assumed, AB_AD is driven. At the next clock

Tva로 이동한다.Go to Tva.

Tva. BSI는 한 클록 동안 가상 어드레스로 AB_A와 AB_AD를 구동하고,Tva. The BSI drives AB_A and AB_AD with a virtual address for one clock,

AB_AS_를 부정하며, AB_RD_를 가정하고, AB_SIZ[2:0]를 구동Neglect AB_AS_, assume AB_RD_, and drive AB_SIZ [2: 0]

하고, 다른 트랜잭션이 요구되지 않으면 AB_BR_을 부정한다.If no other transaction is required, it negates AB_BR ..

Tmmu. 호스트 MMU는 이 클록 동안에 어드레스 번역을 수행한다.Tmmu. The host MMU performs address translation during this clock.

Tpa. 호스트 MMU는 번역된 (실제)어드레스를 가지고 AB_AD를 구동하고,Tpa. The host MMU runs AB_AD with a translated (real) address,

BSI는 AB_A를 구동하며, AB_AS를 가정한다.BSI drives AB_A and assumes AB_AS.

Td. BSI는 AB_AS_를 부정하고, AB_DEN_을 가정하며, AB_ACK_와Td. BSI denies AB_AS_, assumes AB_DEN_, and AB_ACK_

AB_ERR_을 샘플링한다. 슬레이브는 AB_ACK_를 가정하고, AB_Sample AB_ERR_. Slave assumes AB_ACK_, AB_

_ERR_을 구동하며, 준비가 된 때에는 AB_AD(데이타와 함께)를_ERR_, and when ready, use AB_AD (with data).

구동한다. BSI는 유효 AB_ACK_를 샘플링하고, 판독된 데이터를Drive. The BSI samples the valid AB_ACK_ and reads the read data.

포함한다. Tw 스테이트는 Td후에 발생할 수 있다.Include. The Tw state may occur after Td.

Tr. BSI는 AB_RW_와 AB_DEN_과 AB_SIZ[2:0]를 부정하고, AB_A와Tr. BSI denies AB_RW_, AB_DEN_ and AB_SIZ [2: 0], and AB_A

AB_AS_를 해제한다. 슬레이브는 AB_ACK_ 및 AB_ERR_을 역가Release AB_AS_. Slave titers AB_ACK_ and AB_ERR_

정하고, AB_AD를 해제한다.And release AB_AD.

단일 기입Single entry

Tbr. BSI는 전송을 수행하고자 하는 것을 나타내기 위해 AB_BR_를 가Tbr. The BSI adds AB_BR_ to indicate that it wants to perform the transmission.

정한다. 호스트는 AB_BG_를 가정하고 BSI는 AB_A를 구동하며,Decide The host assumes AB_BG_ and BSI drives AB_A,

AB_BG가 가정된 때에는 AB_AD를 구동한다. 다음 클록에서 Tva로When AB_BG is assumed, drive AB_AD. From next clock to Tva

이동한다.Move.

Tva. BSI는 한 클록 동안 가상 어드레스를 AB_A와 AB_AD를 구동하고,Tva. The BSI drives AB_A and AB_AD for a virtual address for one clock.

AB_AS_를 부정하며, AB_RW_를 부정하고, AB_SIZ[2:0]를 구동Negate AB_AS_, negate AB_RW_, and drive AB_SIZ [2: 0]

한다.do.

Tmmu. 호스트 MMU는 이 클록 동안에 어드레스 번역을 수행한다.Tmmu. The host MMU performs address translation during this clock.

Tpa. 호스트 MMU는 어드레스와 함께 AB_AD를 구동하고, BSI는 AB_A를Tpa. The host MMU drives AB_AD with the address, and BSI drives AB_A.

구동하며 AB_AS를 가정하고, 다른 트랜잭션이 요구되지 않으면Assuming AB_AS, if no other transaction is required

AB_BR_을 부정한다.Negative AB_BR_

Td. BSI는 AB_AS_를 부정하고, AB_DEN_을 가정하며 기입 데이터와Td. BSI denies AB_AS_ and assumes AB_DEN_

함께 AB_AD를 구동하고 AB_ACK_ 및 AB_ERR_의 샘플링을 시작Drive AB_AD together and start sampling AB_ACK_ and AB_ERR_.

한다. 슬레이브는 AB_AD 데이터를 포착하고, AB_ACK_를 가정하do. Slave captures AB_AD data and assumes AB_ACK_

며, AB_ERR_를 구동한다. BSI는 유효 AB_ACK_를 샘플링한다.Drive AB_ERR_. The BSI samples the valid AB_ACK_.

Tw 스테이트는 Td후에 발생할 수 있다.The Tw state may occur after Td.

Tr. BSI는 AB_RW_와 AB_DEN_과 AB_SIZ[2:0]를 부정하고, AB_A와Tr. BSI denies AB_RW_, AB_DEN_ and AB_SIZ [2: 0], and AB_A

AB_AD와 AB_AS를 해제한다. 슬레이브는 AB_ACK_와 AB_ERR_Release AB_AD and AB_AS. Slave is AB_ACK_ and AB_ERR_

를 역가정하고, 데이터와 함께 AB_AD의 구동을 정지시킨다.Inversely, stop the drive of AB_AD with the data.

버스트 판독Burst reading

Tbr. BSI는 전송을 수행하고자 하는 것을 나타내기 위하여 AB_BR_를Tbr. The BSI uses AB_BR_ to indicate that it wants to perform the transmission.

가정한다. 호스트는 AB_BG_를 가정하고, BSI는 AB_A를 구동하Assume The host assumes AB_BG_ and BSI drives AB_A.

며, AB_BG_가 가정된 때에는 AB_AD를 구동한다. 다음 클록에서If AB_BG_ is assumed, AB_AD is driven. At the next clock

Tva로 이동한다.Go to Tva.

Tva. BSI는 한 클록 동안 가상 어드레스로서 AB_A와 AB_AD를 구동하Tva. The BSI drives AB_A and AB_AD as virtual addresses for one clock.

고, AB_AS_를 부정하며, AB_RD_를 가정하고, AB_SIZ[2:0]를And deny AB_AS_, assuming AB_RD 를, and AB_SIZ [2: 0]

구동하며, 다른 트랜잭션이 요구되지 않으면 AB_BR을 부정한다.If no other transaction is required, it negates AB # BR.

Tmmu. 호스트 MMU는 이 클록 동안에 어드레스 번역을 수행한다.Tmmu. The host MMU performs address translation during this clock.

Tpa. 호스트 MMU는 번역된 (실제)어드레스로 AB_AD를 구동하고 BSI는Tpa. The host MMU runs AB_AD with a translated (real) address and the BSI

AB_A를 구동하며, AB_AS_를 가정한다.Drive AB_A and assume AB_AS_.

Td. BSI는 AB_DEN_을 가정하고, AB_ACK_와 AB_ERR_를 샘플링한Td. BSI assumes AB_DEN_ and samples AB_ACK_ and AB_ERR_.

다. 슬레이브는 AB_ACK_를 가정하고, AB_ERR_를 구동하며, 준All. Slave assumes AB_ACK_ and drives AB_ERR_

비가 된 때에는 AB_AD(데이타와 함께)를 구동한다. BSI는 유효When it is raining, drive AB_AD (with data). BSI is valid

AB_ACK_를 샘플링하고, 판독 데이터를 포착한다. Tw 상태는 TdSamples AB_ACK_ and captures the read data. Tw state is Td

후에 발생할 수 있다. 이 상태는 (버스트 사이즈에 따라서). 최It can happen later. This state is dependent on the burst size. Choi

최종 Td 스테이트에서, BSI는 AB_AS_를 부정한다.In the final Td state, the BSI negates AB_AS_.

버스트 기입Burst entry

Tbr. BSI는 전송을 수행하고자 하는 것을 나타내기 위하여 AB_BR_를Tbr. The BSI uses AB_BR_ to indicate that it wants to perform the transmission.

가정한다. 호스트는 AB_BG_를 가정하고, BSI는 AB_A를 구동하Assume The host assumes AB_BG_ and BSI drives AB_A.

며, AB_BG_가 가정된 때에는 AB_AD를 구동한다. 다음 클록에If AB_BG_ is assumed, AB_AD is driven. On the next clock

서 Tva로 이동한다.Go to Tva.

Tva. BSI는 한 클록 동안 가상 어드레스로서 AB_A와 AB_AD를 구동하고Tva. The BSI drives AB_A and AB_AD as virtual addresses for one clock.

하고, AB_AS_를 부정하며, AB_RW_를 부정하고, AB_SIZ[2:0]를Deny AB_AS_, deny AB_RW_, and deny AB_SIZ [2: 0]

구동한다.Drive.

Tmmu. 호스트 MMU는 이 클록 동안에 어드레스 번역을 수행한다.Tmmu. The host MMU performs address translation during this clock.

Tpa. 호스트 MMU는 어드레스와 함께 AB_AD를 구동하고, BSI는 AB_A를Tpa. The host MMU drives AB_AD with the address, and BSI drives AB_A.

구동하며, AB_AS_를 가정하고, 다른 트랜잭션이 요구되지 않을Run, assume AB_AS_, and no other transaction is required.

때에는 AB_BR_을 부정한다.In this case, AB_BR_ is negated.

Td. BSI는 AB_DEN_을 가정하고, 기입된 데이터와 함께 AB_AD_를Td. The BSI assumes AB_DEN_ and returns AB_AD_ with the data entered.

구동하며 AB_ACK_ 및 AB_ERR_을 샘플링하기 시작한다. 슬레이Drives and starts sampling AB_ACK_ and AB_ERR_. Slay

브는 AB_AD 데이터를 포착하고, AB_ACK_를 가정하며, AB_ERRBb captures AB_AD data, assuming AB_ACK_, and AB_ERR

_을 구동한다. BSI는 유효 AB_ACK_를 샘플링한다. Tw 스테이Drive _. The BSI samples the valid AB_ACK_. Tw Stay

트는 Td 후에 발생할 수 있다. 이 스테이트는 완전한 버스트를Can occur after Td. This state is a complete burst

위해 필요에 따라 반복된다. 최종 Td 스테이트상에서 BSI는 AB_To be repeated as needed. On the final Td state, the BSI is AB_

AS_를 부정한다.Deny AS.

Tr. BSI는 AB_RW_와 AB_DEN_과 AB_SIZ[2:0]를 부정하고, AB_A와Tr. BSI denies AB_RW_, AB_DEN_ and AB_SIZ [2: 0], and AB_A

AB_AD와 AB_AS_를 해제한다. 슬레이브는 AB_ACK_ 및 AB_Release AB_AD and AB_AS_. Slave is AB_ACK_ and AB_

ERR_을 역가정하고, 데이터와 함께 AB_AD의 구동을 정지시킨다.Inversely assume ERR \ and drive AB_AD with the data.

BMAC 인터페이스BMAC interface

이 절은 BMAC와 BSI사이의 인터페이스를 기술한다. 제 30A 도 내지 제 30C 도에 도시된 바와 같이, 인터페이스는 2개의 부분으로 되어 있는데, 즉, MAC 인디케이트 인터페이스와 MAC 리퀘스트 인터페이스이다.This section describes the interface between BMAC and BSI. As shown in Figs. 30A to 30C, the interface has two parts, a MAC indicator interface and a MAC request interface.

리퀘스트 인터페이스Request interface

데이터data

MRD[7:0] 이것은 BSI로부터의 8-비트 출력 데이터이다.MRD [7: 0] This is 8-bit output data from the BSI.

MRP 이것은 MRD상의 패리티이다.MRP This is parity on the MRD.

리퀘스트된 서비스Requested Service

RQRCLS[3:0] 리퀘스트/해제 등급의 형태를 선택한다RQRCLS [3: 0] Select the type of request / release class

RQBCN 프레임이 비콘 스테이트로부터 보내질 것을 요구한다.Require an RQBCN frame to be sent from the beacon state.

RQCLM 프레임이 클레임 스테이트로부터 보내질 것을 요구한다.Require an RQCLM frame to be sent from the claim state.

옵션option

STRIP 무효 스트립 옵션STRIP Invalid Strip Option

SAT 데이터 스트림으로부터 SA를 선택하고 MAC파라미터 램을 선택하지Select SA from SAT data stream and not select MAC parameter RAM

않는다 (이것은 통상적으로 BMAC상에서 SAT와 SAIGT 모두에 연결(This is typically connected to both SAT and SAIGT on BMAC

된다).do).

FCST BMAC-발생 FCS를 불가능(disable)하게 하고, 대신에 데이터 스트림Disable FCST BMAC-generated FCS and instead stream data

을 사용한다.Use

전송 핸드셰이크Transmission handshake

RQRDY 포착하면, 요구되는 등급의 토큰이 사용될 것이라는 것을 나타낸다.If RQRDY is captured, it indicates that the token of the required level will be used.

TXRDY 사용가능한 토큰이 포착되었음을 나타낸다.TXRDY Indicates that an available token has been captured.

RQSEND 데이터가 전송될 준비가 되었음을 나타낸다.Indicates that the RQSEND data is ready for transmission.

MRDSMRD 전송 데이터를 스트로브한다. BMAC상에서 TXACK에 연결한다.Strobe MRDSMRD transmission data. Connect to TXACK on BMAC.

RQEOF 데이터의 최종 바이트가 전송 인터페이스에 있음을 나타낸다.Indicates that the last byte of RQEOF data is on the transport interface.

RQFINAL 리퀘스트의 마지막 프레임을 나타낸다.RQFINAL Represents the last frame of a request.

RQABORT 현재의 프레임을 포기하고자 BSI에 의해 가정된다.RQABORT is assumed by the BSI to abandon the current frame.

TXED ED가 전송되고 있음을 나타낸다.Indicates that TXED ED is being sent.

TXPASS 서비스 기회가 없음을 나타낸다.Indicates no TXPASS service opportunity.

TXABORT MAC 전송 DID가 이 프레임을 포기하였음을 나타낸다.TXABORT Indicates that the MAC transmit DID has given up this frame.

전송 상태Transmission status

TXRINGOP 국부 MAC 전송기 링 작동 플래그의 스테이트를 나타낸다.TXRINGOP Indicates the state of the local MAC transmitter ring operation flag.

TXCLASS 현재의 토큰의 등급을 나타낸다.TXCLASS This is the class of the current token.

인디케이스 인터페이스Indiecase interface

데이터data

MID[7:0] 이것은 BSI로 입력되는 8-비트 입력 데이터이다.MID [7: 0] This is 8-bit input data input to the BSI.

MIP 이것은 MID상의 패리티이다.MIP This is parity on the MID.

프레임 시퀸싱 및 핸드셰이크Frame Sequencing and Handshake

FCRCVD 프레임 제어가 수신되었음을 나타낸다.Indicates that FCRCVD frame control was received.

INFORCVD INFO 필드의 처음 4개의 바이트가 수신되었음을 나타낸다.INFORCVD Indicates that the first four bytes of the INFO field have been received.

EDRCVD 프레임 시퀀스의 끝(EDFS)이 수신되고 있음을 나타낸다.Indicates the end of the EDRCVD frame sequence (EDFS) is being received.

MIDS MAC 인디케이트 데이터 스트로브이며, 유효 데이터에 대해 가정된다.MIDS MAC indicator data strobe, assumed for valid data.

프레임 정보Frame information

AFLAG DA 필드상에 내부 어드레스 매치가 발생했음을 나타낸다.Indicates that an internal address match has occurred on the AFLAG DA field.

MFLAG 수신된 SA가 MLA 또는 MSA(BMAC) 레지스터와 매치되는 것을 나타낸MFLAG Indicates that a received SA matches the MLA or MSA (BMAC) register.

다.All.

SAMESA 현재의 프레임의 SA가 전의 프레임의 SA와 같고, 프레임이 MAC 프SAMESA The SA of the current frame is the same as the SA of the previous frame, and the frame is a MAC frame.

레임이 아니었으며, 그 2개의 사이즈가 동일함을 나타낸다.It was not a lame, indicating that the two sizes were identical.

SAMEINFO 현재 프레임의 info 필드의 처음 4개 바이트가 최종 프레임의 처음SAMEINFO The first four bytes of the info field of the current frame are the beginning of the last frame.

4개의 info 바이트와 같고, 이것들은 MAC 프레임이며, 그들의 어드Equal to 4 info bytes, these are MAC frames, their

레스 길이가 같다는 것을 나타낸다.Indicates that the lengths are the same.

프레임 상태Frame state

VDL 수신된 프레임을 위한 유효 데이터 길이를 나타낸다.VDL indicates the valid data length for a received frame.

VFCS 수신된 프레임을 위한 유효 FCS를 나타낸다.VFCS Indicates a valid FCS for a received frame.

TKRCVD 완전한 토큰이 수신되었음을 나타낸다.TKRCVD Indicates that a complete token has been received.

FRSTRP 프레임이 스트립되었음을 나타낸다.Indicates that the FRSTRP frame has been stripped.

FOERROR 표준-정의 포맷 오류를 나타낸다.FOERROR Indicates a standard-defined format error.

MACRST 내부 오류, MAC 프레임, MAC 리셋, 소프트웨어 리셋 또는 하드웨어MACRST internal error, MAC frame, MAC reset, software reset, or hardware

리셋을 나타낸다.Indicates a reset.

상태 인디케이터Status indicator

VCOPY COPY 인디케이터를 셋트하는데 사용된다.Used to set the VCOPY COPY indicator.

EA 외부 A-플래그, 외부 DA 매치가 검출되었을 때에 가정된다. ECIP가EA outer A-flag, external DA match is assumed when detected. ECIP

가정으로부터 부정으로 바뀔 때 샘플링된다. 샘플 윈도우는 JK->EDSampled when changing from hypothesis to negative. Sample window is JK-> ED

로부터 온다.Comes from.

ECIP 프로그레스내에서의 외부 비교. EA 입력을 스트로브하는데 사용된External comparisons within ECIP progress. Used to strobe the EA input

다.All.

EM 외부 M_Flat. 외부 SA 매치가 검출 되었을때 가정된다. 프레임의EM external M_Flat. It is assumed when an external SA match is detected. Of the frame

최종 바이트 상에서(통상적으로 EDRCVD가 가정되었을때)또는 ∼ECIPOn the last byte (usually when EDRCVD is assumed) or ~ ECIP

상에서 BSI에 의해 샘플링된다.Sampled by BSI on

기타Etc

LBC[5, 3, 1] CDD로부터의 국부 바이트 클록의 여러가지 위상Various phases of local byte clock from LBC [5, 3, 1] CDD

SSER 링 클록 스캔 체인을 위한 스캔경로 인에이블Scanpath Enable for SSER Ring Clock Scan Chain

SSEB 버스 클록 스캔 체인을 위한 스캔경로 인에이블Scanpath Enable for SSEB Bus Clock Scan Chain

SIR[1:0] 클록 스캔 체인을 위한 스캔 체인 입력Scan chain input for SIR [1: 0] clock scan chain

SIB[1:0] 버스 클록 스캔 체인을 위한 스캔 체인 입력Scan Chain Input for SIB [1: 0] Bus Clock Scan Chain

CBus 인터페이스CBus interface

BSI(10)는 내부 레지스터와 논리부에 8-비트 비동기적 인터페이스를 제공한다. 내부 레지스터에 액세스가 가능하다. 이 인터페이스는 다른 NSC FDDI 칩 셋트 부재상의 유사한 인터페이스와 호환되며, CBus라고 지칭된다.The BSI 10 provides an 8-bit asynchronous interface to internal registers and logic. Internal registers are accessible. This interface is compatible with similar interfaces on other NSC FDDI chip set members and is called CBus.

어텐션/통보 플래그에의 액세스는 CBus를 경유해야만 한다. 연산 명령은 CBus를 경유하여 BSI내에 적재된다. CBus를 위한 프로토콜이 이절에 기술된다. 명령 레지스터 용도와 내부 레지스터 맵은 위의 프로그래밍 인터페이스 절에 기술되었다.Access to the Attention / Notification flag must be via CBus. Operation instructions are loaded into the BSI via the CBus. The protocol for CBus is described in this section. Instruction register usage and internal register maps are described in the Programming Interfaces section above.

CBus 신호CBus Signal

CB[4:0] 제어 버스 어드레스 입력은 액세스될 BSI 위치를 선택한다.The CB [4: 0] control bus address input selects the BSI location to be accessed.

CBD[7:0] 양방향 제어 버스 데이터 신호는 BSI로 또한 BSI로부터 8-비트 데CBD [7: 0] Bidirectional control bus data signals are decoded from the BSI and 8-bit from the BSI.

이터를 전송한다.Send data.

CBP 이것은 CBD 버스를 위한 기수 패리티이다.CBP This is the odd parity for the CBD bus.

CE_ 칩 인에이블CE_ Chip Enable

CB_RW_ 판독/기입_입력은 데이터 전송 방향을 선택한다.The CB_RW_ read / write input selects the data transfer direction.

CB_ACK_ 확인응답 개방-드레인 출력CB_ACK_ Acknowledgment Open-Drain Output

INT_ BSI로부터의 개방-드레인 출력을 인터럽트시킨다.INT_ Interrupts the open-drain output from the BSI.

RST_ BSI로의 하드 리셋 입력.RST_ Hard reset input to BSI.

CBus 프로토콜CBus protocol

프로토콜은 간단한 비동기적 핸드셰이크이다. 호스트는 CBA와 CBD상에(기록을 위해) 어드레스와 데이터를 셋업하고, CB_RW_를 구동하며, 다음에는 CE_를 가정한다. 전송이 완료될 때 BSI는 CB_ACK_를 가정한다. CB_ACK_가 일단 가정되면 CE_는 역가정될 수 있고, CB_ACK_가 일단 역가정되면 새로운 트랜잭션이 개시될 수 있다. CB_ACK_는 개방-드레인 출력이고, 따라서, 높은 출력으로 구동되지 않는다.The protocol is a simple asynchronous handshake. The host sets up addresses and data on the CBA and CBD (for writing), drives CB'RW ', and then assumes CE'. When the transmission is complete, the BSI assumes CB_ACK_. Once CB \ ACK \ is assumed, CE \ can be reversed, and once CB \ ACK \ is reversed, a new transaction can be initiated. CB_ACK_ is an open-drain output and therefore is not driven to a high output.

본 명세서에 기술된 본 발명의 실시예에 대한 여러가지 수정이 본 발명의 실시에 사용될 수 있다는 것을 이해해야 한다. 다음의 청구항들은 본 발명의 범위를 한정하고, 이 청구항들의 범위내의 구조물과 방법 및 그와 동등한 것들이 그 범위에 포함되게 하는 것이 의도하는 바이다.It should be understood that various modifications to the embodiments of the invention described herein may be used in the practice of the invention. The following claims are intended to limit the scope of the present invention, and to include within its scope the structures and methods and equivalents thereof.

본 발명에 따른 데이터 통신 시스템은, 근거리 통신망의 매체 액세스 제어(MAC)기능과 MAC를 경유하여 네트워크 매체에 부착된 호스트 시스템 사이에 인터페이스를 제공한다. 인터페이스는 MAC 수신기로부터 수신된 프레임과 매체에의 전송을 위해 호스트에 의해 제공되는 프레임 모두를 위해 호스트 메모리 시스템과 MAC 사이의 정보 전달을 수행한다.The data communication system according to the present invention provides an interface between a medium access control (MAC) function of a local area network and a host system attached to a network medium via a MAC. The interface performs the transfer of information between the host memory system and the MAC for both frames received from the MAC receiver and frames provided by the host for transmission to the medium.

본 발명에 따른 MAC 인터페이스(EOF에서)는 한 최종 단어(word)를 프레임 상태로서 첨가하고 상태 단어를 데이터 뒤에서 수신 FIFO내로 위치시킨다. 시스템 인터페이스는 상태를 처리하기 전에 데이터를 판독하고 EOF 상태 디스크립터(descriptor)를 기입한다. 데이터/상태 동기화는 자동적이며, MAC 인터페이스와 시스템 인터페이스 사이의 여타 통신은 필요하지 않다. 이것은 복잡한 데이터/상태 동기화 없이도 프레임을 몇 개라도 수신 FIFO내에 위치시킬 수 있게 한다. 이것은 많은 소형 프레임을 수신할 때 FIFO의 전체 사용을 허용하며 따라서 장기적 버스 지연으로 인한 드롭 프레임의 가능성을 감소시킨다. 이것은 수신 FIFO가 어떠한 깊이로 될 수 있다는 점에서 설계 신축성을 허용한다.The MAC interface (in EFO) according to the present invention adds one final word as the frame state and places the state word behind the data into the receive FIFO. The system interface reads data and writes EOF state descriptors before processing the state. Data / state synchronization is automatic and no other communication between the MAC interface and the system interface is required. This allows any number of frames to be placed within the receive FIFO without complicated data / state synchronization. This allows full use of the FIFO when receiving many small frames, thus reducing the possibility of drop frames due to long-term bus delays. This allows for design flexibility in that the receiving FIFO can be at any depth.

Claims (3)

근거리 통신망과 상기 네트워크에 부착된 스테이션과 연관된 메모리 시스템과의 사이에서 정보의 전송을 위한 인터페이스 시스템에 있어서,An interface system for the transfer of information between a local area network and a memory system associated with a station attached to the network, the interface system comprising: (가) 상기 인터페이스 시스템과 상기 메모리 시스템 사이에서의 정보 전송을 구현하기 위한 버스 인터페이스 수단과,(A) bus interface means for implementing information transfer between said interface system and said memory system; (나) 상기 네트워크로부터 상기 인터페이스 시스템에 의해 수신된 정보를 상기 버스 인터페이스 수단을 경유하여 상기 메모리 시스템에 전송하기 위한 인디케이트 수단과,(B) indicator means for transmitting information received by the interface system from the network to the memory system via the bus interface means; (다) 상기 버스 인터페이스 수단에 의해 상기 메모리 시스템으로부터 상기 인터페이스 시스템에 의해 수신된 정보를 상기 네트워크에 전송하기 위한 리퀘스트 수단과,(C) requesting means for transmitting, by the bus interface means, information received by the interface system from the memory system to the network; (라) 상기 인디케이트 수단과 상기 리퀘스트 수단의 상태를 감시하고, 대응 상태 신호를 발생시키며, 상기 인터페이스 시스템을 경유하여 상기 네트워크와 상기 메모리 시스템 사이에 전송된 정보를 위하여 상기 메모리 시스템내의 저장 스페이스의 할당을 관리하기 위하여 상기 인디케이트 수단과 상기 리퀘스트 수단에 연결된 상태 발생/스페이스 관리 수단을 포함하며,(D) monitoring the state of the indicator means and the request means, generating a corresponding status signal, and for storing information transmitted between the network and the memory system via the interface system; A status generation / space management means connected to said indicator means and said request means for managing an assignment, 상기 네트워크로부터 수신된 정보를 예정된 기준에 따라 상기 메모리 시스템으로 전송하기 위한 다수의 수신채널을 추가로 포함하는 것을 특징으로 하는 인터페이스 시스템.And a plurality of receiving channels for transmitting the information received from the network to the memory system according to a predetermined criterion. 제 1 항에 있어서,The method of claim 1, 상기 각 채널은 프레임 데이터가 상기 메모리 시스템내의 어느곳에 저장될 것인가를 지적하는 채널 자체의 풀 스페이스 디스크립터 큐와, 독립된 상태 큐를 갖는 것을 특징으로 하는 인터페이스 시스템.Wherein each channel has a full space descriptor queue of the channel itself indicating where in the memory system the frame data will be stored, and an independent status queue. 근거리 통신망과 상기 네트워크에 부착된 스테이션과 연관된 메모리 시스템과의 사이에서 정보의 전송을 위한 인터페이스 시스템에 있어서,An interface system for the transfer of information between a local area network and a memory system associated with a station attached to the network, the interface system comprising: (가) 상기 인터페이스 시스템과 상기 메모리 시스템 사이에서의 정보 전송을 구현하기 위한 버스 인터페이스 수단과,(A) bus interface means for implementing information transfer between said interface system and said memory system; (나) 상기 네트워크로부터 상기 인터페이스 시스템에 의해 수신된 정보를 상기 버스 인터페이스 수단을 경유하여 상기 메모리 시스템에 전송하기 위한 인디케이트 수단과,(B) indicator means for transmitting information received by the interface system from the network to the memory system via the bus interface means; (다) 상기 버스 인터페이스 수단에 의해 상기 메모리 시스템으로부터 상기 인터페이스 시스템에 의해 수신된 정보를 상기 네트워크에 전송하기 위한 리퀘스트 수단과,(C) requesting means for transmitting, by the bus interface means, information received by the interface system from the memory system to the network; (라) 상기 인디케이트 수단과 상기 리퀘스트 수단의 상태를 감시하고, 대응 상태 신호를 발생시키며, 상기 인터페이스 시스템을 경유하여 상기 네트워크와 상기 메모리 시스템 사이에서 전송된 정보를 위하여 상기 메모리 시스템내의 저장 스페이스의 할당을 관리하기 위하여 상기 인디케이트 수단과 상기 리퀘스트 수단에 연결된 상태 발생/스페이스 관리 수단을 포함하며,(D) monitoring the status of the indicator means and the request means, generating a corresponding status signal, and for storing information transmitted between the network and the memory system via the interface system; A status generation / space management means connected to said indicator means and said request means for managing an assignment, 네트워크로의 정보의 전송을 위한 우선순위가 부여되며, 메모리 시스템으로부터 수신된 정보를 예정된 기준에 따라서 네트워크로 전송하기 위한 다수의 전송체널과, 만약에 선취가능 전송채널의 선취가 발생되고 인터페이스가 보다 높은 우선순위의 채널을 서비스하기 위하여 전송 채널을 스위치하면, 완료시에, 인터페이스 시스템이 선취가능 전송 채널로 다시 스위치되고 유지된 식별자 정보에 기초한 처리를 복귀시키도록 선취가능 전송채널로 전송된 정보에 연관된 식별자 정보를 유지하기 위한 수단을 추가로 포함하는 것을 특징으로 하는 인터페이스 시스템.Priority is given for the transmission of information to the network, a plurality of transmission channels for transmitting information received from the memory system to the network according to a predetermined criterion, and if a preemption of a preemptive transmission channel occurs, Switching the transport channel to service a high priority channel causes the interface system to, upon completion, be associated with the information transmitted on the preemptive transport channel to switch back to the preemptive transport channel and return processing based on the retained identifier information. And means for maintaining the identifier information.
KR1019990018429A 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface KR100240732B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US51624590A 1990-04-27 1990-04-27
US516,245 1990-04-27
KR1019910006778A KR100240726B1 (en) 1990-04-27 1991-04-26 Method and apparatus for implementing a media access control/host system interface

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1019910006778A Division KR100240726B1 (en) 1990-04-27 1991-04-26 Method and apparatus for implementing a media access control/host system interface

Publications (1)

Publication Number Publication Date
KR100240732B1 true KR100240732B1 (en) 2000-03-15

Family

ID=26628575

Family Applications (6)

Application Number Title Priority Date Filing Date
KR1019990018424A KR100240729B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface
KR1019990018428A KR100240731B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface
KR1019990018422A KR100240728B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface
KR1019990018426A KR100240730B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface
KR1019990018429A KR100240732B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface
KR1019990018421A KR100240727B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface

Family Applications Before (4)

Application Number Title Priority Date Filing Date
KR1019990018424A KR100240729B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface
KR1019990018428A KR100240731B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface
KR1019990018422A KR100240728B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface
KR1019990018426A KR100240730B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1019990018421A KR100240727B1 (en) 1990-04-27 1999-05-21 Methods and apparatus for implementing a media access control/host system interface

Country Status (1)

Country Link
KR (6) KR100240729B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042731A (en) * 2002-11-15 2004-05-20 엘지엔시스(주) File and registry monitoring method for host system
KR100738955B1 (en) 2005-12-28 2007-07-16 에스케이 텔레콤주식회사 Method for Changing Function Between Multi-Function USB Slave Device and USB Host Device and Multi-Function USB Slave Device therefor

Also Published As

Publication number Publication date
KR100240731B1 (en) 2000-03-15
KR100240729B1 (en) 2000-03-15
KR100240730B1 (en) 2000-03-15
KR100240728B1 (en) 2000-03-15
KR100240727B1 (en) 2000-03-15

Similar Documents

Publication Publication Date Title
KR100240726B1 (en) Method and apparatus for implementing a media access control/host system interface
US6145016A (en) System for transferring frame data by transferring the descriptor index data to identify a specified amount of data to be transferred stored in the host computer
JP3452590B2 (en) Network adapter for controlling flow of data arranged in packets from system memory to network and method of controlling data flow
US7277449B2 (en) On chip network
US6161160A (en) Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains
US5367643A (en) Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US4807109A (en) High speed synchronous/asynchronous local bus and data transfer method
US4947366A (en) Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities
US6996651B2 (en) On chip network with memory device address decoding
US7051150B2 (en) Scalable on chip network
US7139860B2 (en) On chip network with independent logical and physical layers
US7200137B2 (en) On chip network that maximizes interconnect utilization between processing elements
US6047001A (en) Apparatus and method in a network interface device for storing a data frame and corresponding tracking information in a buffer memory
EP0459757A2 (en) Network adapter
JPH01231159A (en) Method for transfer of data and direct memory access means therefor
JPH01205366A (en) Transfer of data and data transfer controller therefor
JP2004318901A (en) High-speed control and data bus system mutually between data processing modules
US7603488B1 (en) Systems and methods for efficient memory management
US6401142B1 (en) Apparatus and method for selective bus transfer using master and slave modes
KR100240732B1 (en) Methods and apparatus for implementing a media access control/host system interface
US6615306B1 (en) Method and apparatus for reducing flow control and minimizing interface acquisition latency in a hub interface
JPH09506219A (en) Network interface controller
JPS61177560A (en) Fast parallel bus construction and data transfer

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101018

Year of fee payment: 12

EXPY Expiration of term