KR100694212B1 - 다중-프로세서 구조에서 데이터 처리 수행성능을증가시키기 위한 분산 운영 시스템 및 그 방법 - Google Patents

다중-프로세서 구조에서 데이터 처리 수행성능을증가시키기 위한 분산 운영 시스템 및 그 방법 Download PDF

Info

Publication number
KR100694212B1
KR100694212B1 KR1020050038154A KR20050038154A KR100694212B1 KR 100694212 B1 KR100694212 B1 KR 100694212B1 KR 1020050038154 A KR1020050038154 A KR 1020050038154A KR 20050038154 A KR20050038154 A KR 20050038154A KR 100694212 B1 KR100694212 B1 KR 100694212B1
Authority
KR
South Korea
Prior art keywords
operating system
data processor
processor
data processing
dependent
Prior art date
Application number
KR1020050038154A
Other languages
English (en)
Other versions
KR20060045952A (ko
Inventor
씨 위벵가 잭
케이 스텀 패트리시아
패리스 윌리암
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20060045952A publication Critical patent/KR20060045952A/ko
Application granted granted Critical
Publication of KR100694212B1 publication Critical patent/KR100694212B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)

Abstract

본 발명에 따른 다중-프로세서 구조에서 데이터 처리 수행 성능을 증가시키기 위한 분산 운영 시스템 및 그 방법은 순차적인 프로그래밍 모델에 따라서 애플리케이션을 실행시키는 데이터 프로세서의 데이터 프로세싱 처리량을 증가시킬 수 있으며, 주 데이터 프로세서 상에서 실행되는 애플리케이션은 운영 시스템과 인터페이싱되는데, 주 데이터 프로세서 상에서 실행되는 애플리케이션에 대해 데이터 처리 지원을 제공하는 다수의 종속 데이터 프로세서들 간에 운영 시스템의 적어도 일부를 분산시킴으로써 이 운영 시스템은 가속된다. 따라서, 종속 데이터 프로세서는 주 데이터 프로세서 상에서 실행되는 애플리케이션에 대해 운영 시스템 지원을 제공할 수 있으며, 이는 주 데이터 프로세서 상에서의 과도한 프로세싱을 감소시킴으로써, 애플리케이션을 실행하는 동안 주 데이터 프로세서의 데이터 프로세싱 처리량을 증가시키는 것이다.

Description

다중-프로세서 구조에서 데이터 처리 수행성능을 증가시키기 위한 분산 운영 시스템 및 그 방법{DISTRIBUTION OPERATING SYSTEM FUNCTIONS FOR INCREASED DATA PROCESSING PERFORMANCE IN A MULTI-PROCESSOR ARCHITECTURE}
도 1은 본 발명의 바람직한 실시예에 따른 분산 운영 시스템에서의 데이터 처리 구조를 나타낸 도면.
도 2는 본 발명의 바람직한 실시예에 따른 도 1의 종속 프로세서의 내부 구성을 나타낸 도면.
도 3은 본 발명의 바람직한 실시예에 따른 도 1의 데이터 처리 구조의 상세한 구성의 일예를 나타낸 도면.
도 4는 본 발명의 바람직한 실시예에 따른 도 1의 분산 운영 시스템을 더욱 상세하게 나타낸 도면.
도 5는 본 발명의 바람직한 실시예에 따른 확장된 데이터 처리 구조를 나타낸 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
110: 주 코어 프로세서 120: 메모리
130: 종속 프로세서 135: I/O 채널
140: 버스 150: 분산 운영 시스템
본 발명은 데이터 처리에 관한 것이며, 특히 다중-프로세서 구조에서 데이터 처리 수행성능을 증가시키기 위한 분산 운영 시스템 및 그 방법에 관한 것이다.
데이터 처리 구조에서 데이터 프로세싱 처리량을 증가시키기 위하여 각종 방법이 사용되어 왔다. 이들 방법을 간략하게 설명해 보기로 한다.
벡터 컴퓨터(Vector Computer) 및 하드웨어는 프로세싱 엔터티(Processing Entities) 라인, 소위 스테이지로 데이터를 순차적으로 제공하는 파이프라인닝 방법(Pipeline Approach)을 사용하는데, 각 프로세싱 엔터티(Processing Entity)는 데이터가 통과할 때 각 데이터 피이스(piece)에 대해 단일 동작 또는 작은 세트의 동작을 수행한다. 데이터가 모든 스테이지를 통과한 후에만, 데이터는 완전히 처리된다. 따라서, 각 프로세서가 자신을 통해서 흐르는 각 데이터 피이스에 대해 동일한 동작을 수행함으로써, 병렬 처리가 행해지는데, 파이프라인의 각 스테이지는 상이한 데이터 피이스에 대해 동시에 동작한다. 예를 들어, 스테이지(N)는 데이터(i)에 대해서 동작하며, 스테이지(N-1)는 데이터(i+1)에 대해서 동작하며, 스테이지(N-2)는 데이터(i+2)에 대해서 동작하는 등등을 행하여 스테이지(0)에 이른다. 이 는 프로세싱 어레이에 매우 적합하게 된다.
팬티엄 프로(Pentium Pro) 및 파워 PC(Power PC)와 같은 슈퍼스케일러 컴퓨터(Superscaler Computers)는 벡터 및 소프트웨어 파이프라인닝의 조합을 지원하는데, 이는 현재 명령에 대해 동작하면서 다음 명령을 사전로딩함으로써 그리고 이전 루프가 완료되기 전 루프의 일회 반복 실행이 시작되도록 루프를 병렬화하기 위하여 명령 순서화 기술과 함께 미세 그레인 스케쥴링 기술(fine grain scheduling technique)을 사용함으로써, 하나 이상의 명령을 처리하도록 한다.
통상적으로 자동 병렬화는, 소프트웨어 파이프라인닝과 유사한 방식으로 루프를 병렬화하는 것과 본질적으로 병렬 어레이 동작을 병렬화하는 것 중 어느 하나에 의해 어레이 동작을 병렬화함으로써 컴파일러에서 이루어진다.
병렬 프로세서는 상이한 프로그램을 간단히 실행시킨다. 또한, 코드 브레이킹 프로그램 및 그래픽 렌더링(Code Braking Program and Graphics Rendering)과 같은 어떤 부류의 문제들이 쉽게 분리되어, 솔루션 공간의 부분들을 각 병렬 프로세서에 할당함으로써 이 솔루션 공간의 여러 부분들을 탐색할 수 있다.
일부 병렬 계산 방법은 자체 메모리, 운영 시스템 및 디스크 공간을 각각 지닌 자동 계산 노드들인 기계의 분산 클러스터(Distributed Cluster)를 사용한다. 이들 방법들은 또한, 메시지 패싱(Message Passing)을 사용하여 프로세싱을 조정한다. 이의 일 예로서 홈 프로젝트에서의 SETI(Search for Extra-Terrestrial Intelligence)를 들 수 있는데, 가정용 컴퓨터 상의 스크린 세이버(Screen Savers)는 인터넷을 통해서 계산 작업을 수신하고 어떠한 흥미있는 발견물을 주 설비로 다 시 이-메일(E-Mail) 전송한다.
상기한 분산 클러스터를 처리하기 위한 2가지 방법이 존재하는데, 각 프로세서는 상이한 데이터 세트에 대해 동일한 프로그램을 실행하고 다른 프로세서는 상이한 데이터 세트에 대해 상이한 프로그램을 실행한다.
공유된 메모리 프로세서 또는 대칭 다중-프로세서(SMP:Symmetric Multi-Processor))를 다수 프로세서를 지닌 단일 컴퓨터라 한다. 프로세서는 상이한 프로그램을 실행할 수 있거나, 단일 프로그램은 프로세서에 걸쳐서 병렬로 실행될 수 있다. 단일 프로그램을 병렬화하는데, 활동도(Activities)를 조정하기 위하여 프로세서 간에 메시지를 패싱하거나 공유된 메모리를 사용하는 것을 포함한 특수한 처리 기술을 필요로 한다. 논리 의존성(Logical Dependence) 및 요구되는 우선 순위를 유지하기 위하여 비동기식 프로세서를 조정하는 동기화 기술이 필요로 된다.
병렬 계산하기 위한 또 다른 방법은 하나의 명령 유닛이 록-스텝(Lock-Step)으로 프로세서의 큰 어레이를 실행시키는 SIMD(Single Instruction Multiple Data) 방법이다. 이 명령 유닛은 각 명령을 인출하고 어레이 내의 각 프로세서가 자체 데이터를 지닌 이 명령을 실행하도록 명령함으로써 전체 어레이를 제어한다. 이 방법은 제어 데이터 시스템 CDC 6600 및 7600과 같은 슈퍼컴퓨터 및 Cray 슈퍼컴퓨터에서 벡터 처리라 칭하는 기술을 통해서 구현된다.
비대칭 다중-프로세서 운영 시스템("AsyMOS")으로 공지된 또 다른 다중-프로세서 구조는 공유된 메모리 및 패키징으로 인한 작은 스케일의 대칭 다중 프로세서(SMPs)로부터 얻어지는 비용/수행성능 이점을 활용하기 위하여 개발되어 왔다. 이 구조에서, 다수 프로세서는 수행할 최종 기능을 기반으로 3가지 유형, 즉 어플리케이션 프로세서, 디스크 프로세서 및 장치 프로세서로 분류된다. 이 분류로 인해, 특정 네트워크 및 디스크 프로세싱은 주 애플리케이션을 실행하고 있는 어플리케이션 프로세서로부터 오프-로드될 수 있다.
상기한 벡터 처리 및 SIMD 방법은 어레이 처리와 같은 특정 종류의 문제들에만 적용될 수 있다. 이들 방법은 이 문제가 적절한 방식으로 공식화되는 경우 예를 들어 벡터 대수학 구성(Vector Algebra Constructs)을 사용함으로써 최적으로 작동한다. 애플리케이션이 여러 파트로 쉽게 분리되지 않는 다면, 병렬 처리는 이 문제를 특수하게 구조화하는 것을 필요로 할 수 있으며 또는 어플리케이션이 특히 병렬 처리 환경을 위하여 기록될 필요가 있을 수 있다. 이는 메시지 패싱과 함께 특정 병렬 처리 코드의 사용을 수반하여 각종 프로세서가 병렬로 동작할 때 이 각종 프로세서의 활동도를 조정한다.
상기한 바와 같이, 병렬 처리 기술 및 이들 기술에 수반되는 어려움들이 없이 데이터 처리 구조의 데이터 프로세싱 처리량을 증가시키는 것이 바람직하다.
따라서, 본 발명의 목적은, 가속된 운영 시스템을 지닌 데이터 처리 구조를 제공하여 순차적인 프로그래밍 모델에 따라서 실행되는 어플리케이션의 데이터 프로세싱 처리량을 증가시키기 위한 분산 운영 시스템 및 그 방법을 제공함에 있다.
즉, 본 발명은, 주 데이터 프로세서 상에서 실행되는 어플리케이션은 운영 시스템과 인터페이싱 되고, 운영 시스템의 적어도 일부를 주 데이터 프로세서 상에서 실행되는 어플리케이션에 대해 데이터 처리 지원을 제공하는 다수의 종속 데이터 프로세서 간에 분산시킴으로써, 종속 데이터 프로세서가 또한 주 데이터 프로세서 상에서 실행되는 어플리케이션에 대해 운영 시스템 지원을 제공하도록 하는 것이다. 또한, 주 데이터 프로세서로부터 이 운영 시스템 기능성을 오프-로딩하면, 주 데이터 프로세서의 데이터 프로세싱 처리량을 증가시킬 수 있도록 하는 것이다.
상기한 목적을 달성하기 위한 본 발명의 데이터 처리 장치의 일 측면에 따르면, 어플리케이션을 실행할 수 있는 주 데이터 프로세서; 상기 주 데이터 프로세서 상에서 실행되는 어플리케이션에 대해 데이터 처리 지원을 제공할 수 있는 다수의 종속 데이터 프로세서; 상기 다수의 종속 데이터 프로세서를 상기 주 데이터 프로세서에 각각 결합시키는 다수의 통신 경로; 및, 운영 시스템 및, 상기 어플리케이션을 상기 운영 시스템과 인터페이싱시키는 상기 주 데이터 프로세서에 제공된 애플리케이션 인터페이스로서, 상기 운영 시스템의 적어도 일부는 상기 종속 데이터 프로세서 간에 분산되어, 상기 종속 데이터 프로세서가 또한 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 운영 시스템 지원을 제공하도록 하는 어플리케이션 인터페이스를 포함한다.
상기 주 데이터 프로세서는 순차적인 프로그래밍 모델에 따라서 상기 애플리케이션을 실행한다.
상기 종속 데이터 프로세서는 상기 데이터 처리 장치로부터 물리적으로 분리되어 위치된 곳으로부터 그리고 상기 위치로 데이터를 입력 및 출력시킴으로써 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 상기 데이터 처리 지원을 제공한다.
상기 운영 시스템의 적어도 일부는 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 의해 상대적으로 빈번하게 액세스되는 운영 시스템 기능을 포함한다.
상기 운영 시스템 기능은 IP 스택, 디스패쳐, 스케쥴러, 및 가상 메모리 페이징 기능중 하나를 포함하고, 상기 운영 시스템은 리눅스 운영 시스템이다.
상기 종속 데이터 프로세서는 프로그램 명령을 실행하여 상기 데이터 처리 지원을 제공한다.
상기 애플리케이션 인터페이스는 상기 운영 시스템의 적어도 일부의 분산이 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 투명(Transparent)하게 되도록 한다.
상기 데이터 처리 장치는 단일 집적 회로로 구현되고, 상기 데이터 처리장치의 주 데이터 프로세서는 RISC 프로세서를 포함하고 상기 종속 데이터 프로세서는 각 RISC 마이크로 엔진을 포함한다.
상기 통신 경로 각각은 상기 주 데이터 프로세서 및 이와 관련된 종속 데이터 프로세서에 의해 공유되는 메모리를 포함하고, 상기 주 데이터 프로세서 및 상기 모든 종속 데이터 프로세서는 상기 메모리를 공유한다.
상기 종속 프로세서들 중 적어도 하나는 상기 데이터 처리 지원 및 상기 운영 시스템 지원을 동시에 제공한다.
한편 본 발명의 따른 컴퓨터 운영 시스템을 가속시키는 방법의 일 측면에 따르면, 주 데이터 프로세서 상에서 실행되는 어플리케이션을 컴퓨터 운영 시스템에 인터페이싱시키는 단계; 및, 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 데이터 처리 지원을 제공하는 다수의 종속 데이터 프로세서들 간에 상기 컴퓨터 운영 시스템의 적어도 일부를 분산시켜, 상기 종속 데이터 프로세서가 또한 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 운영 시스템 지원을 제공하도록 하는 단계를 포함한다.
상기 인터페이싱 단계는, 상기 컴퓨터 운영 시스템의 적어도 일부의 분산이 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 투명(Transparent)하게 되도록 하는 단계를 포함한다.
상기 데이터 처리 지원 및 상기 운영 시스템 지원을 동시에 제공하기 위하여 상기 종속 데이터 프로세서를 사용하는 단계를 더 포함한다.
이하, 본 발명에 대한 바람직한 실시예에 대하여 동일한 부품에 동일한 참조 번호가 병기된 첨부한 도면을 참조하여 상세하게 설명하기로 한다.
후술되는 도 1 내지 도 5 및 본 발명의 원리를 설명하기 위하여 사용되는 각종 실시예는 단지 실시예 일 뿐 본 발명의 범위를 제한하는 것으로 해석되어서는 안될 것이며, 당업자는 본 발명의 원리가 임의로 적절하게 배치된 데이터 처리 구 조로 구현될 수 있다는 것을 이해해야 할 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 다중 프로세서에서의 데이터 처리 구조를 나타낸 도면이다.
도 1에 도시된 바와 같이, 데이터 처리 구조(100)는 주 코어 프로세서(110), 다수의 종속 프로세서(130), 및 메모리(120)를 포함한다.
주 코어 프로세서(110)는 종속 프로세서(130) 및 메모리(120)와 통신하도록 버스 구조(140)에 의해 결합되고, 종속 프로세서(130)는 또한 메모리(120)와 통신하도록 버스 구조(140)에 의해 결합된다.
또한, 종속 프로세서(130)는 주 코어 프로세서(110) 및 메모리(120)와 연동하여 다수의 I/O 채널(135)로 표시된 바와 같은 채널화된 I/0를 데이터 처리 구조(100)에 제공할 수 있다.
데이터 처리 구조(100)는 또한, 보다 상세하게 후술되는 분산 운영 시스템(150)을 포함한다.
도 2는 본 발명의 바람직한 실시예에 따른 도 1의 종속 프로세서의 내부 구성을 간략하게 나타낸 도면이다.
도 2에 도시된 바와 같이 종속 프로세서(200)는 레지스터(210), 프로그램 제어 유닛(220), 명령 실행 유닛(240), 및 메모리 인터페이스(250)를 포함한다.
레지스터(210), 프로그램 제어 유닛(220), 및 메모리 인터페이스(250)는 버스(140)에 각각 접속되어 서로 통신하고 또한 주 코어 프로세서(110) 및 메모리(120)와 접속된다(도 1에 도시).
프로그램 제어 유닛(220)은 메모리(120)로부터 레지스터(210)로 명령 및 데이터를 적절하게 로딩한다.
바람직한 실시예에서, 다수의 레지스터(210)의 세트는 이에 상응하는 다수의 실행 쓰레드(Execution Threads)를 구현하기 위하여 사용될 수 있다. 이와 같은 다수의 쓰레드 실시예에서, 멀티플렉서(230)는 레지스터(210) 및 명령 실행 유닛(240) 간에 접속되고, 프로그램 제어 유닛(220)은 멀티플렉서(230)를 제어하여 원하는 쓰레드와 관계되는 레지스터(210)를 명령 실행 유닛(240)과 접속시킨다.
또한, 다른 실시예로서, 단일 레지스터 세트 및 이에 상응하는 단일 실행 쓰레드 만이 구현될 수도 있다. 이와 같은 실시예에서, 도 2에서 파선으로 표시된 바와 같이, 단일 레지스터 세트는 명령 실행 유닛(240)에 직접 접속될 수 있다.
명령 실행 유닛(240)은 프로그램 제어 유닛(220)의 제어에 따라 수신한 명령을 실행한다. 또한, 메모리 인터페이스(250)는 명령 실행 유닛(240)의 제어에 따라 메모리(120)로부터 버스(140)를 통해서 데이터를 판독하고 판독된 데이터를 I/O 채널(260) 상으로 출력한다.
또한, 메모리 인터페이스(250)는 명령 실행 유닛(240)의 제어에 따라 I/O 채널(260)로부터 데이터를 수신하고, 수신된 데이터를 버스(140)를 통해 메모리(120)에 기록한다.
도 1에서 각 종속 프로세서(130)는 도 2에 도시된 바와 같은 I/O 채널(260)을 구현함으로써, 다수 채널, 즉 도 1에 도시된 바와 같이 I/0 채널들(135)을 제공할 수 있는 것이다.
도 3은 본 발명의 바람직한 실시예에 따른 도 1 및 도 2의 데이터 처리 구조의 상세한 예를 도시한 것이다.
도 3의 예에서, 데이터 처리 구조는 SAN(Storage Area Network)(300)에서 게이트웨이 또는 파일 서버로서 사용된다. 주 코어 프로세서(110)는 도 3에서 X-SCALE 프로세서로서 구현되고, 종속 프로세서(130)는 마이크로 엔진(130a, 130b), 등으로서 구현된다.
본 발명의 바람직한 실시예에서, X-SCALE 프로세서(주 코어 프로세서:110) 및 마이크로 엔진(130a, 130b)은 인텔사로부터 구입할 수 있는 IXP 2800 칩과 같은 종래의 네트워크 프로세서 집적 회로를 제공할 수 있다. 단일-칩 네트워크 프로세서는 일반적으로, 도 3에서 도면 부호 (330)으로 도시되어 있다.
도 3에서, 도 1의 메모리(120)는 RDRAM(310), QDRAM(320) 및 스크래치패드 메모리(Scratchpad Memory)(321)를 포함한다. 본 발명의 바람직한 실시예에서, 스크래치패드 메모리(321)는 X-SCALE 프로세서 및 마이크로엔진과 함께 온-칩(On-Chip)으로 제공된다.
데이터 처리 구조(100)는 ASIC(340)(또는 FPGA), 이더넷 인터페이스(341 및 342), SCSI 인터페이스(343a 및 343b) 및 섬유 채널(Fiber Channel:FC) 인터페이스(344)를 통해서 데이터 네트워크(350) 및 저장 어레이(360 및 370)에 인터페이싱 된다. 인터페이스(341-344)는 종래 기술에 널리 공지되어 있다.
ASIC(340)는 데이터 처리 구조(100)의 I/O 채널(135) 및 각종 인터페이스(341-344) 간을 인터페이싱 하도록 설계된다. 예를 들어, IXP2800을 사용하는 실시 예에서, I/0 채널(135)은 IXP2800의 SPI-4 Phase 2(SPI-4.2) I/O 버스 상에 제공된다. 따라서, ASIC(340)은 SPI-4.2 버스에 인터페이싱 하고 I/O 채널(135)을 각종 외부 인터페이스(341-344)로 팬 아웃(fan out) 한다.
QDRAM(320)은 주로, RDRAM(310)으로부터 I/O 채널(135)로, 또는 I/O 채널(135)로부터 RDRAM(310)으로 전달되는 데이터를 일시적으로 저장하는데 사용되고, 작업 리스트는 또한 RDRAM(310)에 기록 유지된다.
X-SCALE 프로세서 즉, 주 코어 프로세서(110)는 명령을 작업 리스트에 기록할 수 있고, 마이크로 엔진(130a, 130b) 등은 명령에 액세스하여 이 명령에 의해 특정화된 기능을 실행할 수 있다. 본 발명의 일 실시예는 1-2 메가바이트의 QDRAM 및 2 기가바이트의 RDRAM을 사용할 수 있다. 본 발명의 바람직한 실시예에서, QDRAM(320) 및 RDRAM(310) 모두는 단일-칩 네트워크 프로세서(330)와 함께 단일 인쇄 회로 기판 상에 제공된다.
본 발명의 바람직한 실시예에서, 주 코어 프로세서(110)는 RDRAM(310)의 작업 리스트에 명령을 저장한다. 예를 들어, 주 코어 프로세서(110)는 다수의 원하는 저장 디스크 액세스에 각각 대응하는 다수의 명령을 저장할 수 있다. 이 명령은 예를 들어, 어떤 명령을 실행할 지, 어느 데이터가 메모리에 저장되는(저장될)지, 등을 표시할 수 있다. 주 코어 프로세서(110)를 지원하기 위하여 자유롭게 될 때 독립적으로 작용하는 종속 프로세서(130)는 작업 리스트로부터의 명령을 검색하고 SCSI 인터페이스(343a 및 343b)를 사용함으로써 병렬로 디스크 저장 액세스를 수행할 수 있다.
디스크 저장 유닛에 기록하기 위하여, 종속 프로세서(130)는 RDRAM(310)으로부터 디스크 저장 유닛(예를 들어, 360)으로 데이터를 전달한다. 디스크 저장 유닛(360)으로부터 판독하기 위하여, 종속 프로세서(130)는 디스크 저장 유닛(360)으로부터 수신된 데이터를 RDRAM(310)으로 전달한다. 이들 데이터 전달은 도 2의 명령 실행 유닛(240)의 제어에 따라 도 2의 메모리 인터페이스(250)에 의해 성취될 수 있다. I/O 처리를 지원하기 위하여 명령 실행을 분산시키면, 메인 프레임 또는 슈퍼 컴퓨터 구조에서 초래될 수 있는 병목을 피하게 하는데, 채널화된 I/O를 제어하는 모든 명령은 I/O 채널 자신들에서가 아니라 단일 중앙 처리 장치에 의해 실행된다.
또한, 유사한 병목현상은 당연히 종래 PC 및 다른 데스크톱 구조에서 초래될 수 있는데, 모든 I/O 및 데이터 처리 기능성은 중앙 처리 장치에서 수행되는 명령 실행에 의해 제어된다. 본 발명의 바람직한 실시예에서, 주 코어 프로세서(110)는 버스(140)를 사용하여 명령을 각종 종속 프로세서(130)에 직접 제공할 수 있다.
도 4는 본 발명의 바람직한 실시예에 따른 도 1의 분산 운영 시스템을 더욱 상세하게 도시한 것이다.
도4에 도시된 바와 같이, 주 코어 프로세서(110)는 어플리케이션(410), 예를 들어, 파일 서버 애플리케이션을 실행한다. 이들 어플리케이션(410)은 종속 프로세서(130) 내로 그리고 이들 프로세서 간에 분산되는 운영 시스템에 의해 지원된다. 특히, 주 코어 프로세서(110)는 애플리케이션 인터페이스(420)를 제공하고, 또한 일부 OS 로컬 펑션(430)을 제공할 수 있다. 그러나, 나머지 OS 펑션들은 종속 프로 세서들(130) 간에 분산된다.
종속 프로세서들(130) 간에 이 OS 펑션의 분산은 도 4에서 일반적으로 원격 OS 펑션(450)으로 표시된다.
본 발명의 바람직한 실시예에서, 운영 시스템(OS)은 널리 공지된 리눅스 운영 시스템이고, 리눅스 운영 시스템의 IP 스택 펑션은 원격 OS 펑션으로서 종속 프로세서(130) 내로 분산된다. IP 스택 펑션은 주 코어 프로세서(110)로부터 종속 프로세서(130) 내로 손쉽게 재배치될 수 있는 널리 규정된 소켓 인터페이스(Socket Interface)를 사용한다. 또 다른 실시예로서, 리눅스 스케쥴러 펑션은 상대적으로 이동이 용이한데, 그 이유는 이 펑션이 타이머에 의해 트리거(Triger)되고 모든 시스템 호출이 스케쥴러를 통해서 복귀하기 때문이다.
본 발명의 바람직한 실시예에서, 어플리케이션 인터페이스(420)는 종속 프로세서(130) 내로의 OS의 분산을 어플리케이션(410)에 대해 완전히 투명(Transparent)하게 한다. 따라서, 어플리케이션(410)은 전체 OS가 주 코어 프로세서(110) 상에서 구현되는 경우와 동일한 방식으로 주 코어 프로세서(110)에 대한 수정 없이도 실행될 수 있다. 여기서, 상기 투명이라는 의미는 일반적으로 다른 시스템에서 동작하고 있는 프로그램을 자신의 시스템을 통해서 알 수도 있으며 마찬가지고 자신의 시스템에서 동작하고 있는 프로그램의 출력을 다른 시스템에서도 알 수도 있는데 이러한 것을 투명하다라고 정의하는 것이다.
분산 OS가 주 코어 프로세서(110)로부터의 I/O 요청을 처리하도록 사용되는 경우, 전체 I/O 프로세스는 주 코어 프로세서(110) 상에서 실행되는 어플리케이션에 대해 투명(Transparent)하다라고 간주된다. 특히, 어플리케이션(410)은 단지 어플리케이션 인터페이스(420) 만을 보고, 종속 프로세서(130)가 I/O 동작을 처리한다는 사실은 주 코어 프로세서(110) 상에서 실행되는 어플리케이션에 대해 투명하게 된다는 것이다. 전형적인 디스크 저장 판독 동작은 이 동작이 완료되기 전에 많은 인터럽트를 발생시킨다.
그러나, 디스크 저장 액세스와 관계된 운영 시스템 펑션을 종속 프로세서(130) 내로 분산시킴으로써, 많은 인터럽트는 단지 종속 프로세서(130)에 의해서만 보이고 주 코어 프로세서(110) 상에서 실행되는 어플리케이션에 대해서는 가시화되지 않는다. 주 코어 프로세서(110) 상에서 실행되는 어플리케이션이 관련되는 한, 이 어플리케이션은 단지 디스크 판독 저장 요청을 어플리케이션 인터페이스(420)에 제공하고, 이 요청은 단일 인터럽트, 즉 원하는 파일이 RDRAM(310)에서 준비되었다는 것을 나타내는 운영 시스템으로부터의 인터럽트를 발생시킨다.
바람직한 실시예에서, 상대적으로 느리며, 상대적으로 빈번하게 액세스되거나, 이들 모두를 가지는 운영 시스템 펑션은 종속 프로세서(130) 간에 분포됨으로써, 상대적으로 부담스러운 큰 프로세싱을 주 코어 프로세서(110)로부터 오프-로딩시켜(Off-Loading), 순차적인 프로그래밍 모델에 따라서 어플리케이션을 실행하는 동안 주 코어 프로세서(110)가 수행할 수 있는 데이터 프로세싱 처리량을 개선시킨다.
도 5는 본 발명의 바람직한 실시예에 따른 확장된 데이터 처리 구조를 도시한 것이다.
도 5의 확장된 데이터 처리 구조(500)에서, 도 1 내지 도 3에 대해서 상술된 데이터 처리 구조(100)의 다수 인스턴스(100a, 100b,..., 100c)는 버스 구조에 의해 상호접속 된다. 특히, 버스(510) 구조는 각 데이터 처리 구조(100a, 100b, ..., 100c)의 주 코어 프로세서(110)를 상호접속 시킨다. 따라서, 도 5의 배열은 훨씬 높은 수행 성능 구조가 될 수 있는 것이다.
본 발명이 바람직한 실시예와 관련하여 서술되었지만, 각종 변경 및 수정이 당업자에 의해 제안될 수 있다. 본 발명은 첨부된 청구범위 범위 내에 있는 이와 같은 각종 변경 및 수정을 포함한다.
상기한 바와 같은 본 발명에 따른 가속된 운영 시스템을 지닌 데이터 처리 구조를 제공하여 순차적인 프로그래밍 모델에 따라서 실행되는 애플리케이션의 데이터 프로세싱 처리량을 증가시킬 수 있는 효과를 가진 것이다.

Claims (17)

  1. 데이터 처리 장치에 있어서,
    어플리케이션을 실행할 수 있는 주 데이터 프로세서;
    상기 주 데이터 프로세서 상에서 실행되는 어플리케이션에 대해 데이터 처리 지원을 제공할 수 있는 다수의 종속 데이터 프로세서;
    상기 다수의 종속 데이터 프로세서를 상기 주 데이터 프로세서에 각각 결합시키는 다수의 통신 경로; 및,
    운영 시스템 및, 상기 어플리케이션을 상기 운영 시스템과 인터페이싱시키는 상기 주 데이터 프로세서에 제공된 어플리케이션 인터페이스로서, 상기 운영 시스템의 적어도 일부는 상기 종속 데이터 프로세서 간에 분산되어, 상기 종속 데이터 프로세서가 또한 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 운영 시스템 지원을 제공하도록 하는 어플리케이션 인터페이스를 포함하는 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 주 데이터 프로세서는 순차적인 프로그래밍 모델에 따라서 상기 애플리케이션을 실행하는 데이터 처리 장치.
  3. 제1항에 있어서,
    상기 종속 데이터 프로세서는 상기 데이터 처리 장치로부터 물리적으로 분리되어 위치된 곳으로부터 그리고 상기 위치로 데이터를 입력 및 출력시킴으로써 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 상기 데이터 처리 지원을 제공하는 데이터 처리 장치.
  4. 제1항에 있어서,
    상기 운영 시스템의 적어도 일부는 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 의해 상대적으로 빈번하게 액세스되는 운영 시스템 기능을 포함하는 데이터 처리 장치.
  5. 제4항에 있어서,
    상기 운영 시스템 기능은 IP 스택, 디스패쳐, 스케쥴러, 및 가상 메모리 페이징 기능중 적어도 하나 이상의 기능을 포함하는 데이터 처리 장치.
  6. 제1항에 있어서,
    상기 운영 시스템은 리눅스 운영 시스템인 데이터 처리 장치.
  7. 제1항에 있어서,
    상기 종속 데이터 프로세서는 프로그램 명령을 실행하여 상기 데이터 처리 지원을 제공하는 데이터 처리 장치.
  8. 제1항에 있어서,
    상기 어플리케이션 인터페이스는, 상기 운영 시스템의 적어도 일부의 분산이 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 투명(Transparent)하게 되도록 하는 데이터 처리 장치.
  9. 제1항에 있어서,
    상기 데이터 처리 장치는 단일 집적 회로로 구현되는 데이터 처리 장치.
  10. 제9항에 있어서,
    상기 데이터 처리장치의 주 데이터 프로세서는 RISC 프로세서를 포함하고 상 기 종속 데이터 프로세서는 각 RISC 마이크로 엔진을 포함하는 데이터 처리 장치.
  11. 제1항에 있어서,
    상기 통신 경로 각각은 상기 주 데이터 프로세서 및 이와 관련된 종속 데이터 프로세서에 의해 공유되는 메모리를 포함하는 데이터 처리 장치.
  12. 제11항에 있어서,
    상기 주 데이터 프로세서 및 상기 모든 종속 데이터 프로세서는 상기 메모리를 공유하는 데이터 처리 장치.
  13. 제1항에 있어서,
    상기 종속 프로세서들 중 적어도 하나는 상기 데이터 처리 지원 및 상기 운영 시스템 지원을 동시에 제공하는 데이터 처리 장치.
  14. 컴퓨터 운영 시스템을 가속시키는 방법에 있어서,
    주 데이터 프로세서 상에서 실행되는 어플리케이션을 컴퓨터 운영 시스템에 인터페이싱시키는 단계; 및,
    상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 데이터 처리 지원을 제공하는 다수의 종속 데이터 프로세서들 간에 상기 컴퓨터 운영 시스템의 적어도 일부를 분산시켜, 상기 종속 데이터 프로세서가 또한 상기 주 데이터 프로세서 상에서 실행되는 상기 어플리케이션에 대해 운영 시스템 지원을 제공하도록 하는 단계를 포함하는 컴퓨터 운영 시스템 가속 방법.
  15. 제14항에 있어서,
    상기 컴퓨터 운영 시스템의 적어도 일부는 IP 스택, 디스패쳐, 스케쥴러 및 가상 메모리 페이징 기능 중 적어도 하나 이상의 기능을 포함하는 컴퓨터 운영 시스템 가속 방법.
  16. 제14항에 있어서,
    상기 인터페이싱 단계는,
    상기 컴퓨터 운영 시스템의 적어도 일부의 분산이 상기 주 데이터 프로세서 상에서 실행되는 상기 애플리케이션에 대해 투명(Ttansparent)하게 되도록 하는 단계를 포함하는 컴퓨터 운영 시스템 가속 방법.
  17. 제14항에 있어서,
    상기 데이터 처리 지원 및 상기 운영 시스템 지원을 동시에 제공하기 위하여 상기 종속 데이터 프로세서를 사용하는 단계를 더 포함하는 컴퓨터 운영 시스템 가속 방법.
KR1020050038154A 2004-05-27 2005-05-06 다중-프로세서 구조에서 데이터 처리 수행성능을증가시키기 위한 분산 운영 시스템 및 그 방법 KR100694212B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US57558904P 2004-05-27 2004-05-27
US57559004P 2004-05-27 2004-05-27
US60/575,589 2004-05-27
US60/575,590 2004-05-27

Publications (2)

Publication Number Publication Date
KR20060045952A KR20060045952A (ko) 2006-05-17
KR100694212B1 true KR100694212B1 (ko) 2007-03-14

Family

ID=37149389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050038154A KR100694212B1 (ko) 2004-05-27 2005-05-06 다중-프로세서 구조에서 데이터 처리 수행성능을증가시키기 위한 분산 운영 시스템 및 그 방법

Country Status (2)

Country Link
US (2) US7562111B2 (ko)
KR (1) KR100694212B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080048291A (ko) * 2006-11-28 2008-06-02 (주)엠텍소프트 복수의 프로세서를 포함하는 디지털 처리 장치 및 복수의프로세서의 연결 방법
US9152427B2 (en) * 2008-10-15 2015-10-06 Hyperion Core, Inc. Instruction issue to array of arithmetic cells coupled to load/store cells with associated registers as extended register file
GB0919253D0 (en) 2009-11-03 2009-12-16 Cullimore Ian Atto 1
US8875276B2 (en) 2011-09-02 2014-10-28 Iota Computing, Inc. Ultra-low power single-chip firewall security device, system and method
US8904216B2 (en) * 2011-09-02 2014-12-02 Iota Computing, Inc. Massively multicore processor and operating system to manage strands in hardware
DE102015119202A1 (de) 2015-05-11 2016-11-17 Dspace Digital Signal Processing And Control Engineering Gmbh Schnittstelleneinheit zur Weiterleitung priorisierter Eingangsdaten an einen Prozessor
KR101936942B1 (ko) * 2017-08-28 2019-04-09 에스케이텔레콤 주식회사 분산형 컴퓨팅 가속화 플랫폼 장치 및 분산형 컴퓨팅 가속화 플랫폼 운영 방법
KR101973946B1 (ko) * 2019-01-02 2019-04-30 에스케이텔레콤 주식회사 분산형 컴퓨팅 가속화 플랫폼 장치
CN113377857A (zh) * 2021-07-02 2021-09-10 招商局金融科技有限公司 数据分发方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000268011A (ja) 1999-03-19 2000-09-29 Nec Soft Ltd 分散ジョブ実行システムおよびそのプログラム記録媒体
KR20010002943A (ko) * 1999-06-18 2001-01-15 정선종 유닉스를 사용하는 분산 시스템 상에서 공유 라이브러리 지원방법 및 장치
JP2003330730A (ja) 2002-05-15 2003-11-21 Matsushita Electric Ind Co Ltd オペレーティングシステム配置装置
US6697876B1 (en) 1998-08-26 2004-02-24 Qnx Software Systems Ltd. Distributed kernel operating system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4153942A (en) * 1977-01-24 1979-05-08 Motorola, Inc. Industrial control processor
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system
US6714945B1 (en) * 1995-11-17 2004-03-30 Sabre Inc. System, method, and article of manufacture for propagating transaction processing facility based data and for providing the propagated data to a variety of clients
US6108731A (en) * 1996-02-09 2000-08-22 Hitachi, Ltd. Information processor and method of its component arrangement
US6216216B1 (en) * 1998-10-07 2001-04-10 Compaq Computer Corporation Method and apparatus for providing processor partitioning on a multiprocessor machine
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US20050071578A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for manipulating data with a plurality of processors
US7389508B2 (en) * 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US8533716B2 (en) * 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697876B1 (en) 1998-08-26 2004-02-24 Qnx Software Systems Ltd. Distributed kernel operating system
JP2000268011A (ja) 1999-03-19 2000-09-29 Nec Soft Ltd 分散ジョブ実行システムおよびそのプログラム記録媒体
KR20010002943A (ko) * 1999-06-18 2001-01-15 정선종 유닉스를 사용하는 분산 시스템 상에서 공유 라이브러리 지원방법 및 장치
JP2003330730A (ja) 2002-05-15 2003-11-21 Matsushita Electric Ind Co Ltd オペレーティングシステム配置装置

