KR100372492B1 - 네트워크 프로세서를 사용하는 서버 클러스터 접속 - Google Patents
네트워크 프로세서를 사용하는 서버 클러스터 접속 Download PDFInfo
- Publication number
- KR100372492B1 KR100372492B1 KR10-2001-0013615A KR20010013615A KR100372492B1 KR 100372492 B1 KR100372492 B1 KR 100372492B1 KR 20010013615 A KR20010013615 A KR 20010013615A KR 100372492 B1 KR100372492 B1 KR 100372492B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- computer systems
- network processor
- network
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 14
- 230000015654 memory Effects 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 12
- 239000000758 substrate Substances 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 239000004065 semiconductor Substances 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 11
- 238000013500 data storage Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000035755 proliferation Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 230000032258 transport Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000010626 work up procedure Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명에 의하면 네트워크의 데이터 흐름 속도와 실질적으로 동일한 데이터 속도로 서버 팜(farm)에 의해 지원되는 외부 네트워크와 교환되는 데이터를 전송하는 네트워크 프로세서에 의해 함께 결합된 다수의 컴퓨터 시스템들에 의해 형성된 서버 팜(farm) 및 관련 방법이 제공된다.
Description
1948년의 EDVAC 컴퓨터 시스템의 개발은 컴퓨터 시스템의 기원으로 자주 언급된다. 그 때 이래로, 컴퓨터 시스템들은 매우 복잡한 디바이스로 발전해 왔고, 컴퓨터 시스템들은 많은 다른 환경들에서 발견될 수 있다. 컴퓨터 시스템들은 일반적으로 하드웨어(예를 들면, 반도체, 회로 보드, 등)와 소프트웨어(예를 들면, 컴퓨터 프로그램들)의 조합을 포함한다. 반도체 처리와 컴퓨터 아키텍쳐의 진전이 컴퓨터 하드웨어의 성능을 더 높아지게 함에 따라, 이 고성능 하드웨어를 이용하기 위해 더 복잡한 컴퓨터 소프트웨어가 발전해 왔고, 이 결과 불과 수 년전에 존재하던 것보다 훨씬 더 강력한 오늘날의 컴퓨터가 생겨났다.
기술의 다른 변화들도 또한 우리가 컴퓨터를 사용하는 방법에 크게 영향을 주었다. 예를 들면, 컴퓨터의 광범위한 확산은 컴퓨터들이 서로 통신할 수 있게 하는 컴퓨터 네트워크들의 개발을 자극하였다. 퍼스널 컴퓨터(PC)의 도입에 의해, 컴퓨팅이 많은 사람들에게 이용하기 쉽게 되었다. 이런 식으로, 회사 내의, 또는 회사들 간의 많은 사람들이 단일 컴퓨터 시스템 상에서 동작하는 소프트웨어 어플리케이션으로 네트워크를 통해 동시에 통신할 수 있었다.
최근에 매우 대중화되고 있는 하나의 중요한 컴퓨터 네트워크는 인터넷이다. 이 인터넷은 현대의 컴퓨터의 네트워크의 확산에 의해서 생겨났고, 웹 페이지들을 포함하는 링크된 컴퓨터 시스템들의 복잡한 월드와이드 네트워크로 발전해 왔다. 통신 네트워크들 및 컴퓨터 시스템들의 이와 같은 시스템은 집합적으로 "월드-와이드 웹", 즉 WWW를 구성한다. WWW에 액세스하고자 하는 각 PC(워크스테이션)의 사용자는 일반적으로 웹 브라우저로 알려진 소프트웨어 어플리케이션을 사용하여 액세스한다. 웹 페이지 브라우저는 웹 서버로 알려진 컴퓨터에 인터넷을 통해 접속하고 사용자의 워크스테이션 상에 표시된 웹 서버로부터 정보를 수신한다. 사용자에게 표시된 정보는 일반적으로 HTML(Hypertext Markup Language : 하이퍼텍스트 마크업 랭귀지)이라 불리는 전문 랭귀지를 사용하여 구성되는 페이지들로 조직된다. HTML을 사용하는 웹 브라우저들은 현재 시판중인 거의 모든 컴퓨터 시스템에 대해 사용가능하고, 이에 의해 실제로 컴퓨터 및 모뎀에 접속하고 있는 어떤 사람도 WWW에 액세스 가능하게 한다. 비록 WWW가 점점 더 대중화되고 있지만, WWW를 이용하는 사용자들의 급속한 성장과 확산은 그것과 함께 부수적인 문제들을 발생시켰다. 이 문제들 중 몇몇은 다음의 설명에서 알 수 있다.
월드 와이드 웹의 2가지 부산물은 서버 팜(farm)과 DASD(Direct Access Storage Device, 후술함) 팜이다. 각 예에서, "팜(farm)"이라는 용어의 사용은 팜 내의 협력 디바이스들 중 어떤 것으로도 데이터가 말단 사용자들 간에 다소 이음매 없이(seamless) 흐를 수 있는 식으로 많은 디바이스들이 함께 조작 결합된다는 것을 전달하려고 하는 것이다. 따라서 다수의 서버 컴퓨터 시스템들이 네트워크의 데이터 처리 요구를 분할하기 위해 협력하거나, 다수의 저장 디바이스들이 하나 이상의 서버 컴퓨터 시스템들의 데이터 저장 요구를 제공하기 위해 협력한다. 이와 같은 기능의 분할을 행하는 기술이 사용중이거나 개발 중이지만, 여기에 설명된 본 발명에 의해 어드레스되거나 극복되는 환경에서 문제가 발생할 수도 있다.
이하의 설명은 네트워크 데이터 통신 및 이와 같은 통신 네트워크들에서 사용되는 스위치와 라우터(router)에 대한 지식을 전제로 한다. 특히, 이 설명은 네트워크 동작을 레이어들로 구분하는 네트워크 아키텍쳐의 OSI 모델에 대한 숙련을 전제로 한다. OSI 모델에 기초한 전형적인 아키텍쳐는, 레이어 2, 3, 4 등을 통해 신호가 위쪽으로 전달되는 물리적 경로 또는 매체인 레이어(Layer) 1로부터 레이어 7까지 연장하고, 마지막으로 기재된 것은 네트워크에 링크된 컴퓨터 시스템 상에서 동작하는 어플리케이션 프로그래밍의 레이어이다. 본 명세서에서, L1, L2, 등의 기재는 네트워크 아키텍쳐의 해당 층을 칭하도록 된 것이다. 본 명세서는 또한 이와 같은 네트워크 통신에서 패킷과 프레임으로서 알려진 비트열에 대한 기본적인 이해를 전제로 한다.
기술적 배경으로서 상기한 것에 의해, 본 발명의 목적은 서버 팜으로의 다수의 서버 컴퓨터 시스템의 접속을 용이하게 하는 것이다. 이 목적을 수행하는데 있어서, 다수의 컴퓨터 시스템 각각은 여기에 설치되고 이와 같이 접속된 시스템들에 의해 데이터 스트림의 처리를 통합하는 기능을 하는 네트워크 프로세서를 갖는다.
도 1은 본 발명이 구현될 수 있는 컴퓨터 시스템을 나타내는 도면.
도 2는 도 1에 도시된 바와 같은 다수의 컴퓨터 시스템들 및 도 3과 도 4에 도시된 바와 같은 네트워크 프로세서를 사용하여 형성되는 서버 팜의 개략도.
도 3은 본 발명에서 사용되는 네트워크 프로세서의 개략도.
도 4는 본 발명에서 사용되는 네트워크 프로세서의 또 다른 개략도.
<도면의 주요 부분에 대한 부호 설명>
10: 네트워크 프로세서
100,100A,100B,100C,100D: 컴퓨터 시스템
120: 메인 메모리
140: 대용량 스토리지 인터페이스
150: 네트워크 인터페이스
160: 시스템 버스
170: 인터넷
본 발명의 목적들 중 몇몇이 설명되었지만, 첨부 도면과 관련하여 설명을 진행해감에 따라 다른 목적들도 나타날 것이다.
본 발명을 본 발명의 바람직한 실시예가 도시되어 있는 첨부 도면을 참조하여 이하에서 더 자세히 설명할 것이지만, 당업자라면 본 발명의 바람직한 결과를 여전히 달성하면서도 여기에 기술된 본 발명을 변경할 수 있음이 이하의 설명으로부터 이해될 것이다. 따라서, 이하의 설명은 당업자에게 있어 본 발명을 제한하는 것이 아니라 광범위한 시사를 개시하는 명세서로서 이해되어야 할 것이다.
도 1을 참조하면, 본 발명에 따른 컴퓨터 시스템(100)은 모두 시스템 버스(160)에 의해 접속되어 있는 CPU(Central Processing Unit : 중앙 처리 유닛)(110), 메인 메모리(120), 대용량 스토리지 인터페이스(140) 및 네트워크 인터페이스(150)를 포함한다. 당업자는 이 시스템이 모든 유형의 컴퓨터 시스템(퍼스널 컴퓨터, 미드레인지(midrange) 컴퓨터, 메인프레임 등)을 포함하는 것을 이해할 것이다. 본 발명의 범위 내에서 많은 부가, 변경 및 삭제가 이 컴퓨터 시스템(100)에 행해질 수 있음에 유의하자. 이러한 예로서는 컴퓨터 모니터, 입력 키보드, 캐쉬(cache) 메모리, 및 프린터 등의 주변 기기들이 있다. 본 발명은 일반적으로 퍼스널 또는 미드레인지 컴퓨터로 구현되는 웹 서버로서 동작할 수 있다.
CPU(110)는 하나 이상의 마이크로프로세서 및/또는 집적 회로로 구성될 수 있다. CPU(110)는 메인 메모리(120)에 저장된 프로그램 명령들을 실행한다. 메인 메모리(120)는 컴퓨터가 액세스할 수 있는 프로그램들과 데이터를 저장한다. 컴퓨터 시스템이 시작할 때, CPU(110)는 처음에 오퍼레이팅 시스템(134) 프로그램 명령들을 실행한다. 오퍼레이팅 시스템(134)은 컴퓨터 시스템(100)의 자원을 관리하는 복잡한 프로그램이다. 이 자원들 중 몇몇이 CPU(110), 메인 메모리(120), 대용량 스토리지 인터페이스(140), 네트워크 인터페이스(150) 및 시스템 버스(160)이다.
메인 메모리(120)는 웹 서버 어플리케이션(122), 트랜잭션 프로세서(124), 하나 이상의 매크로 파일(126), 구성(configuration) 파일(128), 하나 이상의 랭귀지 프로세서(130), 오퍼레이팅 시스템(134), 하나 이상의 어플리케이션 프로그램(136), 및 프로그램 데이터(138)를 포함한다. 어플리케이션 프로그램들(136)은 오퍼레이팅 시스템(134)의 제어 하에서 CPU(110)에 의해 실행된다. 어플리케이션 프로그램들(136)은 입력으로서의 프로그램 데이터(138)로 실행될 수 있다. 어플리케이션 프로그램들(136)은 또한 그 결과를 프로그램 데이터(138)로서 메인 메모리에 출력할 수 있다. 컴퓨터 시스템(100)이 웹 서버로서 동작할 때, CPU(110)는 다른 것들 중에서, 웹 서버 어플리케이션(122)을 실행한다. 트랜잭션 프로세서(124)는 하나 이상의 매크로 파일(126)에 저장된 HTML 페이지를 처리하는 프로그램이다. 트랜잭션 프로세서(124)는 초기화될 때 구성 파일(128)을 판독하여 상이한 유형의 질의를 상이한 랭귀지 프로세서(130)와 상관시킨다. 동적 데이터에 대한 질의가 어느 한 페이지에서 발견될 때, 트랜잭션 프로세서(124)는 상기 질의를 처리하기 위해 어느 랭귀지 프로세서(130)가 호출되어야 하는지를 (구성 파일로부터 판독된) 구성 데이터로부터 결정한다. 그리고 나서 적절한 랭귀지 프로세서(130)는 메모리 또는 데이터베이스 등의 데이터 소스를 질의하여 동적 데이터를 검색한다. 랭귀지 프로세서(130)는 이 동적 데이터를 트랜잭션 프로세서(124)에 보내고, 여기에서는 동적 데이터를 선택된 페이지의 HTML 데이터에 삽입한다.
대용량 스토리지 인터페이스(140)는 컴퓨터 시스템(100)이 자기 디스크(하드 디스크, 디스켓) 및 광디스크(CD-ROM)와 같은 보조 저장 장치들로부터 데이터를 검색하고 저장하도록 한다. 이들 대용량 스토리지 장치들은 보통 DASD(DirectAccess Storage Device)로 알려져 있고, 정보를 영구적으로 저장하는 역할을 한다. DASD의 하나의 적합한 형태는 플로피 디스켓(186)으로부터 데이터를 판독 및 플로피 디스켓(186)으로 데이터를 기입하는 플로피 디스크 드라이브(180)이다. DASD로부터의 정보는 다양한 형태가 될 수 있다. 통상적인 형태는 어플리케이션 프로그램과 프로그램 데이터이다. 대용량 스토리지 인터페이스(140)를 통해 검색된 데이터는 CPU(110)가 이 데이터를 처리할 수 있는 메인 메모리(120)내에 종종 위치된다.
메인 메모리(120)와 DASD 장치(180)는 일반적으로 별개의 저장 장치인 반면, 컴퓨터 시스템(100)은 컴퓨터 시스템(100)의 프로그램들이 마치 다수의 소형 스토리지 엔티티(예를 들면, 메인 메모리(120) 및 DASD 장치(185))로 액세스하지 않고 대형의 하나의 스토리지 엔티티에만 액세스하는 것처럼 행동하도록 하는 공지된 가상의 어드레싱 메카니즘을 사용한다. 따라서, 몇몇 엘리먼트들이 메인 메모리(120)에 존재하는 것으로 도시되어 있지만, 당업자라면 이들이 동시에 메인 메모리에 모두 포함될 필요는 없다는 것을 알 것이다. "메모리"라는 용어는 여기에서 일반적으로 컴퓨터 시스템(100)의 전체 가상 메모리를 칭하기 위해 사용된다.
네트워크 인터페이스(150)는 컴퓨터 시스템(100)이 접속되어 있는 어떤 네트워크로 부터도 데이터를 송수신할 수 있게 한다. 이 네트워크는 LAN(Local Area Network), WAN(Wide Network), 또는 더 구체적으로 인터넷(170)이 될 수도 있다. 인터넷에 접속하는 적합한 방법에는 앞으로 개발될 네트워킹 메카니즘 뿐만 아니라 알려져 있는 아날로그 및/또는 디지털 기술이 포함된다. 많은 다른 네트워크 프로토콜들이 네트워크를 구현하는데 사용될 수 있다. 이 프로토콜들은 컴퓨터들이 네트워크를 통해 통신할 수 있게 하는 전문화된 컴퓨터 프로그램들이다. 인터넷을 통해 통신하는데 사용되는 TCP/IP(Transmission Control Protocol/Internet Protocol)가 적절한 네트워크 프로토콜의 일예이다.
시스템 버스(160)는 컴퓨터 시스템(100)의 다양한 구성요소들 사이에서 데이터가 전송될 수 있게 한다. 비록 컴퓨터 시스템(100)이 단일 메인 CPU 및 단일 시스템 버스만을 포함하는 것으로 도시되어 있지만, 당업자라면 본 발명이 다수의 CPU 및/또는 다수의 버스들을 갖는 컴퓨터 시스템을 사용하여 실행될 수도 있음을 이해할 것이다.
여기에서, 본 발명을 전체적으로 기능적 컴퓨터 시스템과 관련하여 설명하였지만(또한 설명할 것이지만), 당업자라면 본 발명의 구성요소들이 다양한 형태의 프로그램 제품으로서도 보급될 수 있으며, 본 발명이 상기 보급을 실제로 실행하는데 사용되는 특정 유형의 하나의 관련 매체와 관계없이 동등하게 적용함을 이해할 것이다. 신호 보유 예로는, 플로피 디스크(예를 들면 도 1의 186) 및 CD-ROM과 같은 기록가능한 유형의 매체, 및 디지털 및 아날로그 통신 링크와 같은 송신형 매체가 포함된다.
본 발명에서 컴퓨터 시스템(100)은 웹 서버로서 동작될 수 있다. 그렇게 하기 위해서, 웹 서버 어플리케이션(122)이 CPU(110)에 의해 실행된다. 오퍼레이팅 시스템(134)이 멀티태스킹 오퍼레이팅 시스템이라고 가정하면 또 다른 어플리케이션 프로그램(136)이 컴퓨터 시스템(100) 상에서 동시에 동작될 수 있다. 웹 서버들은 일반적으로 인터넷(170)에 접속되어 있다. 설명했던 바와 같이, 인터넷은 전세계에 걸쳐있고 수백만의 컴퓨터들에 의해 공유되어 있는 공지된 컴퓨터 네트워크이다. 인터넷 상에는 많은 웹 서버들이 있다. 인터넷에 링크된 각 컴퓨터는 그 자신의 고유의 어드레스를 가져서 네트워크를 통해 다른 컴퓨터들과 통신할 수 있다. 많은 다른 유형의 데이터가 인터넷을 따라 전송될 수 있다. 예를 들면 이메일, 프로그램 데이터, 디지털 음성 데이터, 컴퓨터 그래픽, 및 웹 페이지들이 있다.
이제 도 2를 참조하면, 다수의 컴퓨터 시스템들(100A, 100B, 100C, 100D)이 네트워크 프로세서(10)를 통해 함께 연결되어 서버 팜(farm)을 형성한다. 이 네트워크 프로세서(10)는 도 3과 4에 더 자세하게 도시되어 있고 기재되어 있으며, 여기에 도시된 그 아키텍쳐의 설명은 후술한다. 상기 팜에서 함께 결합된 컴퓨터 시스템들은 다른 할당된 기능들을 가질 수도 있다. 예를 들면, 어떤 것은 관련 DASD에 저장된 데이터의 데이터 마이닝(data mining)을 위한 배치(batch) 처리 요구를 제공하도록 지정될 수도 있다. 동일 팜 내에서 또 다른 것은 메일 서버로서 지정될 수도 있다. 또 다른 것은 관련 DASD에 저장된 데이터에 대한 실시간 요구를 처리하는 것으로서 지정될 수도 있다. 또 다른 것은 클라이언트 시스템 상에서 일시적인 사용을 위해 전송되는 네트워크 어플리케이션 프로그램 상의 다른 시스템에 이용할 수 있는 어플리케이션 서버로서 지정될 수도 있다. 또한, 이 시스템들은 병렬의 웹 페이지 호스트 시스템들로서 제공되어 유입되는 서비스 요구에 의거하여 동적으로 선택될 수도 있다. 서버 팜 시스템의 구성 및 사용에 대한 지식이 있는사람들은 여기에서 간단하게 지시된 전 범위의 대안적인 기능들을 이해하고 본 발명의 융통성이 인식되게 될 때 또 다른 대안들을 개발할 수 있을 것이다.
임의의 관련 네트워크로부터 도 2의 서버 팜으로 이동하는 데이터 비트 스트림들은 네트워크 프로세서(10)를 통과할 것이다. 본 발명의 중요한 두드러지는 특징들에 따르면, 네트워크 프로세서(10)는 유입되는 비트 스트림들에서 식별되는 네트워크 통신 프로토콜 비트들을 처리할 것이고 당해 시스템에 의해 제공될 지정 서비스에 의거하여 팜 시스템들(100A, 100B, 100C, 100D) 중 하나에 할당가능한 패킷 또는 프레임 등을 인식할 것이다. 적절합 팜 시스템 및 그 처리의 할당 후에, 패킷, 프레임 등은 네트워크 프로세서(10)에 복귀되어 네트워크 프로세서가 적절한 네트워크 통신 프로토콜 비트들을 공급한 후에 관련 네트워크 프로세서(10)에 전송될 것이다.
팜 시스템들 중 적절한 하나로의 데이터 비트 스트림들의 이동은 본 발명에 따르면, 매체 속도로 알려진 것으로 수행된다. 즉, 하나의 팜 시스템으로의 데이터 이동의 흐름 속도는 네트워크 프로세서가 서버 팜을 접속하고 있는 네트워크내에서의 흐름 속도와 동일하거나 실질적으로 동일하다. 또한, 네트워크 프로세서로부터 데이터 비트 스트림의 이동은 팜내의 시스템들 중 적절한 하나로의 이동이다. 팜내의 시스템들이 병렬의 웹 페이지 호스트 오퍼레이팅과 같은 공통의 목적을 제공하고 있는 경우에, 분배는 예를 들면 팜 시스템들 간의 로드 밸런싱을 위한 것일 수도 있다. 이 시스템들이 뚜렷한 지정된 목적을 제공하는 경우에는, 이 분배는 메일과 관련된 데이터 스트림이 예를 들면 메일 서버로 향하게 되는 반면 저장된데이터 베이스로부터의 실시간 검색을 위한 것들은 그 목적을 위해 구성된 서버로 향하게 되는 것과 같은 지정된 목적을 위한 것이 될 것이다.
이후에 설명되는 장치에 사용되는 아키텍쳐는 인터페이스 디바이스 또는 네트워크 프로세서 하드웨어 서브시스템 및 제어 포인트 프로세서 상에서 동작하는 소프트웨어 라이브러리에 기초하고 있다. 이 인터페이스 디바이스 또는 네트워크 프로세서 서브시스템은 L2, L3 및 L4+ 데이터 스트링의 번역 및 구문해석(parsing)을 위해 설계된 고성능 프레임 전송 엔진이다. 이 인터페이스 디바이스 또는 네트워크 프로세서 서브시스템은 장치를 통한 고속 경로를 제공할 수 있는 반면 소프트웨어 라이브러리 및 제어 포인트 프로세서는 고속 경로를 유지하는데 필요한 관리 및 경로 발견(route discovery) 기능을 제공할 수 있다. 이 제어 포인트 프로세서와 이 위에서 동작하는 소프트웨어 라이브러리는 함께 시스템의 CP(Control Point)를 정의한다. 이 제어 포인트 프로세서는 네트워크 프로세서 내에 포함될 수도 있고 또는 그로부터 물리적으로 분리될 수도 있다.
산업 컨설턴트들은 네트워크 프로세서를 다음의 기능들 중 하나 이상을 행할 수 있는 프로그램 가능한 통신 집적 회로로 정의하였다 :
패킷 분류 -- 어드레스 또는 프로토콜과 같은, 알려진 특성들에 의거하여 패킷을 식별;
패킷 변경 -- IP, ATM, 또는 다른 프로토콜들과 일치하도록 패킷을 변경(예를 들면 IP용 헤더에서 타임-투-리브(time-to-live) 필드를 갱신);
큐/정책 관리 -- 패킷 큐(queuing), 디큐(de-queuing), 특정 어플리케이션에대한 패킷의 스케쥴링에 대한 설계 전략을 반영함;
패킷 전송 -- 스위치 패브릭(fabric)을 통한 데이터의 송수신.
비록 이 정의는 초기 NP들의 기본적 특징에 대한 정확한 설명이지만, NP들의 충분한 잠재 능력 및 이점들이 여전히 실현될 것이다. 네트워크 프로세서들은 소프트웨어에서 사전에 처리된 네트워킹 태스크들이 하드웨어에서 실행되도록 함으로써 광범위한 어플리케이션의 잠재적인 문제들을 해결할 수 있고, 유효 시스템 대역폭을 증가시킬 수 있다. 또한, NP들은 병렬 분산 처리 및 파이프라인 처리 설계 등의 아키텍쳐들을 통해 속도 향상을 제공할 수 있다. 이러한 성능은 효율적인 탐색 엔진을 가능하게 하고, 스루풋(throughput)을 증가시키며, 복잡한 태스크의 고속 실행을 제공할 수 있다. 이 정의는 "패킷"이라는 단어를 사용하고, 이것은 일반적으로 WAN(Wide Area Network)에 대한 용도에 부합한다. 여기에 설명된 발명들은 일반적으로 LAN에 대한 용도에 부합하는 용어인 "프레임"과 동일한 기능이 있다.
네트워크 프로세서들은 CPU가 PC를 위한 것인 것과 마찬가지로 네트워크를 위한 기본 네트워크 빌딩 블럭이 될 것으로 기대된다. NP에 의해 제공되는 일반적인 능력은 실시간 처리, 보안성, 저장 및 전송, 스위치 패브릭, 및 IP 패킷 처리 및 학습 능력이다.
프로세서-모델 NP는 다수의 범용 프로세서들과 특정 로직을 포함한다. 적분기들은 시간 및 비용 효율면에서의 변화를 수용할 수 있는 스케일러블(scalable)하고 융통성 있는 솔루션들을 제공하기 위해 이런 디자인으로 돌아가고 있다. 프로세서-모델 NP는 보다 낮은 레벨의 집적도로, 보다 높은 스루풋, 융통성 및 제어를 제공하는 분산 처리를 가능하게 한다. 프로그램가능성은 새로운 ASIC 설계를 필요로 하지 않고도, 새로운 프로토콜과 기술로의 용이한 이전을 가능하게 할 수 있다.
이와 같은 네트워크 프로세서는 하드웨어에서 다층 전송을 지원하지만, 관련 출원에 기재된 가장 간단한 형태의 그 디폴트 동작 모드인 L2 전용 스위치로서 동작할 수도 있다. 각 포트는 단일 도메인 내에 놓여서, 그 도메인 내의 임의의 디바이스가 그 도메인 내의 임의의 다른 디바이스와 통신할 수 있게 한다. 이 장치는 L2로 구성가능하여 시스템 관리자가, 별개의 도메인 또는 트렁크로 포트들을 분류하거나, 가상 LAN(VLAN ; Virtual LAN) 세그먼트를 구성하거나, 또는 필터를 부과하는 것과 같은 특징들을 구성할 수 있게 한다.
후술하는 장치의 어떤 부분들은 인터페이스 디바이스나 네트워크 프로세서(NP) 및 제어 포인트(CP)를 기본 빌딩 블럭으로 사용하는 모듈 유닛이 되도록 설계된다. 선택적인 스위칭 패브릭 디바이스는 2이상의 인터페이스 디바이스 서브시스템들이 함께 묶여질 때 사용될 수 있다. 상기 선택적 스위칭 패브릭 디바이스는 위에서 설명하였으며 여기에는 참조로 포함된 회로 및 패킷 전환 트래픽용 고속 모듈 스위칭 장치(High Speed Modular Switching Apparatus for Circuit and Packet Switched Traffic)로 1991년 4월 16일 허여된 미국 특허 제5,008,878호에 개시된 것일 수도 있다.
이 장치는 NP, CP, 및 매치 접속 메카니즘의 단일 어셈블리로 구성될 수도 있다. 그러나, 여기에서 "옵션 카드(option card)들"이나 "블레이드(blade)들"로기재된 인쇄 회로 보드 소자들을 사용하여 조립될 더 복잡한 장치도 예상된다. 이 인쇄 회로 보드 소자들은 회로 소자들이 탑재되고 서버 컴퓨터 시스템 하우징과 같은 장치 하우징에 설치된 커넥터에 수납된다. 이 장치는 적절한 커넥터와 후면 전기 접속이 각각에 설치되어 있는 것으로 가정하면, 카드들이 다른 샤시 또는 하우징들간에서 교환될 수 있는 것을 고려한다. 모든 옵션 카드는 아니더라도 많은 것들에서 발견된 기본 성분은 캐리어 서브시스템이다.
그 가장 간단한 형태에서, 본 발명에 의해 고려된 인터페이스 장치는 제어 포인트 프로세서와 이 제어 포인트 프로세서에 동작적으로 접속되는 인터페이스 디바이스를 갖는다. 바람직하게는 여기에서 설명된 것으로서, 인터페이스 디바이스(여기서는 또한 네트워크 프로세서 즉 NP로 간주됨)는 반도체 기판과, 이 기판 상에 형성된 다수의 인터페이스 프로세서와, 상기 기판상에 형성되고 인터페이스 프로세서에 액세스 가능하게 명령들을 저장하는 내부 명령 메모리와, 상기 기판 상에 형성되고 상기 인터페이스 프로세서에 액세스 가능하게 상기 디바이스를 통과하는 데이터를 저장하는 내부 데이터 메모리와, 다수의 입출력 포트를 갖는 단일의 VLSI(Very Large Scale Integrated) 회로 디바이스 또는 칩이다. 이 인터페이스 프로세서는 또한 때때로 여기서 피코프로세서 또는 처리 유닛으로 간주된다. 설치된 포트들은 내부 데이터 메모리를 외부 데이터 메모리와 접속하는 적어도 하나의 포트와 인터페이스 디바이스를 통해 전달되는 데이터를 인터페이스 프로세서의 지시 하에서 외부 디바이스 또는 네트워크와 교환하는 적어도 2개의 다른 포트를 포함한다. 이 제어 포인트는 데이터 교환 입출력 포트들 간의 데이터 교환과 데이터메모리를 통한 데이터 흐름을 지시할 때 인터페이스 프로세서들에 의해 행해질 명령을 명령 메모리 내로 로딩함으로써 인터페이스 디바이스와 협력한다.
여기에 기재된 네트워크 프로세서는 여기에 기재된 서버 팜과 같은, 그것이 내장되어 있는 어셈블리 및 조합체와는 별도로 진보성이 있는 것으로 간주된다. 또한, 여기에 기재된 네트워크 프로세서는 여기에 기재된 엘리먼트들의 내에서 여기에 완전히 설명되지 않은 다른 발명들을 포함하는 것으로 간주된다.
더 완전한 이해를 위해, 도 2는 기판과 이 기판 상에 집적된 다수의 서브 어셈블리를 포함하는 인터페이스 디바이스 칩(10)의 블럭도를 나타낸다. 이 서브 어셈블리는 업사이드(Upside) 구성 및 다운사이드(Downside) 구성 내에 배치된다. 여기에서 사용된 바와 같이, "업사이드"는 여기에 기재된 장치로 들어오는 데이터 흐름을 말하고, "다운사이드"는 이 장치로부터 이 장치에 의해 서비스되는 디바이스 또는 네트워크로 나가는 데이터 흐름을 말한다. 이 데이터 흐름은 각 구성을 따른다. 결과적으로, 업사이드 데이터 흐름과 다운사이드 데이터 흐름이 있다. 이 업사이드에서의 서브어셈블리는 EDS-UP(Enqueue-Dequeue-Scheduling UP) 로직(16), 다중화 PPM-UP(MAC's-UP)(14), SDM-UP(Switch Data Mover-UP)(18), SIF(System Interface)(20), DASLA(Data Align Serial Link A)(22), 및 DASLB(Data Align Serial Link B)(24)를 포함한다. 데이터 정렬 직렬 링크(DASL)는, 여기에 기재된 본 발명의 완전한 이해를 위해 필요한 정도로 참조되는 1999년 6월 11일자 "데이터 통신용 고속 병렬/직렬 링크(High Speed Parallel/Serial Link for Data Communication)"라는 명칭으로 출원되어 계류중인 미국 특허출원 제 09/330,968호에 더 완전히 기재되어 있다. 여기에 기재된 본 발명의 바람직한 형태는 DASL 링크를 사용하지만, 본 발명은 특히 데이터 흐름이 VLSI 아키텍쳐내로 제한되는 경우에, 비교적 고속의 데이터 흐름을 달성하기 위해 다른 형태의 링크도 사용될 수 있는 것으로 생각된다.
다운사이드의 서브어셈블리는 DASL-A(26), DASL-B(28), SIF(30), SDM-DN(32), EDS-DN(34), 및 PPM-DN(36)을 포함한다. 이 칩은 또한 다수의 내부 S-RAM, 트래픽 Mgt 스케쥴러(40), EPC(Embedded Processor Complex)(12)를 포함한다. 인터페이스 디바이스(38)는 각 DMU 버스에 의해 PMM(14, 36)에 연결된다. 인터페이스(38)는 ENET PHY(Ethernet Physical), ATM 프레이머(Framer), SONET을 통한 IP 등과 같은, 임의의 적합한 L1 회로가 될 수 있다. 인터페이스의 유형은 칩이 접속된 네트워크 매체나 다른 디바이스에 의해 부분적으로 묘사된다. 다수의 외부 D-RAM 및 S-RAM이 칩으로 사용가능하다.
화살표는 인터페이스 디바이스내에 전반적인 데이터의 흐름을 나타낸다. 예를 들어, MAC로부터 수신된 프레임은 EDS-UP에 의해 내부 데이터 저장 버퍼에 위치된다. 이 프레임들은 노멀 데이터 프레임이나 시스템 제어 가이드 프레임 중 하나로 인식되고 EPC(도 1)에 인큐(enqueue)된다. EPC는 병렬로 N개의 프레임(N>1)까지 작업할 수 있는 N개의 프로토콜 프로세서를 포함한다. 10개의 프로토콜 프로세서를 갖는 실시예에서, 10개의 프로토콜 프로세서 중 2개- 가이드 프레임 용 (Generic Central Handler 즉 GCH)과, 제어 메모리내의 룩업 데이터 작성용 (Generic Tree Handler 즉 GTH) -가 특정된다. EPC는 또한 다른 하드웨어 구성 뿐만 아니라, 새로운 프레임을 아이들(idle) 프로세서에 맞추는 디스패쳐(dispatcher)와, 프레임 시퀀스를 유지하는 종료 유닛과, 10개의 모든 프로세서에 의해 공유된 공통 명령 메모리(Common Instruction Memory), 프레임의 분류를 결정하는 분류 하드웨어 어시스트(Classifier Hardware Assist) 및 그 프레임의 시작 명령 어드레스를 결정하는 것을 돕는 보조 프로세서(coprocessor)와, 프레임 버퍼의 판독 및 기입 동작을 제어하는 유입 및 유출 데이터 저장 인터페이스(Ingress and Egress Data Store interface)와, 상기 10개의 프로세서가 제어 메모리를 공유하도록 하는 제어 메모리 중재기(Control Memory Arbiter)와, 내부 인터페이스 디바이스 데이터 구조로의 디버그 액세스를 허가하는 인터페이스, 웹 제어, 및 중재기를 포함한다.
가이드 프레임들은 디스패쳐가 사용가능하게 될 때 디스패쳐에 의해 GCH 프로세서로 보내진다. 가이드 프레임에서 인코드된 레지스터 기입, 카운터 판독, MAC 구성 변화 등의 동작들이 실행된다. MAC 또는 IP 엔트리를 부가하는 것과 같은, 룩업 테이블 변경은 메모리 판독 및 기입 등과 같은 제어 메모리 동작을 위한 룩업 데이터 프로세서 상에서 통과된다. MSB 카운터 판독과 같은 몇몇 명령들은 응답 프레임이 작성되어 적절한 인터페이스 디바이스 상의 적절한 포트로 전송될 것을 요구한다. 몇몇 경우에, 가이드 프레임은 인터페이스 디바이스의 유출측에 대해 인코드된다. 이 프레임들은 문의되고 있는 인터페이스 디바이스의 유출측으로 전송되고, 그러면 여기에서는 인코드된 동작을 실행하고 임의의 적절한 응답 프레임을 작성한다.
데이터 프레임들은 프레임 룩업을 행하기 위해 그 다음 사용가능 프로토콜 프로세서에 디스패치된다. 프레임 데이터는 CHA(Classifier Hardware Assist) 엔진으로부터의 결과와 함께 프로토콜 프로세서에 전달된다. CHA는 IP 또는 IPX를 구문 해석한다. 이 결과는 트리 서치(Tree Search) 알고리즘과 시작 CIA(Common Instruction Address)를 결정한다. 지원된 트리 서치 알고리즘에는 고정 매치 트리(Fixed Match Tree)(레이어 2 MAC 테이블과 같은 정확한 매치를 요구하는 고정 사이즈 패턴), 최장 프리픽스 매치 트리(Longest Prefix Match Tree)(서브넷 IP 전송과 같은 가변 길이 매치를 요구하는 가변 길이 패턴), 및 소프트웨어 관리 트리(Software Managed Tree)(필터 룰에 사용되는 것과 같은 범위 또는 비트 마스크 세트 중 하나를 정의하는 2개의 패턴)이 포함된다.
룩업은 각 프로토콜 프로세서의 일부인 TSE(Tree Search Engine) 보조 프로세서(Coprocessor)의 도움으로 행해진다. TSE 보조 프로세서는 실행을 계속하기 위한 프로토콜 프로세서 없이, 제어 메모리 액세스를 행한다. 제어 메모리는 피코코드에 의해 요구된 모든 테이블, 카운터, 및 다른 데이터를 저장한다. 제어 메모리 동작은 10개의 프로세서 복합체들간의 메모리 액세스를 중재하는 제어 메모리 중재기에 의해 관리된다.
프레임 데이터는 데이터 저장 보조 프로세서를 통해 액세스된다. 이 데이터 저장 보조 프로세서는 주 데이터 버퍼(프레임 데이터의 8개의 16 바이트 세그먼트까지 보유), 스크래치 패드 데이터 버퍼(또한 프레임 데이터의 8개의 16 바이트 세그먼트까지 보유), 및 데이터 저장 동작용 몇몇 제어 레지스터를 포함한다. 일단매치가 발견되면, 유입 프레임 변경은 VLAN 헤더 삽입 또는 오버레이(overlay)를 포함할 수 있다. 이 변경은 인터페이스 디바이스 프로세서 복합체에 의해 행해지지 않고, 하드웨어 플래그가 유도되고 다른 유입 스위치 인터페이스 하드웨어가 이 변경을 행한다. 다른 프레임 변경들은 유입 데이터 스토어에 보유된 프레임 내용을 변경함으로써 피코코드와 데이터 저장 보조 프로세서에 의해 달성될 수 있다.
유출 트리 서치는 유입 서치를 위해 지원된 것과 동일한 알고리즘을 지원한다. 룩업은 실행을 계속하기 위한 프로토콜 프로세서 없이, TSE 보조 프로세서에 의해 행해진다. 모든 제어 메모리 동작은 10개의 프로세서 복합체들 간의 메모리 액세스를 할당하는 제어 메모리 중재기에 의해 관리된다.
유출 프레임 데이터는 데이터 저장 보조 프로세서를 통해 액세스 된다. 이 데이터 저장 보조 프로세서는 주 데이터 버퍼(프레임 데이터의 8개의 16 바이트 세그먼트까지 보유), 스크래치 패드 데이터 버퍼(또한 프레임 데이터의 8개의 16 바이트 세그먼트까지 보유), 및 데이터 저장 동작용 몇몇 제어 레지스터를 포함한다. 성공적인 룩업의 결과는 정보 및 몇몇 경우에 프레임 변경 정보 전송을 포함한다. 프레임 변경은 VLAN 헤더 삭제, 타임 투 리브(Time to Live) 증가(IPX) 또는 감소(IP), IP 헤더 체크섬 재계산, 이더넷 프레임 CRC 오버레이 또는 삽입, 및 MAC DA/SA 오버레이 또는 삽입을 포함할 수 있다. IP 헤더 체크섬은 체크섬 보조 프로세서에 의해 제공된다. 변경들은 인터페이스 디바이스 프로세서 복합체에 의해 행해지지 않고, 하드웨어 플래그가 생성되고 PMM 유출 하드웨어가 이 변경을 행한다. 완료시에, 인큐 보조 프로세서가 EDS 유출 큐들의 프레임을 인큐하고 완료 유닛으로 이들을 전송하기 위한 필요한 포맷들을 작성하는 것을 돕는데 사용된다. 완료 유닛은 10개의 프로토콜 프로세서로부터 유출 MAC들을 공급하는 EDS 유출 큐들 까지의 프레임 순서를 보장한다.
완성된 프레임들은 최종적으로 PMM 유출 하드웨어에 의해 MAC로 보내지고 포트 밖으로 보내진다.
웹(Web)이라 칭한 접속의 세트는 내부 레지스터, 카운터 및 메모리로의 액세스를 가능하게 한다. 이 웹은 또한 명령 단계를 제어하고 디버그 및 진단을 위해 제어를 인터럽트하는 외부 인터페이스를 포함한다.
트리 서치 엔진 보조 프로세서는 메모리 범위 체크 및 불법 메모리 액세스 통지를 제공하고 프로토콜 프로세서 실행과 병렬로 동작하는 트리 서치 명령(메모리 판독, 기입 또는 판독-부가-기입)을 행한다.
디스패쳐(dispatcher)는 10개의 프로토콜 프로세서로의 프레임의 통과를 제어하고 인터럽트 및 타이머를 관리한다.
완료 유닛은 프로세서 복합체로부터 타겟 포트 큐들까지의 프레임의 순서를 보장한다. 중요 명령 세트에는 조건부 실행, 패킹(입력 해쉬 키 용), 조건부 브랜칭(branching), 서명 및 비서명 동작, 선두 제로의 계수 등이 포함된다.
CHA(Classifier Hardware Assist) 엔진은 각 프레임의 레이어 2와 레이어 3 프로토콜 헤더를 전달하고 이 정보를 이들이 프로토콜 프로세서에 디스패치될 때 프레임에 제공한다.
제어 메모리 중재기는 내부 및 외부의 양 메모리로의 프로세서 액세스를 제어한다.
유출 프레임들은 하나의 외부 데이터 버퍼(예를 들면, DS0)나 2개의 외부 데이터 버퍼(DS0 및 DS1) 중 하나에 저장될 수도 있다. 각 버퍼는 한 쌍의 2M×16비트×4뱅크 DDR DRAM(256K의 64바이트 프레임까지 저장)이나 한 쌍의 4M×16비트×4뱅크 DDR DRAM(512K의 64바이트 프레임까지 저장)으로 구성될 수 있다. 2.28Mbps용 단일 외부 데이터 버퍼(예를 들면 DS0)를 선택하거나 4.57Mbps 레이어 2 및 레이어 3 스위칭을 지원하기 위해 제2 버퍼(예를 들면 DS1)를 부가하라. 제2 버퍼를 부가하는 것은 성능을 향상시키지만, 프레임 용량을 증가시키지는 않는다. 외부 데이터 퍼버 인터페이스는 266MHz 데이터 스트로브로 133MHz 클럭 속도로 동작하고 구성가능한 CAS 대기시간 및 구동 강도를 지원한다.
고정 프레임 변경은 유입 방향에 VLAN 태그 삽입 및 VLAN 태그 삭제, 타임 투 리브 증가/감소(IP, IPx), 이더넷 CRC 오버레이/삽입, 및 유출 방향에 MAC DA/SA 오버레이/삽입을 포함한다.
포트 반사(Port mirroring)는 프로토콜 프로세서 자원을 사용하지 않고 하나의 수신 포트와 하나의 송신 포트가 시스템 지정 관측 포트에 복제될 수 있게 한다. 반사된 인터페이스 디바이스는 프레임을 부가하고 제어 데이터를 스위치하도록 구성된다. 분리 데이터 경로는 유입 스위치 인터페이스로의 직접 프레임 인큐를 허락한다.
도면 및 명세서에서 본 발명의 바람직한 실시예를 설명하였고, 특정 용어들이 사용되었지만, 이와 같이 주어진 설명은 한정을 위해서가 아니라 포괄적이고 서술적인 의미로 용어를 사용한다.
본 발명에 의하면, 다수의 컴퓨터 시스템 각각은 여기에 설치되어 있고 이와 같이 접속된 시스템들에 의해 데이터 스트림의 처리를 통합하는 기능을 하는 네트워크 프로세서를 포함함으로써, 서버 팜으로의 다수의 서버 컴퓨터 시스템의 접속을 용이하게 할 수 있다.
Claims (7)
- 각각 중앙 처리 유닛과 서버 메모리를 구비하는 다수의 컴퓨터 시스템들과,상기 컴퓨터 시스템들 각각에 연결되고 상기 연결된 컴퓨터 시스템들을 서버 팜(farm)으로 결합하는 네트워크 프로세서를 포함하는 장치에 있어서,상기 네트워크 프로세서는,다수의 인터페이스 프로세서와,상기 인터페이스 프로세서에 액세스 가능하게 명령들을 저장하는 명령 메모리와,상기 연결된 컴퓨터 시스템들로 또는 그로부터 상기 네트워크 프로세서를 통해 전달되는 데이터를 상기 인터페이스 프로세서에 액세스 가능하게 저장하는 데이터 메모리, 및다수의 입출력 포트를 포함하고,상기 입출력 포트 중 하나는 상기 네트워크 프로세서를 통해 전달되는 데이터를 상기 인터페이스 프로세서의 지시 하에서 외부 네트워크와 교환하고, 나머지 입출력 포트는 상기 네트워크 프로세서를 통해 전달되는 데이터를 상기 연결된 컴퓨터 시스템들과 교환하고,상기 네트워크 프로세서는 상기 연결된 컴퓨터 시스템들과 연동하여, 상기 명령 메모리에 로드된 명령들을 상기 인터페이스 프로세서가 실행하는 것에 응답하여 상기 연결된 컴퓨터 시스템들로 또는 그로부터 상기 데이터 메모리를 통한 데이터 흐름과 상기 입출력 포트들 간의 데이터 교환을 지시하는 것을 특징으로 하는 장치.
- 제1항에 있어서,상기 네트워크 프로세서는 반도체 기판을 포함하고, 상기 인터페이스 프로세서와, 상기 명령 메모리와, 상기 데이터 메모리 및 상기 입출력 포트들은 상기 반도체 기판 상에 형성되는 것을 특징으로 하는 장치.
- 제1항에 있어서,상기 네트워크 프로세서는 통신 프로토콜들을 처리하고, 상기 컴퓨터 시스템들에 의해 처리될 어플리케이션 데이터를 상기 연결된 컴퓨터 시스템들과 교환하는 것을 특징으로 하는 장치.
- 제3항에 있어서,상기 연결된 컴퓨터 시스템들은 서로 다른 목적들을 수행하고, 상기 네트워크 프로세서는 상기 연결된 컴퓨터 시스템들 중 해당되는 하나의 컴퓨터 시스템에 해당 목적에 따라 데이터를 실행하기 위한 어플리케이션 데이터를 지시하는 것을 특징으로 하는 장치.
- 제3항에 있어서,상기 연결된 컴퓨터 시스템들은 공통의 목적을 수행하고, 상기 네트워크 프로세서는 상기 연결된 컴퓨터 시스템들 사이에 균형이 맞는(balanced) 흐름으로 데이터를 실행하기 위한 어플리케이션 데이터를 상기 연결된 여러 컴퓨터 시스템들에 지시하는 것을 특징으로 하는 장치.
- 제1항에 있어서,상기 인터페이스 프로세서의 갯수는 4를 초과하는 것을 특징으로 하는 장치.
- 네트워크 프로세서를 통해 데이터 네트워크로부터 서버 팜(farm) 쪽으로 들어오는 데이터의 비트 스트림들을 전달하는 단계와,상기 네트워크 프로세서에서 상기 비트 스트림들로부터 통신 프로토콜 비트들을 처리하고 제거하는 단계와,상기 네트워크 프로세서에 의해 연결된 다수의 컴퓨터 시스템들 중 선택된 하나의 컴퓨터 시스템에 의한 처리에 적절한 데이터 비트들을 상기 네트워크 프로세서에서 구별하는 단계와,상기 네트워크 프로세서로부터 상기 연결된 컴퓨터 시스템들 중 적절한 하나로 어플리케이션 데이터 비트들을 전달하는 단계와,상기 네트워크 프로세서를 통해 상기 연결된 컴퓨터 시스템들로부터 상기 데이터 네트워크를 향하여 나가는 데이터의 비트 스트림들을 전달하는 단계와,상기 네트워크 프로세서에서 통신 프로토콜 비트들을 상기 비트 스트림들에부가하는 단계, 및상기 네트워크 프로세서로부터 상기 데이터 네트워크로 상기 비트 스트림들을 전달하는 단계를 포함하는 것을 특징으로 하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/551,707 | 2000-04-18 | ||
US09/551,707 US6671725B1 (en) | 2000-04-18 | 2000-04-18 | Server cluster interconnection using network processor |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010096613A KR20010096613A (ko) | 2001-11-07 |
KR100372492B1 true KR100372492B1 (ko) | 2003-02-15 |
Family
ID=24202351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0013615A KR100372492B1 (ko) | 2000-04-18 | 2001-03-16 | 네트워크 프로세서를 사용하는 서버 클러스터 접속 |
Country Status (3)
Country | Link |
---|---|
US (2) | US6671725B1 (ko) |
KR (1) | KR100372492B1 (ko) |
GB (1) | GB2365726A (ko) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6985431B1 (en) * | 1999-08-27 | 2006-01-10 | International Business Machines Corporation | Network switch and components and method of operation |
US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
JP2004516040A (ja) | 2000-06-30 | 2004-06-03 | リトラン、スティーブン | 多軸継手装置及び方法 |
US7047303B2 (en) * | 2001-07-26 | 2006-05-16 | International Business Machines Corporation | Apparatus and method for using a network processor to guard against a “denial-of-service” attack on a server or server cluster |
US8021399B2 (en) | 2005-07-19 | 2011-09-20 | Stephen Ritland | Rod extension for extending fusion construct |
AU2002327801B2 (en) | 2001-09-28 | 2008-03-06 | Stephen Ritland | Connection rod for screw or hook polyaxial system and method of use |
US7584262B1 (en) | 2002-02-11 | 2009-09-01 | Extreme Networks | Method of and system for allocating resources to resource requests based on application of persistence policies |
US7814204B1 (en) | 2002-02-11 | 2010-10-12 | Extreme Networks, Inc. | Method of and system for analyzing the content of resource requests |
US7447777B1 (en) | 2002-02-11 | 2008-11-04 | Extreme Networks | Switching system |
AU2003239118B2 (en) | 2002-02-20 | 2007-09-20 | Stephen Ritland | Pedicle screw connector apparatus and method |
US6966910B2 (en) | 2002-04-05 | 2005-11-22 | Stephen Ritland | Dynamic fixation device and method of use |
CA2484923C (en) | 2002-05-08 | 2011-02-22 | Stephen Ritland | Dynamic fixation device and method of use |
EP1596738A4 (en) * | 2003-02-25 | 2010-01-20 | Stephen Ritland | ADJUSTABLE ROD DEVICE AND CONNECTOR, AND METHOD OF USE |
US7231449B2 (en) * | 2003-03-05 | 2007-06-12 | Lenovo Singapore Pte. Ltd | Computer system having a network access point |
US20040177166A1 (en) * | 2003-03-05 | 2004-09-09 | International Business Machines Corporation | Network access point apparatus and method |
US8262571B2 (en) * | 2003-05-22 | 2012-09-11 | Stephen Ritland | Intermuscular guide for retractor insertion and method of use |
US8301738B1 (en) * | 2003-07-31 | 2012-10-30 | Novell, Inc. | Systems and methods for private network addressing in IP protocols |
US7606792B2 (en) | 2004-03-19 | 2009-10-20 | Microsoft Corporation | System and method for efficient evaluation of a query that invokes a table valued function |
US7463628B2 (en) * | 2004-03-30 | 2008-12-09 | Extreme Networks, Inc. | Packet data modification processor command instruction set |
US7385984B2 (en) * | 2004-03-30 | 2008-06-10 | Extreme Networks, Inc. | Packet processing system architecture and method |
US8161270B1 (en) | 2004-03-30 | 2012-04-17 | Extreme Networks, Inc. | Packet data modification processor |
WO2007053940A1 (en) * | 2005-11-09 | 2007-05-18 | Generation 5 Mathematical Technologies Inc. | Automatic generation of sales and marketing information |
US7959564B2 (en) | 2006-07-08 | 2011-06-14 | Stephen Ritland | Pedicle seeker and retractor, and methods of use |
US8358591B2 (en) * | 2007-06-06 | 2013-01-22 | Hewlett-Packard Development Company, L.P. | Network traffic monitoring in a server network environment |
US7852486B2 (en) * | 2008-02-07 | 2010-12-14 | Board Of Regents, The University Of Texas System | Wavelength and intensity monitoring of optical cavity |
US7796585B2 (en) * | 2008-05-21 | 2010-09-14 | Dell Products, Lp | Network switching in a network interface device and method of use thereof |
US8605732B2 (en) | 2011-02-15 | 2013-12-10 | Extreme Networks, Inc. | Method of providing virtual router functionality |
US8966074B1 (en) * | 2013-09-13 | 2015-02-24 | Network Kinetix, LLC | System and method for real-time analysis of network traffic |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3788649T2 (de) | 1987-10-20 | 1994-06-23 | Ibm | Schnelle modulare Vermittlungseinrichtung für Durchschaltverkehr und paketvermittelten Verkehr. |
US5343473A (en) | 1992-08-07 | 1994-08-30 | International Business Machines Corporation | Method of determining whether to use preempt/resume or alternate protocol for data transmission |
US5724348A (en) | 1995-04-05 | 1998-03-03 | International Business Machines Corporation | Efficient hardware/software interface for a data switch |
US5774660A (en) * | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
US6182139B1 (en) | 1996-08-05 | 2001-01-30 | Resonate Inc. | Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm |
US6470389B1 (en) | 1997-03-14 | 2002-10-22 | Lucent Technologies Inc. | Hosting a network service on a cluster of servers using a single-address image |
US6263368B1 (en) * | 1997-06-19 | 2001-07-17 | Sun Microsystems, Inc. | Network load balancing for multi-computer server by counting message packets to/from multi-computer server |
US6006264A (en) * | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
US6327622B1 (en) * | 1998-09-03 | 2001-12-04 | Sun Microsystems, Inc. | Load balancing in a network environment |
US6286047B1 (en) * | 1998-09-10 | 2001-09-04 | Hewlett-Packard Company | Method and system for automatic discovery of network services |
US6411986B1 (en) * | 1998-11-10 | 2002-06-25 | Netscaler, Inc. | Internet client-server multiplexer |
US6643690B2 (en) * | 1998-12-29 | 2003-11-04 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network |
AU4344900A (en) | 1999-04-12 | 2000-11-14 | Rainfinity, Inc. | Distributed server cluster for controlling network traffic |
EP1049307A1 (en) | 1999-04-29 | 2000-11-02 | International Business Machines Corporation | Method and system for dispatching client sessions within a cluster of servers connected to the World Wide Web |
GB9916392D0 (en) | 1999-07-13 | 1999-09-15 | Smithkline Beecham Plc | Novel process |
US6374297B1 (en) * | 1999-08-16 | 2002-04-16 | International Business Machines Corporation | Method and apparatus for load balancing of web cluster farms |
US6460120B1 (en) * | 1999-08-27 | 2002-10-01 | International Business Machines Corporation | Network processor, memory organization and methods |
WO2001040903A2 (en) * | 1999-12-06 | 2001-06-07 | Warp Solutions, Inc. | System and method for enhancing operation of a web server cluster |
CA2328011A1 (en) * | 2000-01-18 | 2001-07-18 | Lucent Technologies Inc. | Method and apparatus for load balancing of network services |
US6725272B1 (en) * | 2000-02-18 | 2004-04-20 | Netscaler, Inc. | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US6877095B1 (en) * | 2000-03-09 | 2005-04-05 | Microsoft Corporation | Session-state manager |
US6857025B1 (en) * | 2000-04-05 | 2005-02-15 | International Business Machines Corporation | Highly scalable system and method of regulating internet traffic to server farm to support (min,max) bandwidth usage-based service level agreements |
-
2000
- 2000-04-18 US US09/551,707 patent/US6671725B1/en not_active Expired - Lifetime
-
2001
- 2001-03-16 KR KR10-2001-0013615A patent/KR100372492B1/ko not_active IP Right Cessation
- 2001-03-16 GB GB0106701A patent/GB2365726A/en not_active Withdrawn
-
2003
- 2003-08-13 US US10/640,166 patent/US7203763B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US7203763B2 (en) | 2007-04-10 |
GB2365726A (en) | 2002-02-20 |
US20040049582A1 (en) | 2004-03-11 |
GB0106701D0 (en) | 2001-05-09 |
KR20010096613A (ko) | 2001-11-07 |
US6671725B1 (en) | 2003-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100372492B1 (ko) | 네트워크 프로세서를 사용하는 서버 클러스터 접속 | |
KR100586296B1 (ko) | 서비스 거부에 대한 보호 | |
US9940279B2 (en) | Processor apparatus with programmable multi port serial communication interconnections | |
US6404752B1 (en) | Network switch using network processor and methods | |
US7318144B2 (en) | Apparatus and method for interconnecting a processor to co-processors using shared memory | |
US7782893B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
US6985431B1 (en) | Network switch and components and method of operation | |
US6769033B1 (en) | Network processor processing complex and methods | |
US7457906B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
US6766381B1 (en) | VLSI network processor and methods | |
US20040179529A1 (en) | Method and apparatus for shared I/O in a load/store fabric | |
US20080120442A1 (en) | Virtualization of i/o adapter resources | |
US7013394B1 (en) | Data flow pattern recognition and manipulation | |
JP2003526150A (ja) | コンピュータネットワーク内で単一コンピュータの通信を制御するための方法 | |
US6772218B1 (en) | Server acceleration using network processor | |
KR100396974B1 (ko) | 내부에서 네트워크 스위칭을 사용하는 컴퓨터 시스템 및방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |