KR20200117383A - 고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치 - Google Patents

고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20200117383A
KR20200117383A KR1020190039407A KR20190039407A KR20200117383A KR 20200117383 A KR20200117383 A KR 20200117383A KR 1020190039407 A KR1020190039407 A KR 1020190039407A KR 20190039407 A KR20190039407 A KR 20190039407A KR 20200117383 A KR20200117383 A KR 20200117383A
Authority
KR
South Korea
Prior art keywords
input
output
data
peripheral device
speed
Prior art date
Application number
KR1020190039407A
Other languages
English (en)
Inventor
김영우
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020190039407A priority Critical patent/KR20200117383A/ko
Publication of KR20200117383A publication Critical patent/KR20200117383A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치가 개시된다. 본 발명의 일실시예에 따른 데이터 고속 처리 방법은 컴퓨터 시스템에 연결된 입출력 주변 장치가, 상기 컴퓨터 시스템에 연결된 적어도 하나의 다른 입출력 주변 장치와 직접 연결되는 고속 입출력 인터커넥션을 설정하고, 고속 입출력 인터커넥션을 활성화시키고, 상기 적어도 하나의 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트가 발생하는 경우에 활성화된 고속 입출력 인터커넥션을 통해 상기 적어도 하나의 다른 입출력 주변 장치와의 직접 데이터 이동을 수행한다.

Description

고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치 {METHOD FOR HIGH-SPEED PROCESSING OF DATA USING HIGH-SPEED I/O INTERCONNECTION AND APPARATUS USING THE SAME}
본 발명은 컴퓨터 시스템에서 주변 장치들 간의 데이터 고속 처리 기술에 관한 것으로, 특히 컴퓨터 주변 장치들 간의 직접 연결에 의한 고속 입출력 인터커넥션 구조를 기반으로 고속으로 데이터 전송을 처리할 수 있는 기술에 관한 것이다.
본 연구는 2017년 정부(과학기술정보통신부)의 재원으로 국가과학기술연구회 창의형 융합연구사업(No. CAP-17-03-KISTI)의 지원을 받아 수행되었다.
현재의 컴퓨터 시스템은 지능정보 처리의 발전에 따라, 고속의 데이터 분석 및 처리를 필요로 하고 있다. 이와 같은 지능정보 처리를 수행하는 경우, 중앙처리장치인 CPU(CENTRAL PROCESSING UNIT)의 처리 성능을 초과하는 수준의 연산을 요구하기 때문에 주변장치를 통해 고속 연산을 처리하는 성능가속 장치를 사용하고 있다.
성능가속 장치로는 그래픽 장치 기반의 벡터연산 처리장치인 GPGPU(GENERAL PURPOSE COMPUTING ON GRAPHICS PROCESSING UNIT, 그래픽 장치상의 범용연산), 전용 코프로세서(CO-PROCESSOR) 및 FPGA(FIELD PROGRAMMABLE GATE ARRAY) 등의 장치가 널리 사용된다. 이러한 성능가속 장치는, 높은 연산 성능을 제공하지만 주변장치의 한계로 인하여 한번에 수용할 수 있는 데이터의 크기에 제한을 두고 있으며, 대규모의 데이터 처리와 병렬 수행을 위해서 컴퓨터 시스템의 메인 메모리를 사용하고 있다. 특히, 인접 성능가속 장치와의 데이터 교환을 위해서는 컴퓨터 시스템의 메인 메모리에 데이터로 복사하거나, 데이터의 전송을 위해 I/O 시스템 버스(대표적으로 PCI Express)를 통한 데이터 이동을 필요로 하는데, 이러한 것들은 시스템의 연산 성능을 제한하는 대표적인 요소이다.
기존의 성능가속 장치는 I/O 시스템 버스에 기반하여 데이터의 로딩 및 이동을 구현하고 있으며, 이로 인하여 다음과 같은 성능 제한 사항이 발생한다.
첫 번째로 데이터 처리속도와 데이터 이동 속도의 급격한 차이로 인한 문제점이 존재한다. 성능가속 장치는 내부에 벡터 연산기 혹은 최적 연산 회로를 내장하고 있기 때문에 중앙처리장치보다 높은 성능의 연산 수행이 가능하다. 반면에 연산에 필요한 데이터는 성능가속 장치의 내부 메모리에 저장되어야 하므로 공유 데이터 혹은 성능가속 장치 상호간의 데이터 이동에 I/O 시스템 버스 혹은 메모리 데이터 복사를 이용해야 한다. 이 때, 데이터 이동에 따른 전체 성능 저하가 발생할 수 있다.
두 번째로 성능가속 장치의 내부 메모리 용량 제한으로 인한 문제점이 존재한다. 컴퓨터 서버는 메인 메모리의 용량을 충분하게 제공할 수 있지만 성능가속 장치는 제한된 물리적 크기와 메모리 용량 제한 등으로 인하여 충분한 데이터를 내장할 수 없다. 따라서, 성능가속 장치간의 공유 데이터의 이용 혹은 데이터 교환에 의해 전체 처리 성능이 저하 될 수 있다.
세 번째로 I/O 시스템 버스 기반 데이터 전송의 문제점이 존재한다. 컴퓨터의 I/O 시스템 버스는 PCI Express 시스템 버스로 대표될 수 있는데, PCI Express 시스템 버스는 중앙 처리 장치와 I/O 장치(본 발명의 경우 성능가속 장치) 간의 일대일 연결을 제공한다. 또한, 시스템 메모리 상에서 I/O 메모리 영역을 별도로 구분 관리하며, I/O 시스템 버스 규격상의 I/O 장치 간 데이터 일관성을 보장하지 않는다. 이와 같은 문제점은 성능가속 장치 간의 데이터 교환 및 공유 상의 어려움으로 작용하게 되며, 이를 해결하기 위한 소프트웨어의 개입으로 인해 전체 연산 성능의 저하를 가져오게 된다.
마지막으로 I/O 시스템 버스 구조적 문제점이 존재한다. 컴퓨터의 I/O 시스템 버스인 PCI Express 시스템 버스는, 중앙 처리 장치와 I/O 장치(본 발명의 경우 성능가속 장치) 간의 일대일(1:1) 연결 제공을 위하여 반드시 중앙처리장치의 제어를 필요로 한다. 예를 들어, PCI Express 시스템 버스는 주변장치의 설정 및 제어를 위하여 루트 콤플렉스(ROOT COMPLEX)라는 시스템 버스의 시작점을 필요로 하며, 중앙처리 장치는 루트 콤플렉스를 통하여 주변 장치의 발견, 설정 및 이용을 개시한다. 이에 따라 PCI Express 시스템 버스는 트리 구조를 가지게 되는데, 이는 주변장치 간의 상호 연결을 저해하는 요소로 작용하여 주변장치 간 데이터 이동의 성능 저하 요소로 작용한다.
한국 공개 특허 제10-2017-0133236호, 2017년 12월 5일 공개(명칭: PCIe 장치들에서의 고속 입출력을 위한 스토리지 시스템, 방법 및 장치)
본 발명의 목적은 컴퓨터 I/O 시스템 버스에 기반하는 고속의 서버 시스템 내 고속 입출력 인터커넥션을 제공하는 것이다.
또한, 본 발명의 목적은 컴퓨터 주변장치들 상호간에 고속으로 데이터를 이동 및 공유하기 위한 방법을 제공하는 것이다.
또한, 본 발명의 목적은 중앙처리장치의 직접적인 개입이 없는 시스템 내 연결망의 구성과 데이터 전송 구조를 제공하는 것이다.
또한, 본 발명의 목적은 PCIe 종단 장치들 간의 연결망 형상을 설정하는 기능을 제공함으로써 상호연결을 통한 직접적인 데이터 전송을 가능하게 하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 데이터 고속 처리 방법은 컴퓨터 시스템에 연결된 입출력 주변 장치가, 상기 컴퓨터 시스템에 연결된 적어도 하나의 다른 입출력 주변 장치와 직접 연결되는 고속 입출력 인터커넥션(HIGH SPEED I/O INTERCONNECTION)을 설정하는 단계; 상기 입출력 주변 장치가, 상기 고속 입출력 인터커넥션을 활성화시키는 단계; 및 상기 적어도 하나의 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트가 발생하는 경우, 상기 입출력 주변 장치가, 활성화된 고속 입출력 인터커넥션을 통해 상기 적어도 하나의 다른 입출력 주변 장치와의 직접 데이터 이동을 수행하는 단계를 포함한다.
이 때, 입출력 주변 장치는 상기 컴퓨터 시스템의 중앙처리장치와의 데이터 이동을 위한 제1 엔드 포인트(END-POINT)와 상기 적어도 하나의 다른 입출력 주변 장치와의 데이터 고속 이동을 위한 제2 엔드 포인트(END-POINT)를 포함할 수 있다.
이 때, 설정하는 단계는 내부 메모리에 상기 제2 엔드 포인트에 상응하는 기본 연결 정보를 저장하는 단계; 및 상기 내부 메모리에 상기 적어도 하나의 다른 입출력 주변 장치에 대한 메모리 정보를 기록하는 단계; 및 상기 제2 엔드 포인트에 기타 부가 형상 정보를 저장하는 단계를 포함할 수 있다.
이 때, 제1 엔드 포인트는 상기 중앙처리장치의 입출력 시스템 버스에 연결되고, 상기 제2 엔드 포인트는 상기 고속 입출력 인터커넥션에 연결될 수 있다.
이 때, 수행하는 단계는 상기 데이터 이동 이벤트의 종류를 고려하여 버스 마스터 모듈 및 버스 슬레이브 모듈 중 어느 하나를 기반으로 상기 직접 데이터 이동을 수행할 수 있다.
이 때, 직접 데이터 이동은 상기 입출력 주변 장치가 상기 버스 마스터 모듈을 기반으로 상기 적어도 하나의 다른 입출력 주변 장치로 데이터를 요청하거나 상기 입출력 주변 장치가 상기 버스 슬레이브 모듈을 기반으로 상기 적어도 하나의 다른 입출력 주변 장치로부터의 데이터 요청에 응답하는 것에 상응할 수 있다.
이 때, 고속 입출력 인터커넥션과 상기 입출력 시스템 버스는 상호간의 동작에 영향을 주지 않을 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 고속 이동을 위한 입출력 장치는 컴퓨터 시스템에 연결된 적어도 하나의 다른 입출력 주변 장치와 직접 연결되는 고속 입출력 인터커넥션(HIGH SPEED I/O INTERCONNECTION)을 설정하고, 상기 고속 입출력 인터커넥션을 활성화시키고, 상기 적어도 하나의 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트가 발생하는 경우에 활성화된 고속 입출력 인터커넥션을 통해 상기 적어도 하나의 다른 입출력 주변 장치와의 직접 데이터 이동을 수행하는 처리블록; 및 상기 적어도 하나의 다른 입출력 주변 장치와의 데이터 고속 이동을 위한 엔드 포인트(END-POINT)에 상응하는 기본 연결 정보 및 상기 적어도 하나의 다른 입출력 주변 장치에 대한 메모리 정보 중 적어도 하나를 저장하는 메모리를 포함한다.
이 때, 처리블록은 상기 컴퓨터 시스템의 중앙처리장치와의 데이터 이동을 위한 제1 엔드 포인트(END-POINT)와 상기 적어도 하나의 다른 입출력 주변 장치와의 데이터 고속 이동을 위한 제2 엔드 포인트(END-POINT)를 기반으로 데이터 이동을 수행할 수 있다.
본 발명에 따르면, 컴퓨터 I/O 시스템 버스에 기반하는 고속의 서버 시스템 내 고속 입출력 인터커넥션을 제공할 수 있다.
또한, 본 발명은 컴퓨터 주변장치들 상호간에 고속으로 데이터를 이동 및 공유하기 위한 방법을 제공할 수 있다.
또한, 본 발명은 중앙처리장치의 직접적인 개입이 없는 시스템 내 연결망의 구성과 데이터 전송 구조를 제공할 수 있다.
또한, 본 발명은 PCIe 종단 장치들 간의 연결망 형상을 설정하는 기능을 제공함으로써 상호연결을 통한 직접적인 데이터 전송을 가능하게 할 수 있다.
도 1은 본 발명의 일실시예에 따른 컴퓨터 시스템 구조를 나타낸 도면이다.
도 2는 종래의 컴퓨터 시스템 구조의 일 예를 나타낸 도면이다.
도 3은 종래의 I/O 시스템 버스 기반의 데이터 이동 경로의 일 예를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 데이터 고속 처리 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명에 따른 컴퓨터 시스템 구조를 상세하게 나타낸 도면이다.
도 6은 도 5에 도시된 입출력 장치를 상세하게 나타낸 블록도이다.
도 7는 도 5에 도시된 고속 입출력 인터커넥션 기반의 데이터 이동 경로의 일 예를 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 데이터 고속 처리 방법을 상세하게 나타낸 동작 흐름도이다.
도 9는 본 발명의 일실시예에 따른 입출력 장치를 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 컴퓨터 시스템 구조를 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 컴퓨터 시스템 구조는 중앙처리장치(CPU)(100), 로컬 메모리(LOCAL MEMORY)(101), 입출력 시스템 버스(I/O SYSTEM BUS)(110), 복수개의 입출력 장치들(I/O DEVICE)(120-1~120-N) 및 고속 입출력 인터커넥션(130)을 포함한다.
이 때, 로컬 메모리(101)는 컴퓨터 시스템 내부에 위치하는 메인 메모리에 상응할 수 있으며, 복수개의 입출력 장치들(120-1~120-N)은 중앙처리장치에 연결되어 고속 연산을 처리하는 주변 장치에 상응할 수 있다.
이 때, 복수개의 입출력 장치들(120-1~120-N)은 입출력 시스템 버스(110)를 통해 중앙처리장치(100)와 연결될 수 있다.
이 때, 도 2를 참조하면, 종래의 컴퓨터 시스템 구조는 본 발명에 따른 컴퓨터 시스템 구조와 다르게 고속 입출력 인터커넥션(130)을 제외한 중앙처리장치(CPU)(200), 로컬 메모리(LOCAL MEMORY)(201), 입출력 시스템 버스(I/O SYSTEM BUS)(210) 및 복수개의 입출력 장치들(I/O DEVICE)(220-1~220-M)만을 포함할 수 있다. 도 2에 도시된 구조에 따라, 종래 컴퓨터 시스템의 중앙처리장치(200)는 기본적인 프로세서 코어(CPU CORE)와 더불어 입출력 시스템 버스(210)에 대한 제어 및 액세스를 위한 루트 콤플렉스(ROOT COMPLEX)와 입출력 시스템 버스 계층 구조 구성을 위한 스위치를 포함할 수 있다.
이 때, 컴퓨터 시스템의 주변 장치에 해당하는 복수개의 입출력 장치들(220-1~220-M)은 내부에 각각 입출력 시스템 버스(210)와의 연결을 위한 종단 장치 또는 엔드 포인트(END POINT)를 내장하고 있으며, 각각의 기능 동작을 위한 입출력 메모리 또는 전용 엔진 하드웨어(I/O MEMORY OR ENGINE)를 내장할 수 있다.
이 때, 도 2를 참조하면, 중앙처리장치(200)의 스위치와 복수개의 입출력 장치들(220-1~220-M) 각각의 엔드 포인트를 입출력 시스템 버스(210)를 통해 상호 연결함으로써 입출력 시스템 버스(210)의 계층 구조를 구성할 수 있다. 이 때, 입출력 시스템 버스(210)는 입출력 시스템 버스 연결 경로상에 별도의 스위치를 두어 복수개의 입출력 장치들(220-1~220-M)의 개수를 확장하는 구조를 포함할 수 있다.
이 때, 본 발명에서는 대표적인 입출력 시스템 버스인 PCI Express 시스템 버스를 일례로 본 발명의 구성 및 동작을 설명하며, 본 발명에 따른 고속 입출력 인터커넥션(130)은 PCI Express 시스템 버스 이외의 다른 입출력 시스템 버스를 배제하거나 제한하지 않을 수 있다.
계속해서, 종래의 컴퓨터 시스템 구조에 따른 입출력 시스템 버스 기반의 데이터 이동 경로를 설명하면 다음과 같다.
먼저, 도 3에 도시된 첫 번째 데이터 이동 경로(310)는, 종래의 컴퓨터 시스템 구조에서 주변 장치들이 상호간에 데이터를 전송하기 위한 가장 긴 데이터 이동 경로에 상응할 수 있다.
예를 들어, 첫 번째 데이터 이동 경로(310)에서는, 종래의 컴퓨터 시스템 구조에서 소스 주변 장치 내부의 입출력 메모리에 저장된 소스 데이터(SOURCE)가 입출력 시스템 버스와 연결되는 엔드 포인트(SOURCE END POINT)를 거쳐 입출력 시스템 버스를 통해 중앙처리장치 내의 입출력 스위치에 도달할 수 있다. 이 후, 입출력 스위치에 도착한 소스 데이터는 루트 콤플렉스와 중앙처리장치 내의 메모리 제어기를 경유하여 컴퓨터 시스템의 로컬 메모리에 도달할 수 있다. 이 후, 로컬 메모리에 복사된 소스 데이터는 다시 루트 콤플렉스를 거쳐 입출력 스위치에 도달할 수 있다. 이 후, 입출력 시스템 버스를 통해 출력된 소스 데이터는 목적지인 타겟 주변 장치의 엔드 포인트(TARGET EMD POINT)를 거쳐 최종적으로 타겟 주변 장치 내부의 입출력 메모리에 저장될 수 있다.
다른 예를 들어, 두 번째 이동 경로(320)는, 첫 번째 이동 경로(310)에서 중앙처리장치 내의 입출력 스위치에 도달한 소스 데이터를 컴퓨터 시스템의 로컬 메모리에 저장하지 않고, 루트 콤플렉스만을 경유하여 목적지인 타겟 주변 장치의 입출력 메모리로 저장하는 경로에 상응할 수 있다.
또 다른 예를 들어, 세 번째 이동 경로(330)는, 종래의 컴퓨터 시스템 구조에서 가능한 최단 경로에 상응하는 것으로, 중앙처리장치 내의 입출력 스위치 내에서의 포트간 데이터 이동을 통해 루트 콤플렉스와 로컬 메모리를 우회하여 바로 타겟 주변 장치로 데이터를 전송하는 경로에 상응할 수 있다.
즉, 종래의 컴퓨터 시스템에서는 주변 장치들이 상호 간에 데이터를 전송하기 위해 반드시 중앙처리장치를 거쳐가는 경로를 이용해야만 하고, 이러한 구조는 주변장치간 데이터 이동의 성능을 저하시키는 요소로 작용하는 문제점이 존재하였다.
따라서, 본 발명에서는 도 1에 도시된 것과 같이 고속 입출력 인터커넥션(130)을 통해 복수개의 입출력 장치들(120-1~120-N)을 직접 연결함으로써 주변 장치들이 고속으로 데이터를 송수신할 수 있는 컴퓨터 시스템 구조를 제안하고자 한다.
이하에서는 도 1에 도시된 컴퓨터 시스템 구조를 통해 복수개의 입출력 장치들(120-1~120-N) 간에 데이터를 고속으로 처리하는 과정을 간략하게 설명하도록 한다.
먼저, 도 1에 포함된 복수개의 입출력 장치들(120-1~120-N)은 각각 적어도 하나의 다른 입출력 장치와 직접 연결되는 고속 입출력 인터커넥션(130)을 설정할 수 있다.
또한, 복수개의 입출력 장치들(120-1~120-N)은 각각 고속 입출력 인터커넥션(130)을 활성화시키고, 적어도 하나의 다른 입출력 장치에 기반한 데이터 이동 이벤트가 발생하는 경우에 활성화된 고속 입출력 인터커넥션(130)을 통해 적어도 하나의 다른 입출력 주변 장치와의 직접 데이터 이동을 수행할 수 있다.
이 때, 컴퓨터 시스템의 중앙처리장치와의 데이터 이동을 위한 제1 엔드 포인트와 적어도 하나의 다른 입출력 장치와의 데이터 고속 이동을 위한 제2 엔드 포인트를 기반으로 데이터 이동을 수행할 수 있다.
이 때, 제1 엔드 포인트는 중앙처리장치(100)의 입출력 시스템 버스(110)에 연결되고, 제2 엔드 포인트는 고속 입출력 인터커넥션(130)에 연결될 수 있다.
이 때, 데이터 이동 이벤트의 종류를 고려하여 버스 마스터 모듈 및 버스 슬레이브 모듈 중 어느 하나를 기반으로 직접 데이터 이동을 수행할 수 있다.
이 때, 직접 데이터 이동은 버스 마스터 모듈을 기반으로 적어도 하나의 다른 입출력 장치로 데이터를 요청하거나 버스 슬레이브 모듈을 기반으로 적어도 하나의 다른 입출력 장치로부터의 데이터 요청에 응답할 수 있다.
이 때, 고속 입출력 인터커넥션(130)과 입출력 시스템 버스(110)는 상호간의 동작에 영향을 주지 않을 수 있다.
또한, 복수개의 입출력 장치들(120-1~120-N)은 각각 적어도 하나의 다른 입출력 장치와의 데이터 고속 이동을 위한 엔드 포인트에 상응하는 기본 연결 정보, 적어도 하나의 다른 입출력 장치에 대한 메모리 정보 및 엔드 포인트에 상응하는 기타 부가 형상 정보 중 적어도 하나를 저장할 수 있다.
이와 같은 컴퓨터 시스템 구조를 기반으로 컴퓨터 주변장치들 상호간에 고속으로 데이터를 이동 및 공유할 수 있다.
또한, 중앙처리장치의 직접적인 개입 없이 시스템 내 연결망을 구성할 수도 있다.
도 4는 본 발명의 일실시예에 따른 데이터 고속 처리 방법을 나타낸 동작 흐름도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 데이터 고속 처리 방법은 컴퓨터 시스템에 연결된 입출력 주변 장치가, 컴퓨터 시스템에 연결된 적어도 하나의 다른 입출력 주변 장치와 직접 연결되는 고속 입출력 인터커넥션(HIGH SPEED I/O INTERCONNECTION)을 설정한다(S410).
예를 들어, 도 5를 참조하면, 본 발명의 일실시예에 따른 컴퓨터 시스템에서는 복수개의 입출력 주변 장치들(520-1~520-L) 사이에 고속 입출력 인터커넥션(530)을 설정함으로써 복수개의 입출력 주변 장치들(520-1~520-L)을 직접 연결할 수 있다.
이 때, 입출력 주변 장치는 컴퓨터 시스템의 중앙처리장치와의 데이터 이동을 위한 제1 엔드 포인트(END POINT)와 적어도 하나의 다른 입출력 주변 장치와의 데이터 고속 이동을 위한 제2 엔드 포인트를 포함할 수 있다.
이 때, 제1 엔드 포인트는 중앙처리장치의 입출력 시스템 버스에 연결되고, 제2 엔드 포인트는 고속 입출력 인터커넥션에 연결될 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 내부에 포함된 엔드 포인트 A(610)를 기반으로 중앙처리장치와 통신하기 위한 입출력 시스템 버스(601)와 연결될 수 있다. 또한, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 내부에 포함된 엔드 포인트 B(650)를 기반으로 다른 입출력 주변 장치와 직접 통신하기 위한 고속 입출력 인터커넥션(602)과 연결될 수 있다.
이 때, 고속 입출력 인터커넥션과 입출력 시스템 버스는 상호간의 동작에 영향을 주지 않을 수 있다.
즉, 도 6에 도시된 것처럼 고속 입출력 인터커넥션(602)은 입출력 시스템 버스(601)과 구별되는 별도의 엔드 포인트 B(650)를 통해 중앙처리장치의 개입 없이 다른 입출력 주변 장치와 통신하므로 입출력 시스템 버스(601)의 계층 구조에 영향을 주지 않을 수 있다. 다시 말하면 입출력 시스템 버스(601)도 고속 입출력 인터커넥션(602)과 구별되는 엔드 포인트 A(610)를 통해 입출력 주변 장치와 연결되므로 입출력 주변 장치들 간의 직접 연결에 의한 데이터 처리 과정에 영향을 주지 않을 수 있다.
이 때, 내부 메모리(640)에 제2 엔드 포인트에 상응하는 기본 연결 정보를 저장할 수 있다.
이 때, 내부 메모리(640)에 적어도 하나의 다른 입출력 주변 장치에 대한 메모리 정보를 기록할 수 있다.
이 때, 제2 엔드 포인트에 기타 부가 형상 정보를 저장할 수 있다
예를 들어 도 6을 참조하면, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 설정 모듈(620), 제어 모듈(630) 및 입출력 메모리 및 처리 모듈(640) 등을 기반으로 엔드 포인트 B(650)에 상응하는 기본 연결 정보 및 다른 입출력 주변 장치에 대한 메모리 정보 등을 설정, 저장 및 제어할 수 있다.
설정 모듈(620)은 엔드 포인트 B(650)의 동작을 위한 각종 형상 정보를 설정하는 기능을 수행할 수 있다. 예를 들어, 형상 정보는 PCI Express의 경우에 버스, 장치 펑션(function) 번호, 메모리 영역 설정, 각종 장치 동작을 위한 레지스터 초기값, 고속 입출력 인터커넥션 주소 정보 등을 포함할 수 있다.
제어 모듈(630)은 입출력 메모리 및 처리 모듈(640)을 기반으로 데이터 이동을 위한 기능을 제공할 수 있다. 예를 들어, 제어 모듈(630)에서는 입출력 메모리 및 처리 모듈(640)에 저장된 데이터 읽기 기능, 입출력 메모리 및 처리 모듈(640)에 데이터 쓰기 기능 및 데이터 이동 과정에서의 오류 처리 기능 등을 제공할 수 있다.
입출력 메모리 및 처리 모듈(640)은 다른 입출력 주변 장치로의 데이터 읽기 또는 쓰기가 필요한 경우에 데이터 이동 이벤트를 발생하거나, 데이터 이동 이벤트에 따른 데이터를 저장할 수 있다. 또한, 입출력 메모리 및 처리 모듈(640)은 고속 입출력 인터커넥션(602)을 통해 입출력 주변 장치(600)와 연결되는 다른 입출력 주변 장치들의 메모리 영역 정보(메모리 맵)를 기록할 수도 있다. 이 때, 하나의 입출력 주변 장치와 연결되는 다른 입출력 주변 장치의 개수는 특정한 개수로 한정되지 않을 수 있다.
엔드 포인트 B(650)는 확장 형상 정보와 같은 기타 부가 형상 정보를 저장하고, 이를 기반으로 입출력 주변 장치들 간에 데이터 고속 처리를 수행할 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 고속 처리 방법은 입출력 주변 장치가 고속 입출력 인터커넥션을 활성화시킨다(S420).
예를 들어, 고속 입출력 인터커넥션은 입출력 주변 장치에서 모든 형상 정보의 저장이 완료되면 자동으로 활성화되거나 또는 별도의 활성화 과정을 통해 활성화될 수도 있다.
이 때, 고속 입출력 인터커넥션이 활성화되면, 입출력 주변 장치는 적어도 하나의 다른 입출력 주변 장치와의 상호 연결이 되거나 또는 적어도 하나의 다른 입출력 주변 장치와 상호 연결에 의한 데이터 이동 이벤트가 발생할 때까지 대기할 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 고속 처리 방법은 적어도 하나의 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트가 발생하는 경우, 입출력 주변 장치가 활성화된 고속 입출력 인터커넥션을 통해 적어도 하나의 다른 입출력 주변 장치와의 직접 데이터 이동을 수행한다(S430).
예를 들어, 본 발명의 일실시예에 따른 직접 데이터 이동은 도 7에 도시된 것과 같은 경로를 통해 수행될 수 있다. 이 때, 도 7에 도시된 데이터 이동 경로는 도 5에 도시된 입출력 주변 장치(520-1)에서 입출력 주변 장치(520-L)로 데이터가 직접 이동하는 경로를 의미할 수 있다. 즉, 도 7을 참조하면, 소스 주변 장치에 해당하는 입출력 주변 장치(520-1)는 내부 입출력 메모리에 저장된 소스 데이터를 내부의 제어 블록(CONTROL)과 제2 엔드 포인트를 경유하여 타겟 주변 장치에 해당하는 입출력 주변 장치(520-L)로 출력할 수 있다. 이 때, 출력된 소스 데이터는 고속 입출력 인터커넥션(530)을 통해 연결된 입출력 주변 장치(520-L)의 제2 엔드 포인트로 전달되어 목적지인 입출력 주변 장치(520-L)의 입출력 메모리로 전송될 수 있다.
이와 같이 본 발명의 일실시예에 따른 고속 입출력 인터커넥션(530)은 소스 주변 장치와 목적지 타겟 주변 장치를 직접 연결할 수 있으며, 이를 통한 데이터 이동 경로상에는 별도의 스위치 장치가 연결되지 않는 것을 특징으로 할 수 있다.
또한, 도 7과 같은 본 발명의 컴퓨터 시스템 구조의 데이터 이동 경로는 도 3에 도시된 종래의 컴퓨터 시스템 구조의 데이터 이동 경로와 비교하였을 때, 부가적인 스위치 장치, 루트 콤플렉스 등의 개입이 없이 입출력 주변 장치들이 상호 간에 데이터를 직접 전달함으로써 보다 빠른 데이터 전송을 수행할 수 있다.
이 때, 입출력 주변 장치가 적어도 하나의 다른 입출력 주변 장치와 상호 연결이 체결된 이후에 고속 입출력 인터커넥션을 통해 적어도 하나의 다른 입출력 주변 장치와 직접 데이터 이동을 수행할 수 있다.
이 때, 데이터 이동 이벤트의 종류를 고려하여 버스 마스터 모듈 및 버스 슬레이브 모듈 중 어느 하나를 기반으로 직접 데이터 이동을 수행할 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 제어 모듈(630)에 포함된 버스 마스터 모듈과 버스 슬레이브 모듈을 이용하여 직접 데이터 이동을 수행할 수 있다. 이 때,
이 때, 직접 데이터 이동은 입출력 주변 장치가 버스 마스터 모듈을 기반으로 적어도 하나의 다른 입출력 주변 장치로 데이터를 요청하거나 입출력 주변 장치가 버스 슬레이브 모듈을 기반으로 적어도 하나의 다른 입출력 주변 장치로부터의 데이터 요청에 응답하는 것에 상응할 수 있다.
즉, 도 6을 참조하면, 제어 모듈(640)에 포함된 버스 마스터 모듈(BUS MASTER)은 다른 입출력 주변 장치로 데이터 요청을 발생하는데 사용될 수 있고, 버스 슬레이브 모듈(BUS SLAVE)은 다른 입출력 주변 장치로부터의 데이터 요청에 대한 응답을 처리하는데 사용될 수 있다.
이 때, 도 6에 도시된 버스 아비터(BUS ARBITER)는 버스 마스터 모듈과 버스 슬레이브 모듈이 입출력 메모리 및 처리 모듈(640)에 대한 데이터 읽기 또는 쓰기를 수행하는 경우 이를 중재하기 위한 역할을 수행할 수 있다.
이 때, 도 6에 도시된 입출력 주변 장치(600)는 대기 상태로 데이터 이동 이벤트가 발생하기를 기다렸다가 적어도 하나의 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트가 발생하는 경우에 처리 상태로 천이하여 데이터 이동 이벤트를 처리할 수 있다.
예를 들어, 대기 상태에서 적어도 하나의 다른 입출력 주변 장치로부터 데이터 읽기 및 쓰기에 대한 데이터 요청 이벤트를 수신하였다고 가정하면, 처리 상태로 천이한 이후에 버스 슬레이브 모듈을 통해 데이터 읽기 및 쓰기 요청에 대한 응답을 처리할 수 있다.
다른 예를 들어, 입출력 주변 장치가 다른 입출력 주변 장치로의 데이터 읽기 및 쓰기가 필요한 경우에 대기 상태에서 처리 상태로 천이하여 버스 마스터 모듈을 활성화하고, 고속 입출력 인터커넥션을 통해 다른 입출력 주변 장치로 데이터 읽기 및 쓰기 요청을 전달할 수 있다.
또한, 도 4에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 데이터 고속 처리 방법은 데이터 이동 이벤트의 처리 과정에서 발생하는 각종 오류를 검출하고, 검출된 오류 정보에 기반하여 오류를 처리할 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 제어 모듈(630)에 포함된 오류 검출 및 처리 모듈(ERROR DETECT & PROCESS)을 통해 데이터에 대한 요청, 응답 처리 과정에서 발생하는 각종 오류를 검출하여 처리할 수 있다. 이 때, 오류 처리는 데이터 요청 및 응답 처리 과정이 종료된 이후에 수행될 수 있다.
또한, 오류 처리가 완료된 이후에는 입출력 주변 장치(600)의 상태를 다시 대기 상태로 천이하여 다음 데이터 이동 이벤트의 발생을 대기할 수 있다.
또한, 도 4에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 데이터 고속 처리 방법은 상술한 데이터 고속 처리 과정에서 발생하는 다양한 정보를 별도의 저장 모듈에 저장한다.
이와 같은 고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법을 통해 컴퓨터 주변장치들 상호간에 고속으로 데이터를 이동 및 공유할 수 있다.
또한, PCIe 종단 장치들 간의 직접 연결을 통한 데이터 송수신 구조를 기반으로 주변 장치들 간의 고속 데이터 전송을 처리할 수 있다.
도 8은 본 발명의 일실시예에 따른 데이터 고속 처리 방법을 상세하게 나타낸 동작 흐름도이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 데이터 고속 처리 방법은 먼저 컴퓨터 시스템에 연결된 입출력 주변 장치가, 적어도 하나의 다른 입출력 주변 장치와의 데이터 고속 이동을 위한 제2 엔드 포인트의 기본 연결 정보를 내부 메모리에 저장한다(S810).
이 후, 입출력 주변 장치가, 내부 메모리에 적어도 하나의 다른 입출력 주변 장치에 대한 메모리 정보를 기록한다(S820).
이 후, 입출력 주변 장치가, 제2 엔드 포인트에 기타 부가 형상 정보를 저장한다(S830).
이 때, 단계(S810)부터 단계(S830)까지의 과정은 도 8에 도시된 순서에 한정되지 않을 수 있다.
이 후, 단계(S810)부터 단계(S830)까지의 단계가 완료되면, 입출력 주변 장치가 대기 상태에서 고속 입출력 인터커넥션을 활성화하여 적어도 하나의 다른 입출력 주변 장치가 연결되는지 여부를 판단할 수 있다(S835).
단계(S835)의 판단결과 입출력 주변 장치로 적어도 하나의 다른 입출력 주변 장치가 연결되지 않으면, 입출력 주변 장치가 대기 상태에서 계속 다른 입출력 주변 장치의 연결을 대기할 수 있다.
또한, 단계(S835)의 판단결과 입출력 주변 장치로 적어도 하나의 다른 입출력 주변 장치가 연결되면, 연결된 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트의 발생(S840)에 의해 연결된 다른 입출력 주변 장치와의 직접 데이터 이동을 수행할 수 있다(S850).
이 때, 직접 데이터 이동은 데이터 이동 요청 또는 데이터 이동 요청에 대한 응답 처리에 상응할 수 있다.
이 후, 직접 데이터 이동에 대한 처리가 완료되면, 입출력 주변 장치가 직접 데이터 이동에 대한 처리 과정에 대한 오류 검출 및 오류 처리를 수행할 수 있다(S860).
이 후, 입출력 주변 장치는 다시 대기 상태로 천이하여 데이터 이동 이벤트가 발생할때까지 대기하였다가 데이터 이동 이벤트가 발생하는 경우에 다시 이에 대한 처리를 반복적으로 수행할 수 있다.
도 9는 본 발명의 일실시예에 따른 입출력 장치를 나타낸 도면이다.
도 9를 참조하면, 본 발명의 일실시예에 따른 입출력 장치는 통신부(910), 처리블록(920) 및 메모리(930)를 포함한다.
통신부(910)는 네트워크와 같은 통신망을 통해 컴퓨터 시스템에서의 데이터 고속 처리를 위해 필요한 정보를 송수신하는 역할을 할 수 있다. 특히, 본 발명의 일실시예에 따른 통신부(910)는 컴퓨터 시스템의 중앙처리장치 또는 중앙처리장치에 연결된 다른 입출력 주변 장치에게 데이터 읽기 및 쓰기 요청을 수신하거나, 요청에 대한 응답을 송신할 수 있다. 또는, 통신부(910)는 컴퓨터 시스템의 중앙처리장치 또는 중앙처리장치에 연결된 다른 입출력 주변 장치에게 데이터 읽기 및 쓰기 요청을 송신하거나, 요청에 대한 응답을 수신할 수 있다.
이 때, 도 9에서 설명하는 입출력 장치는 컴퓨터 시스템 구조에서 중앙처리장치에 연결되는 주변 장치에 상응하는 것으로, 이하에서는 설명의 편의를 위해 입출력 주변 장치로 명명하도록 한다.
처리블록(920)은 컴퓨터 시스템에 연결된 적어도 하나의 다른 입출력 주변 장치와 직접 연결되는 고속 입출력 인터커넥션(HIGH SPEED I/O INTERCONNECTION)을 설정한다.
예를 들어, 도 5를 참조하면, 본 발명의 일실시예에 따른 컴퓨터 시스템에서는 복수개의 입출력 주변 장치들(520-1~520-L) 사이에 고속 입출력 인터커넥션(530)을 설정함으로써 복수개의 입출력 주변 장치들(520-1~520-L)을 직접 연결할 수 있다.
이 때, 입출력 주변 장치는 컴퓨터 시스템의 중앙처리장치와의 데이터 이동을 위한 제1 엔드 포인트(END POINT)와 적어도 하나의 다른 입출력 주변 장치와의 데이터 고속 이동을 위한 제2 엔드 포인트를 포함할 수 있다.
이 때, 제1 엔드 포인트는 중앙처리장치의 입출력 시스템 버스에 연결되고, 제2 엔드 포인트는 고속 입출력 인터커넥션에 연결될 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 내부에 포함된 엔드 포인트 A(610)를 기반으로 중앙처리장치와 통신하기 위한 입출력 시스템 버스(601)와 연결될 수 있다. 또한, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 내부에 포함된 엔드 포인트 B(650)를 기반으로 다른 입출력 주변 장치와 직접 통신하기 위한 고속 입출력 인터커넥션(602)과 연결될 수 있다.
이 때, 고속 입출력 인터커넥션과 입출력 시스템 버스는 상호간의 동작에 영향을 주지 않을 수 있다.
즉, 도 6에 도시된 것처럼 고속 입출력 인터커넥션(602)은 입출력 시스템 버스(601)과 구별되는 별도의 엔드 포인트 B(650)를 통해 중앙처리장치의 개입 없이 다른 입출력 주변 장치와 통신하므로 입출력 시스템 버스(601)의 계층 구조에 영향을 주지 않을 수 있다. 다시 말하면 입출력 시스템 버스(601)도 고속 입출력 인터커넥션(602)과 구별되는 엔드 포인트 A(610)를 통해 입출력 주변 장치와 연결되므로 입출력 주변 장치들 간의 직접 연결에 의한 데이터 처리 과정에 영향을 주지 않을 수 있다.
이 때, 내부 메모리에 제2 엔드 포인트에 상응하는 기본 연결 정보를 저장할 수 있다.
이 때, 내부 메모리에 적어도 하나의 다른 입출력 주변 장치에 대한 메모리 정보를 기록할 수 있다.
이 때, 제2 엔드 포인트에 기타 부가 형상 정보를 저장할 수 있다
예를 들어 도 6을 참조하면, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 설정 모듈(620), 제어 모듈(630) 및 입출력 메모리 및 처리 모듈(640) 등을 기반으로 엔드 포인트 B(650)에 상응하는 기본 연결 정보 및 다른 입출력 주변 장치에 대한 메모리 정보 등을 설정, 저장 및 제어할 수 있다.
설정 모듈(620)은 엔드 포인트 B(650)의 동작을 위한 각종 형상 정보를 설정하는 기능을 수행할 수 있다. 예를 들어, 형상 정보는 PCI Express의 경우에 버스, 장치 펑션(function) 번호, 메모리 영역 설정, 각종 장치 동작을 위한 레지스터 초기값, 고속 입출력 인터커넥션 주소 정보 등을 포함할 수 있다.
제어 모듈(630)은 입출력 메모리 및 처리 모듈(640)을 기반으로 데이터 이동을 위한 기능을 제공할 수 있다. 예를 들어, 제어 모듈(630)에서는 입출력 메모리 및 처리 모듈(640)에 저장된 데이터 읽기 기능, 입출력 메모리 및 처리 모듈(640)에 데이터 쓰기 기능 및 데이터 이동 과정에서의 오류 처리 기능 등을 제공할 수 있다.
입출력 메모리 및 처리 모듈(640)은 다른 입출력 주변 장치로의 데이터 읽기 또는 쓰기가 필요한 경우에 데이터 이동 이벤트를 발생하거나, 데이터 이동 이벤트에 따른 데이터를 저장할 수 있다. 또한, 입출력 메모리 및 처리 모듈(640)은 고속 입출력 인터커넥션(602)을 통해 입출력 주변 장치(600)와 연결되는 다른 입출력 주변 장치들의 메모리 영역 정보(메모리 맵)를 기록할 수도 있다. 이 때, 하나의 입출력 주변 장치와 연결되는 다른 입출력 주변 장치의 개수는 특정한 개수로 한정되지 않을 수 있다.
엔드 포인트 B(650)는 확장 형상 정보와 같은 기타 부가 형상 정보를 저장하고, 이를 기반으로 입출력 주변 장치들 간에 데이터 고속 처리를 수행할 수 있다.
또한, 처리블록(920)은 고속 입출력 인터커넥션을 활성화시킨다.
예를 들어, 고속 입출력 인터커넥션은 입출력 주변 장치에서 모든 형상 정보의 저장이 완료되면 자동으로 활성화되거나 또는 별도의 활성화 과정을 통해 활성화될 수도 있다.
이 때, 고속 입출력 인터커넥션이 활성화되면, 입출력 주변 장치는 적어도 하나의 다른 입출력 주변 장치와의 상호 연결이 되거나 또는 적어도 하나의 다른 입출력 주변 장치와 상호 연결에 의한 데이터 이동 이벤트가 발생할 때까지 대기할 수 있다.
또한, 처리블록(920)은 적어도 하나의 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트가 발생하는 경우, 활성화된 고속 입출력 인터커넥션을 통해 적어도 하나의 다른 입출력 주변 장치와의 직접 데이터 이동을 수행한다.
예를 들어, 본 발명의 일실시예에 따른 직접 데이터 이동은 도 7에 도시된 것과 같은 경로를 통해 수행될 수 있다. 이 때, 도 7에 도시된 데이터 이동 경로는 도 5에 도시된 입출력 주변 장치(520-1)에서 입출력 주변 장치(520-L)로 데이터가 직접 이동하는 경로를 의미할 수 있다. 즉, 도 7을 참조하면, 소스 주변 장치에 해당하는 입출력 주변 장치(520-1)는 내부 입출력 메모리에 저장된 소스 데이터를 내부의 제어 블록(CONTROL)과 제2 엔드 포인트를 경유하여 타겟 주변 장치에 해당하는 입출력 주변 장치(520-L)로 출력할 수 있다. 이 때, 출력된 소스 데이터는 고속 입출력 인터커넥션(530)을 통해 연결된 입출력 주변 장치(520-L)의 제2 엔드 포인트로 전달되어 목적지인 입출력 주변 장치(520-L)의 입출력 메모리로 전송될 수 있다.
이와 같이 본 발명의 일실시예에 따른 고속 입출력 인터커넥션(530)은 소스 주변 장치와 목적지 타겟 주변 장치를 직접 연결할 수 있으며, 이를 통한 데이터 이동 경로상에는 별도의 스위치 장치가 연결되지 않는 것을 특징으로 할 수 있다.
또한, 도 7과 같은 본 발명의 컴퓨터 시스템 구조의 데이터 이동 경로는 도 3에 도시된 종래의 컴퓨터 시스템 구조의 데이터 이동 경로와 비교하였을 때, 부가적인 스위치 장치, 루트 콤플렉스 등의 개입이 없이 입출력 주변 장치들이 상호 간에 데이터를 직접 전달함으로써 보다 빠른 데이터 전송을 수행할 수 있다.
이 때, 입출력 주변 장치가 적어도 하나의 다른 입출력 주변 장치와 상호 연결이 체결된 이후에 고속 입출력 인터커넥션을 통해 적어도 하나의 다른 입출력 주변 장치와 직접 데이터 이동을 수행할 수 있다.
이 때, 데이터 이동 이벤트의 종류를 고려하여 버스 마스터 모듈 및 버스 슬레이브 모듈 중 어느 하나를 기반으로 직접 데이터 이동을 수행할 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 제어 모듈(630)에 포함된 버스 마스터 모듈과 버스 슬레이브 모듈을 이용하여 직접 데이터 이동을 수행할 수 있다. 이 때,
이 때, 직접 데이터 이동은 입출력 주변 장치가 버스 마스터 모듈을 기반으로 적어도 하나의 다른 입출력 주변 장치로 데이터를 요청하거나 입출력 주변 장치가 버스 슬레이브 모듈을 기반으로 적어도 하나의 다른 입출력 주변 장치로부터의 데이터 요청에 응답하는 것에 상응할 수 있다.
즉, 도 6을 참조하면, 제어 모듈(640)에 포함된 버스 마스터 모듈(BUS MASTER)은 다른 입출력 주변 장치로 데이터 요청을 발생하는데 사용될 수 있고, 버스 슬레이브 모듈(BUS SLAVE)은 다른 입출력 주변 장치로부터의 데이터 요청에 대한 응답을 처리하는데 사용될 수 있다.
이 때, 도 6에 도시된 버스 아비터(BUS ARBITER)는 버스 마스터 모듈과 버스 슬레이브 모듈이 입출력 메모리 및 처리 모듈(640)에 대한 데이터 읽기 또는 쓰기를 수행하는 경우 이를 중재하기 위한 역할을 수행할 수 있다.
이 때, 도 6에 도시된 입출력 주변 장치(600)는 대기 상태로 데이터 이동 이벤트가 발생하기를 기다렸다가 적어도 하나의 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트가 발생하는 경우에 처리 상태로 천이하여 데이터 이동 이벤트를 처리할 수 있다.
예를 들어, 대기 상태에서 적어도 하나의 다른 입출력 주변 장치로부터 데이터 읽기 및 쓰기에 대한 데이터 요청 이벤트를 수신하였다고 가정하면, 처리 상태로 천이한 이후에 버스 슬레이브 모듈을 통해 데이터 읽기 및 쓰기 요청에 대한 응답을 처리할 수 있다.
다른 예를 들어, 입출력 주변 장치가 다른 입출력 주변 장치로의 데이터 읽기 및 쓰기가 필요한 경우에 대기 상태에서 처리 상태로 천이하여 버스 마스터 모듈을 활성화하고, 고속 입출력 인터커넥션을 통해 다른 입출력 주변 장치로 데이터 읽기 및 쓰기 요청을 전달할 수 있다.
또한, 처리블록(920)은 데이터 이동 이벤트의 처리 과정에서 발생하는 각종 오류를 검출하고, 검출된 오류 정보에 기반하여 오류를 처리할 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 입출력 주변 장치(600)는 제어 모듈(630)에 포함된 오류 검출 및 처리 모듈(ERROR DETECT & PROCESS)을 통해 데이터에 대한 요청, 응답 처리 과정에서 발생하는 각종 오류를 검출하여 처리할 수 있다. 이 때, 오류 처리는 데이터 요청 및 응답 처리 과정이 종료된 이후에 수행될 수 있다.
또한, 오류 처리가 완료된 이후에는 입출력 주변 장치(600)의 상태를 다시 대기 상태로 천이하여 다음 데이터 이동 이벤트의 발생을 대기할 수 있다.
이 때, 처리블록(920)은 중앙처리장치(CPU), 전용논리회로장치 등 상기에서 설명한 고속 데이터 이동의 기능을 수행가능한 장치를 모두 포함하는 것일 수 있다.
메모리(930)는 적어도 하나의 다른 입출력 주변 장치와의 데이터 고속 이동을 위한 엔드 포인트(END-POINT)에 상응하는 기본 연결 정보 및 적어도 하나의 다른 입출력 주변 장치에 대한 메모리 정보 중 적어도 하나를 저장한다.
또한, 메모리(930)는 상술한 바와 같이 본 발명의 일실시예에 따른 입출력 장치에서 발생하는 다양한 정보를 저장한다.
실시예에 따라, 메모리(930)는 입출력 장치와 독립적으로 구성되어 데이터 고속 처리를 위한 기능을 지원할 수 있다. 이 때, 메모리(930)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수도 있다.
한편, 입출력 장치는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
이와 같은 입출력 장치와 고속 입출력 인터커넥션을 기반으로 컴퓨터 주변장치들 상호간에 고속으로 데이터를 이동 및 공유할 수 있다.
또한, PCIe 종단 장치들 간의 직접 연결을 통한 데이터 송수신 구조를 기반으로 주변 장치들 간의 고속 데이터 전송을 처리할 수 있다.
이상에서와 같이 본 발명에 따른 고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100, 200, 500: 중앙처리장치(CPU)
101, 201, 501: 로컬 메모리(LOCAL MEMORY)
110, 210, 510, 601: 입출력 시스템 버스(I/O SYSTEM BUS)
120-1~120-N, 220-1~220-M, 520-1~520-L, 600: 입출력 장치(I/O DEVICE)
130, 530, 602: 고속 입출력 인터커넥션
310, 320, 330: 데이터 이동 경로 610: 엔드 포인트 A
620: 설정 모듈 630: 제어 모듈
640: 입출력 메모리 및 처리 모듈
650: 엔드 포인트 B 910: 통신부
920: 처리블록 930: 메모리

Claims (1)

  1. 컴퓨터 시스템에 연결된 입출력 주변 장치가, 상기 컴퓨터 시스템에 연결된 적어도 하나의 다른 입출력 주변 장치와 직접 연결되는 고속 입출력 인터커넥션(HIGH SPEED I/O INTERCONNECTION)을 설정하는 단계;
    상기 입출력 주변 장치가, 상기 고속 입출력 인터커넥션을 활성화시키는 단계; 및
    상기 적어도 하나의 다른 입출력 주변 장치에 기반한 데이터 이동 이벤트가 발생하는 경우, 상기 입출력 주변 장치가, 활성화된 고속 입출력 인터커넥션을 통해 상기 적어도 하나의 다른 입출력 주변 장치와의 직접 데이터 이동을 수행하는 단계
    를 포함하는 것을 특징으로 하는 데이터 고속 이동 방법.
KR1020190039407A 2019-04-04 2019-04-04 고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치 KR20200117383A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190039407A KR20200117383A (ko) 2019-04-04 2019-04-04 고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190039407A KR20200117383A (ko) 2019-04-04 2019-04-04 고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR20200117383A true KR20200117383A (ko) 2020-10-14

Family

ID=72847456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190039407A KR20200117383A (ko) 2019-04-04 2019-04-04 고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR20200117383A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133236A (ko) 2016-05-25 2017-12-05 삼성전자주식회사 PCIe 장치들에서의 고속 입출력을 위한 스토리지 시스템, 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133236A (ko) 2016-05-25 2017-12-05 삼성전자주식회사 PCIe 장치들에서의 고속 입출력을 위한 스토리지 시스템, 방법 및 장치

Similar Documents

Publication Publication Date Title
KR101744465B1 (ko) 데이터를 저장하기 위한 방법 및 장치
US7788334B2 (en) Multiple node remote messaging
US20210326279A1 (en) Memory system design using buffer(s) on a mother board
US7802025B2 (en) DMA engine for repeating communication patterns
US11741034B2 (en) Memory device including direct memory access engine, system including the memory device, and method of operating the memory device
US7694035B2 (en) DMA shared byte counters in a parallel computer
US8990451B2 (en) Controller for direct access to a memory for the direct transfer of data between memories of several peripheral devices, method and computer program enabling the implementation of such a controller
US11675326B2 (en) Method and apparatus for remote field programmable gate array processing
US10268416B2 (en) Method and systems of controlling memory-to-memory copy operations
US10922258B2 (en) Centralized-distributed mixed organization of shared memory for neural network processing
KR20200108768A (ko) 연산 처리를 수행하는 메모리 장치 및 메모리 장치의 동작방법
CN117591450B (zh) 一种数据处理系统、方法、设备及介质
US20220137864A1 (en) Memory expander, host device using memory expander, and operation method of sever system including memory expander
KR20230016110A (ko) 메모리 모듈, 이를 포함하는 시스템, 및 메모리 모듈의 동작 방법
CN114546902A (zh) 基于多协议访问存储器的系统、设备和方法
US20230222062A1 (en) Apparatus and method for cache-coherence
US20200293452A1 (en) Memory device and method including circular instruction memory queue
KR20200117383A (ko) 고속 입출력 인터커넥션을 이용한 데이터 고속 처리 방법 및 이를 위한 장치
US20060277326A1 (en) Data transfer system and method
US11321254B2 (en) Computing system for transmitting completion early between serially connected electronic devices
KR20230043619A (ko) 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법
CN113704171A (zh) 一种软件定义的数据存储系统
KR20220067992A (ko) 선택적 및 병렬적 에러 정정을 수행하는 메모리 컨트롤러, 이를 포함하는 시스템 및 메모리 장치의 동작 방법
KR20220060326A (ko) 확장 패킷을 제공하는 인터페이스 회로 및 이를 포함하는 프로세서
US11537539B2 (en) Acceleration of data between a network and local I/O in a NUMA system

Legal Events

Date Code Title Description
A201 Request for examination