Also Published As

Publication number Publication date
KR20060045952A (ko) 2006-05-17
US20050267930A1 (en) 2005-12-01
US7562111B2 (en) 2009-07-14
US20050278720A1 (en) 2005-12-15

Similar Documents

Publication Publication Date Title
Wu et al. Flep: Enabling flexible and efficient preemption on gpus
KR100694212B1 (ko) 다중-프로세서 구조에서 데이터 처리 수행성능을증가시키기 위한 분산 운영 시스템 및 그 방법
Caspi et al. A streaming multi-threaded model
Manferdelli et al. Challenges and opportunities in many-core computing
Sato et al. Thread-based programming for the EM-4 hybrid dataflow machine
US9110692B2 (en) Method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system
GB2493607A (en) Eliminating redundant instruction processing in an SIMT processor
JP2013524386A (ja) ランスペース方法、システムおよび装置
Lee et al. Orchestrating multiple data-parallel kernels on multiple devices
Wu et al. When FPGA-accelerator meets stream data processing in the edge
KR20140126195A (ko) 배치 쓰레드 처리 기반의 프로세서, 그 프로세서를 이용한 배치 쓰레드 처리 방법 및 배치 쓰레드 처리를 위한 코드 생성 장치
Ginosar et al. RC64: High performance rad-hard manycore
US20200319893A1 (en) Booting Tiles of Processing Units
Cong et al. Architecture support for domain-specific accelerator-rich cmps
Wolf et al. AMIDAR project: lessons learned in 15 years of researching adaptive processors
Palmer et al. Connection Machine model CM-5 system overview
Hetherington et al. Edge: Event-driven gpu execution
US20230367604A1 (en) Method of interleaved processing on a general-purpose computing core
US8601236B2 (en) Configurable vector length computer processor
Heinz et al. Improving job launch rates in the TaPaSCo FPGA middleware by hardware/software-co-design
Hwang et al. {ARK}:{GPU-driven} Code Execution for Distributed Deep Learning
US20230236878A1 (en) Efficiently launching tasks on a processor
Giorgi et al. Implementing fine/medium grained tlp support in a many-core architecture
JP2005508029A (ja) リコンフィギュアラブルアーキテクチャのためのプログラム変換方法
Tarakji et al. The development of a scheduling system GPUSched for graphics processing units

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee