KR101984150B1 - 제어 방법 및 제어 장치 - Google Patents

제어 방법 및 제어 장치 Download PDF

Info

Publication number
KR101984150B1
KR101984150B1 KR1020167032928A KR20167032928A KR101984150B1 KR 101984150 B1 KR101984150 B1 KR 101984150B1 KR 1020167032928 A KR1020167032928 A KR 1020167032928A KR 20167032928 A KR20167032928 A KR 20167032928A KR 101984150 B1 KR101984150 B1 KR 101984150B1
Authority
KR
South Korea
Prior art keywords
controller
data
identifier
firmware code
router
Prior art date
Application number
KR1020167032928A
Other languages
English (en)
Other versions
KR20160147924A (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 KR20160147924A publication Critical patent/KR20160147924A/ko
Application granted granted Critical
Publication of KR101984150B1 publication Critical patent/KR101984150B1/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/40Bus structure
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

제어 방법 및 제어 장치가 제공된다. 라우터는, 제1 장치에 의해 송신된 데이터를 수신하고 - 데이터는 I/O 장치의 식별자를 가지고 있음 -(201), I/O 장치의 식별자, 및 I/O 장치와 제어기 사이의 대응 관계에 따라, I/O 장치의 식별자에 대응하는 제어기를 결정하고(202), 제어기가, 제어기에 저장된 펌웨어 코드에 따라 데이터를 처리하도록, I/O 장치의 식별자에 대응하는 제어기로 데이터를 송신하며(203), 제어기에 의해 송신된, 처리된 데이터를 수신하고(204), 처리된 데이터를 제2 장치로 송신한다(205). 제2 장치 또는 제2 장치는 I/O 장치이다. 펌웨어 코드는 대체로 프로그램 가능하고, 따라서 전술한 제어 방법에 적용되는 제어 장치는 상대적으로 유연하게 구현될 수 있다.

Description

제어 방법 및 제어 장치{CONTROL METHOD AND CONTROL DEVICE}
본 발명의 실시예는 컴퓨터 기술에 관한 것으로서, 보다 상세하게는, 제어 방법 및 제어 장치에 관한 것이다.
I/O(Input/Output) 칩셋은 컴퓨터 시스템에서 중요한 요소이고, 기본 기능은 CPU(Central Processing Unit) 및 I/O 장치에 연결하는 것이다. I/O 칩셋은 CPU와 I/O 장치 사이의 데이터 경로이다.
종래 기술에서, I/O 칩셋은 CPU에 연결된 QPI(Quick Path Interconnect) 버스 인터페이스, I/O 장치에 연결된 PCIE(Peripheral Component Interconnect Express) 버스 인터페이스, 및 예를 들어, 암호화 기능을 구현하는 기능 모듈과 같은 다른 기능 모듈을 포함한다. 그러나 QPI 인터페이스에 의해 구현되는 기능 및 일부 다른 기능 모듈은 칩셋에 장착된다. 즉, I/O 칩셋이 생산되면, 기능은 수정 불가하다. 따라서, I/O 칩셋은 유동적으로 구현될 수 없다.
전술한 종래기술의 기술적 문제를 해결하기 위해, 본 발명의 실시예는 제어 방법 및 제어 장치를 제공한다.
본 발명의 실시예의 제1 측면은 제어 방법을 제공하고, 이러한 제어 방법은, 라우터가, 제1 장치에 의해 송신된 데이터를 수신하는 단계 - 상기 데이터는 I/O 장치의 식별자를 가지고 있음 -; 상기 I/O 장치의 식별자 및, I/O 장치와 제어기 사이의 대응 관계에 따라, 상기 I/O 장치의 식별자에 대응하는 제어기를 결정하는 단계; 상기 제어기가 상기 제어기에 저장된 펌웨어 코드(firmware code)에 따라 상기 데이터를 처리하도록, 상기 I/O 장치의 식별자에 대응하는 제어기로 상기 데이터를 송신하는 단계; 상기 제어기에 의해 송신된, 상기 처리된 데이터를 수신하는 단계; 및 상기 처리된 데이터를 제2 장치에 송신하는 단계를 포함하고, 상기 제2 장치 또는 상기 제1 장치는 상기 I/O 장치이다.
제1 측면을 참조하면, 가능한 제1 구현 방식에서, 상기 제어기가, 상기 제어기에 저장된 펌웨어 코드에 따라 상기 데이터를 처리하는 것은, 상기 제어기의 큐(queue)로부터 상기 데이터를 버퍼로 판독하는 단계; 및 상기 버퍼의 데이터를 처리하기 위해, 메모리에 저장된 상기 펌웨어 코드를 호출하는 단계를 포함한다.
가능한 제1 구현 방식을 참조하면, 가능한 제2 구현 방식에서, 상기 I/O 장치의 식별자 및, I/O 장치와 제어기 사이의 대응 관계에 따라, 상기 I/O 장치의 식별자에 대응하는 제어기를 결정하는 단계 전, 상기 제어 방법은, 상기 I/O 장치의 기능적 요구 사항(functional requirement) 및 상기 제어기에 의해 구현되는 기능에 따라, 상기 I/O 장치와 상기 제어기 사이의 대응 관계를 구축하는 단계를 더 포함한다.
가능한 제1 구현 방식을 참조하면, 가능한 제3 구현 방식에서, BIOS(basic input/output system) 또는 OS(operating system)를 사용하여, 상기 펌웨어 코드를 상기 제어기로 로드(load)하는 단계를 더 포함한다.
가능한 제1 내지 제3 구현 방식 중 어느 하나를 참조하면, 가능한 제4 구현 방식에서, 상기 I/O 장치의 기능적 요구 사항에 따라, 상기 I/O 장치와 제어기 사이의 대응 관계를 수정하는 단계를 더 포함한다.
가능한 제1 내지 제3 구현 방식 중 어느 하나를 참조하면, 가능한 제5 구현 방식에서, 상기 I/O 장치의 기능적 요구 사항에 따라, 상기 제어기의 펌웨어 코드를 수정하는 단계를 더 포함한다.
본 발명의 제2 측면은 제어 방법을 제공하고, 이러한 제어 방법은, 제어기가, 데이터를 수신하고, 상기 제어기에 저장된 펌웨어 코드(firmware code)에 따라 상기 데이터를 처리하는 단계; 및 상기 데이터가 제1 장치로부터 수신되면, 상기 제어기가, 상기 처리된 데이터를 제2 장치로 송신하거나, 또는 상기 데이터가 라우터를 사용하여 제1 장치로부터 수신되면, 상기 라우터가 상기 처리된 데이터를 제2 장치로 송신하도록, 상기 제어기가, 상기 처리된 데이터를 상기 라우터에 송신하는 단계를 포함하고, 상기 제2 장치 또는 상기 제1 장치는 I/O 장치이다.
제2 측면을 참조하면, 가능한 제1 구현 방식에서, 상기 제어기가, 상기 제어기에 저장된 펌웨어 코드에 따라 상기 데이터를 처리하는 단계는, 상기 제어기의 큐(queue)로부터 상기 데이터를 버퍼로 판독하는 단계; 및 상기 버퍼의 데이터를 처리하기 위해, 메모리에 저장된 상기 펌웨어 코드를 호출하는 단계를 포함한다.
제2 측면의 가능한 제1 구현 방식을 참조하면, 가능한 제2 구현 방식에서, BIOS(basic input/output system) 또는 OS(operating system)를 사용하여, 상기 펌웨어 코드를 상기 제어기로 로드(load)하는 단계를 더 포함한다.
제2 측면 또는 가능한 제1 구현 방식을 참조하면, 가능한 제3 구현 방식에서, I/O 장치의 기능적 요구 사항에 따라, 상기 제어기의 펌웨어 코드를 수정하는 단계를 더 포함한다.
본 발명의 제3 측면은 제어 장치를 제공하고, 이러한 제어 장치는, 라우터 및 적어도 2개의 제어기를 포함하고, 상기 라우터는, 제1 장치에 의해 송신된 데이터를 수신하고 - 상기 데이터는 I/O 장치의 식별자를 가지고 있음 -, 상기 I/O 장치의 식별자 및, I/O 장치와 제어기 사이의 대응 관계에 따라, 상기 적어도 2개의 제어기 중, 상기 I/O 장치의 식별자에 대응하는 제어기를 결정하고, 상기 데이터를 상기 I/O 장치의 식별자에 대응하는 제어기로 송신하도록 구성되며, 상기 I/O 장치의 식별자에 대응하는 제어기는, 상기 제어기에 저장된 펌웨어 코드에 따라, 상기 데이터를 처리하여 상기 처리된 데이터를 획득하고, 상기 처리된 데이터를 상기 라우터에 송신하도록 구성되며, 상기 라우터는 추가로, 상기 처리된 데이터를 제2 장치에 송신하도록 구성되고, 상기 제2 장치 또는 상기 제1 장치는 상기 I/O 장치이다.
제3 측면을 참조하면, 가능한 제1 구현 방식에서, 상기 제어기는 상기 펌웨어 코드를 저장하도록 구성된 메모리; 프로세서에 의해, 상기 제어기의 큐(queue)로부터 판독된 상기 데이터를 저장하도록 구성된 버퍼; 및 상기 메모리에 저장된 상기 펌웨어 코드를 호출하여 상기 버퍼의 데이터를 처리하여 처리된 데이터를 획득하고, 상기 처리된 데이터를 상기 라우터에 송신하도록 구성된 상기 프로세서를 포함한다.
제3 측면 또는 가능한 제1 ㄱ 현 방식을 참조하면, 가능한 제2 구현 방식에서, 상기 라우터는 추가로, I/O 장치의 기능적 요구 사항 및 상기 적어도 2개의 제어기에 의해 구현되는 기능에 따라, 상기 I/O 장치와 상기 제어기 사이의 대응 관계를 구축하도록 구성된다.
제3 측면 또는 가능한 제1 구현 방식을 참조하면, 가능한 제2 구현 방식에서, 제3 측면, 가능한 제1 구현 방식, 또는 가능한 제2 구현 방식을 참조하면, 가능한 제3 구현 방식에서, 상기 제어기는 추가로, BIOS(basic input/output system) 또는 OS(operating system)에 의해 로드(load)된 상기 펌웨어 코드를 수신하도록 구성된다.
제3 측면 또는 가능한 제1 내지 제3 측면 중 어느 하나를 참조하면, 가능한 제4 구현 방식에서, 상기 라우터는, 상기 I/O 장치의 기능적 요구 사항에 따라, 상기 I/O 장치와 제어기 사이의 대응 관계를 수정하도록 구성된 라우터 프로그래밍 인터페이스(router programming interface)를 더 포함한다.
제3 측면 또는 가능한 제1 내지 제4 측면 중 어느 하나를 참조하면, 가능한 제5 구현 방식에서, 상기 제어기는, 상기 I/O 장치의 기능적 요구 사항에 따라, 상기 제어기의 펌웨어 코드를 수정하도록 구성된 제어기 프로그래밍 인터페이스(controller programming interface)를 더 포함한다.
본 발명의 실시예에서 제공하는 제어 방법 및 제어 장치에 따르면, 제어기가 제어기에 저장된 펌웨어 코드에 따라 데이터를 처리하도록, 라우터는 제1 장치가 송신한 데이터를 수신하고, I/O 장치의 식별자 및, I/O 장치의 식별자와 제어기 사이의 대응 관계에 따라, I/O 장치의 식별자에 대응하는 제어기를 결정하고, 데이터는 I/O 장치의 식별자를 가지고 있다. 라우터는 제어기가 처리한 데이터를 수신하고, 처리된 데이터를 제2 장치에 송신하며, 제2 장치 또는 제1 장치는 I/O 장치 일 수 있다. 본 발명의 본 실시예에서, 펌웨어 코드는 대체로 프로그램 가능하고 따라서, 전술한 제어 방법에 적용하는 제어 장치(구체적으로 I/O 칩셋일 수 있음)는 상대적으로 유연하게 구현될 수 있다.
본 발명의 실시예 또는 종래 기술에서의 기술적 해결 수단을 더욱 분명히 설명하기 위해, 실시예 또는 종래 기술을 설명하는 데 필요한 첨부 도면을 이하에서 간략히 설명한다. 분명한 것은, 이하의 설명에서 첨부 도면은 단지 본 발명의 일부 실시예를 나타낸 것이며, 당업자는, 창의적 노력 없이, 여전히 이러한 첨부 도면으로부터 다른 도면을 유도할 수 있다는 것이다.
도 1은 종래 기술의 I/O 칩셋의 개략적 구조도이다.
도 2는 본 발명에 따른 제어 방법의 제1 실시예의 개략적 흐름도이다.
도 3은 본 발명에 따른 제어기의 개략적 구조도이다.
도 4는 본 발명에 따른 제어 방법의 제2 실시예의 개략적 흐름도이다.
도 5는 본발명에 따른 제어 장치의 실시예의 개략적 구조도이다.
이하에서, 본 발명의 실시예에 첨부 도면을 참조하여 본 발명의 실시예에서의 기술적 해결 수단을 분명하고 완전하게 설명한다. 분명한 것은, 설명하는 실시예는 단지 본 발명의 일부 실시예이며 전부는 아니라는 것이다. 당업자가, 창의적 노력 없이 본 발명의 실시예에 기초하여 획득한 다른 모든 실시예는 본 발명의 보호 범위에 속한다.
대체로, 컴퓨터는 적어도 1개의 I/O 칩셋(I/O chipset)을 포함한다. 예를 들어, 머더보드는 적어도 1개의 I/O 칩셋을 포함한다. I/O 칩셋의 주된 기능은 I/O 장치와 CPU 사이의 통신 데이터를 포워드(forward) 하는 것이다. 도 1은 종래 칩셋의 개략적 구조도이다. 도 1에 도시된 바와 같이, I/O 칩셋은 CPU 버스 인터페이스 및 I/O 버스 인터페이스를 포함한다. 도 1의 일례로, CPU 버스 인터페이스는 QPI(Quick Path Interconnect) 버스 인터페이스로 도시되어 있고, QPI 버스 인터페이스는 CPU 버스 인터페이스의 유일한 유형이며, QPI 버스 인터페이스는 CPU와 연결되도록 구성된다. 도 1의 예에서, I/O 버스 인터페이스는 장치에 연결된 PCIE(Peripheral Component Interconnect Express)버스 인터페이스로 도시되어 있다. PCIE 버스 인트페이스는 I/O 버스 인터페이스의 유일한 유형이며, I/O 장치에 연결되도록 구성된다. 분명하게, I/O 칩셋은 추가로 다른 인터페이스 또는 기능 모듈(미도시됨)을 포함할 수 있다. 그러나 QPI 인터페이스, PCIE 인터페이스, 및 어떤 다른 기능 모듈에 의해 구현되는 기능은 칩셋에 내장되어 있다. 따라서, I/O 칩셋은 유동적으로 구현될 수 없다.
I/O 칩셋은 종래 기술의 해결 수단을 사용하여 유연하게 구현될 수 없다. 본 발명에서의 기술적 해결 수단에서, 라우터는 제1 장치에 의해 송신된 데이터를 수신하고, 데이터에 포함된 I/O 장치의 식별자, 및 I/O 장치와 제어기 사이의 대응 관계에 따라, I/O 장치의 식별자에 대응하는 제어기를 결정한다. 제어기는 펌웨어 코드(firmware code)의 피스(piece)를 저장하고, 펌웨어 코드는, 기능 또는 예를 들어, 암호화, 복호화, 압축, 대역폭 할당, 등에 대응하는 기능의 그룹을 구현하는 데 사용될 수 있다. 라우터는 데이터를 I/O 장치의 식별자에 대응하는 제어기에 송신한다. 제어기는 그 데이터를 처리하고 처리된 데이터를 라우터에 송신한다. 라우터는 제어기에 의해 처리된 데이터를 제2 장치에 송신한다. 본 발명의 실시예에서, 제1 장치 또는 제2 장치는 I/O 장치이다. 즉, 제1 장치는 CPU 이면, 제2 장치는 I/O 장치이거나 또는 제1 장치가 I/O 장치이면, 제2 장치는 CPU 이다. 본 발명의 실시예에서, 펌웨어 코드는 대체로 프로그램 가능하고, 따라서, 전술한 제어 방법에 적용되는 제어 장치(구체적으로 I/O 장치 일 수 있음)는 상대적으로 유연하게 구현될 수 있다.
이하에서, 구체적 실시예를 사용하여 본 발명에서의 상세한 기술적 해결 수단을 설명한다. 이하의 구체적 실시예는 같거나 유사한 개념 또는 처리를 위해 결합할 수 있고, 일부 실시예에서 세부사항은 설명하지 않을 수 있다.
도 2는 본 발명에 따른 제어 방법의 제1 실시예의 개략적 흐름도이다. 도 2에 도시된 바와 같이, 본 실시예에 따른 방법은 이하를 포함한다.
S201: 라우터는 제1 장치에 의해 송신된 데이터를 수신한다.
제1 장치에 의해 송신된 데이터는 I/O 장치의 식별자를 가지고 있다.
제1 장치는 CPU 또는 I/O 장치일 수 있다. 데이터는 CPU에 의해 I/O 장치로 송신될 수 있거나, I/O 장치에 의해 CPU로 송신될 수 있다. 데이터가 CPU에 의해 I/O 장치로 송신되거나 I/O 장치에 의해 CPU로 송신되는 것과는 무관하게, 데이터는 I/O 장치의 식별자를 가지고 있다. I/O 장치의 식별자는 I/O 장치의 이름 또는 I/O 장치의 수일 수 있으나, 본 발명이 이에 한정되는 것은 아니며, I/O 장치는 고유하게 식별될 수 있다는 것이 제공된다.
S202: I/O 장치의 식별자, 및 I/O 장치와 제어기 사이의 대응 관계에 따라, I/O 장치의 식별자에 대응하는 제어기를 결정한다.
라우터는 I/O 장치와 제어기 사이의 대응 관계를 저장한다. 1개의 제어기는 1개의 기능 또는 예를 들어, 암호화, 복호화, 압축, 및/또는 대역폭 할당을 구현하는 기능의 그룹을 구현할 수 있다.
대체로, I/O 장치와 제어기 사이의 대응 관계는 I/O 장치의 기능적 요구 사항(functional requirement) 및 제어기에 의해 구현되는 기능에 따라 구축된다. 예를 들어, I/O 장치(1)의 기능적 요구 사항이, I/O 장치(1)와 CPU 사이에서 통산된 데이터가 암호화되어야 하는 것이고, 제어기(1)에 의해 구현된 기능은 암호화 기능이면, I/O 장치(1)와 제어기(1) 사이의 대응 관계가 구축된다. I/O 장치(2)의 기능적 요구 사항은 I/O 장치(2)와 CPU 사이에서 통신된 데이터가 압축되어야 하는 것이고, 제어기(3)에 의해 구현된 기능이 압축 기능이면, I/O 장치(2)와 제어기(3) 사이의 대응 관계는 구축된다. 다른 I/O 장치와 제어기 사이의 대응 관계는 유사한 방식으로 구축될 수 있고, 자세한 것은 여기에서 설명하지 않는다.
I/O 장치의 기능적 요구 사항이 바뀌면, 구현 방식은: 제어기 I/O 칩셋 내의 제어기는 바뀐 I/O 장치의 기능적 요구 사항을 구현할 수 있을 때, I/O 장치와 제어기 사이의 대응 관계는 대체로 I/O 장치의 기능적 요구 사항에 따라 수정된다. 예를 들어, I/O 칩셋에서 4개의 현재 제어기에 의해 구현될 수 있는 기능은 각각 이하와 같다.: 제어기(1)는 암호화 기능을 구현하고, 제어기(2)는 대역폭 할당 기능을 구현하며, 제어기(3)는 압축 기능을 구현하고, 제어기(4)는 복호화 기능을 구현한다. I/O 장치(1)의 기능적 요구 사항은 암호화 요구부터 압축 요구까지 변하고, 제어기(3)는 압축 기능을 구현할 수 있다. 따라서, I/O 장치(1)와 제어기(1) 사이의 대응 관계는 I/O 장치(1)와 제어기(3) 사이의 대응 관계로 수정되는 것만 필요하다.
I/O 장치의 기능적 요구 사항이 바뀌면, 여전히 다른 구현 방식이 있다.: 제어기의 기능, 및 I/O 장치와 제어기 사이의 대응 관계는 수정되고, I/O 장치의 기능적 요구 사항이 제어기에 의해 구현되는 기능과 동일한 것을 만족하는, 구축된 대응 관계가 제공된다. 세부 사항은 여기에서 설명하지 않는다.
제어기의 펌웨어 코드에 대해, 시스템이 시작하면, 펌웨어 코드는 대체로 BIOS(Basic Input/Output System) 또는 OS(Operating System)에 의해 제어기로 로드(load)된다. 대체로 I/O 장치와 제어기 사이의 대응 관계는 펌웨어 코드가 제어기로 로드된 후 구축된다. 분명히, I/O 장치와 제어기 사이의 대응 관계가 처음 구축된 다음, 대응 관계에 따라, 대응하는 코드가 제어기로 로드되나, 본 발명이 이에 한정되는 것은 아니다.
203: 제어기가, 제어기에 저장된 펌웨어 코드에 따라 데이터를 처리하도록, 데이터를 I/O 장치의 식별자에 대응하는 제어기로 송신한다.
라우터는 I/O 장치의 식별자에 대응하는 제어기로 데이터를 송신하고, 제어기는 그 데이터를 처리한다.
도 3은 본 발명에 따른 제어기의 개략적 구조도이다. 도 3에 도시된 바와 같이, 제어기는 큐(queue), 버퍼, 프로세서, 및 메모리를 포함한다. 메모리는 펌웨어 코드를 저장한다. 큐는 라우터가 송신한 데이터를 저장한다. 도 3을 참조하면, CPU와 I/O 장치 사이에서 통신된 데이터를 수신한 후, 라우터는, 데이터에 포함된, I/O 장치의 식별자에 따라, 데이터를 제어기의 큐로 송신한다. 제어기의 프로세서는 제어기의 큐로부터 버퍼로 데이터를 판독하고, 버퍼의 데이터를 처리하기 위해 메모리에 저장된 펌웨어 코드를 호출하며, 처리된 데이터를 라우터로 리턴(return)한다.
S204: 제어기에 의해 송신된, 처리된 데이터를 수신한다.
저장된 펌웨어 코드에 따라 데이터를 처리한 후, 제어기는 데이터를 라우터로 리턴하고, 라우터는, 제어기가 송신한, 처리된 데이터를 수신한다.
S205: 처리된 데이터를 제2 장치로 송신한다.
라우터는 처리된 데이터를 제2 장치로 송신한다. 본 실시예에서, 제1 장치 또는 제2 장치는 I/O 장치이다. 즉, 제1 장치가 CPU 이면, 제2 장치는 I/O 장치이거나, 제1 장치가 I/O 장치이면, 제2 장치는 CPU 이다. 데이터가 CPU에 의해 I/O 장치로 송신되던지 또는 데이터가 I/O 장치에 의해 CPU로 송신되던지, 본 발명의 기술적 해결 수단은 적용된다.
전술한 단계에 대한 설명으로부터 알 수 있듯이, 제어기는 상이한 기능을 구현하기 위해 상이한 코드를 로드할 수 있다. 즉, 제어기의 기능은 바뀔 수 있고, 라우터에 저장된, I/O 장치와 제어기 사이의 대응 관계는 I/O 장치의 기능적 요구 사항이 바뀜에 따라 수정될 수 있다. 따라서, 전술한 라우터 및 제어기를 포함하는 I/O 칩셋은 다른 기능을 구현할 수 있고, I/O 칩셋은 매우 유동적으로 구현될 수 있다.
도 4는 본 발명에 따른 제어 방법의 제2 실시예의 개략적 흐름도이다. 구체적으로, 본 실시예에 따른 방법은 이하와 같다.
S401: 제어기는 데이터를 수신하고, 제어기에 저장된 펌웨어 코드에 따라 데이터를 처리한다.
제어기의 구조에 대해, 기준은 도 3으로 만들어질 수 있다. 구체적으로, 제어기는 수신된 데이터를 큐에 저장한다. 제어기의 프로세서는 제어기의 큐로부터 버퍼로 데이터를 판독(read)하고, 버퍼의 데이터를 처리하기 위해 메모리에 저장된 펌웨어 코드를 호출한다.
라우터가 포함된 어플리케이션 시나리오에서, 제어기는 라우터로부터 데이터를 수신한다. 라우터가 포함되지 않은 어플리케이션 시나리오에서, 제어기는 데이터를 제1 장치로부터 수신한다. 제1 장치는 CPU 또는 I/O 장치 일 수 있고, 제1 장치가 CPU 이면, 제2 장치는 I/O 장치이고, 제1 장치가 I/O 장치이면, 제2 장치는 CPU이다.
제어기에 저장된 펌웨어 코드에 대해, 펌웨어 코드는, 시스템이 시작하면 대체로 BIOS 또는 OS를 사용하여 제어기에 로드될 수 있다. 추가로, 제어기의 펌웨어 코드는 I/O 장치의 기능적 요구 사항에 따라 수정될 수 있다. 언제 및 어떻게 펌웨어 코드가 수정되는가에 대한 정보에 대해, 기준은 도 2의 실시예에서의 상세한 설명으로 만들어질 수 있으며, 세부사항은 여기에서 다시 설명하지 않는다.
S402: 데이터가 제1 장치로부터 수신되면, 제어기는 처리된 데이터를 제2 장치로 송신하거나, 또는 데이터가 라우터를 사용하여 제1 장치로부터 수신되면, 라우터가 처리된 데이터를 제2 장치로 송신하도록, 제어기는 처리된 데이터를 라우터로 송신한다.
즉, 라우터가 포함되지 않은 시나리오에서, 데이터를 처리한 후, 제어기는 처리된 데이터를 직접 제2 장치로 송신한다. 라우터가 포함된 시나리오에서, 데이터를 처리한 후, 제어기는 처리된 데이터를 라우터에 송신하고, 라우터는 처리된 데이터를 제2 장치로 송신한다.
본 발명의 본 실시예에서, 제어기는 데이터를 수신하고, 제어기에 저장된 펌웨어 코드에 따라 데이터를 처리한다. 데이터가 제1 장치로부터 수신되면, 제어기는 처리된 데이터를 제2 장치로 송신하거나, 또는 데이터가 라우터를 사용하여 제1 장치로부터 수신되면, 라우터가 처리된 데이터를 제2 장치로 송신하도록, 제어기는 처리된 데이터를 라우터에 송신한다. 본 발명의 본 실시예에서, 펌웨어 코드는 대체로 프로그램 가능하고, 다라서, 전술한 제어 방법에 적용되는 제어 장치(구체적으로 I/O 칩셋일 수 있음)는 유연하게 구현될 수 있다.
도 5는 본발명에 따른 제어 장치의 실시예의 개략적 구조도이다. 본 실시예에서, 컴퓨터의 I/O 칩셋에 배치되어 있다. 구조에 대해, 본 실시예에서의 제어 장치는 라우터(501) 및 적어도 2개의 제어기(502)를 포함한다. 도 5에서, 4개의 제어기만 도시되어 있다. 구체적 제어기의 수량은 실제 어플리케이션에 따라 설정될 수 있고, 본 발명이 이에 제한되는 것은 아니다. 라우터는, I/O 장치의 식별자, 및 I/O 장치와 제어기 사이의 대응 관계에 따라, 적어도 2개의 제어기 중에 있고, I/O 장치의 식별자에 대응하는 제어기를 결정하고, I/O 장치의 식별자에 대응하는 제어기로 데이터를 송신한다. 처리된 데이터를 얻기 위해, I/O 장치의 식별자에 대응하는 제어기는 제어기에 저장된 펌웨어 코드에 따라 데이터를 처리하고, 처리된 데이터를 라우터로 송신한다. 라우터는 추가로, 처리된 데이터를 제2 장치로 송신하도록 구성된다. 제2 장치 또는 제1 장치는 I/O 장치이다.
도 3은 도 5에 도시된 실시예에 따른 임의의 제어기의 개략적 구조도이다. 도 3을 참조하면, 제어기는 메모리, 버퍼, 큐, 및 프로세서를 포함하고, 메모리는 펌웨어 코드를 저장하도록 구성되고, 큐는 라우터에 의해 송신된 데이터를 수신하도록 구성되며, 버퍼는, 프로세서에 의해, 제어기의 큐로부터 판독된 데이터를 저장하는 데 사용되고, 프로세스는, 메모리에 저장된 펌웨어 코드를 호출하여 버퍼의 데이터를 처리하여 처리된 데이터를 획득하고, 처린 된 데이터를 라우터로 송신하도록 구성된다. 제어기의 구체적 워크 플로에 대해, 기준은 도 2에서 도시된 방법 실시예에서의 상세한 설명으로 만들어질 수 있으며, 세부사항은 여기에서 다시 설명하지 않는다.
전술한 실시예에서, 상이한 제어기는 또한, 펌웨어 코드를 저장하기 위해 메모리를 공유할 수 있고, 프로세서는 대응하는 펌웨어 코드를 호출한다.
전술한 실시예에서, 라우터는 추가로, I/O 장치의 기능적 요구 사항과 적어도 2개의 제어기에 의해 구현되는 기능에 따라, I/O 장치와 제어기 사이의 대응 관계를 구축할 수 있다. 구체적 구축 방법에 대해, 기준은 도 2에서 나타난 방법 실시예의 상세한 설명으로 만들어질 수 있으며, 세부사항은 여기에서 다시 설명하지 않는다.
전술한 실시예에서, 제어기는 추가로, BIOS 또는 OS에 의해 로드된 펌웨어 코드를 수신하도록 구성된다. 구체적 구현에 대해, 기준은 도 2에 나타난 방법 실시예에서의 상세한 설명으로 만들어질 수 있고, 세부사항은 여기에서 다시 설명하지 않는다.
전술한 실시예에서, 라우터는, I/O 장치의 기능적 요구 사항에 따라, 제어기의 펌웨어 코드를 수정하도록 구성된 라우터 프로그램 인터페이스를 더 포함할 수 있다. 펌웨어 코드가 언제 그리고 어떻게 수정되는지에 대한 정보에 대해, 기준은 도 2에 나타난 방법 실시예에서의 상세한 설명으로 만들어질 수 있고, 세부사항은 여기에서 다시설명하지 않는다.
본 발명에서 제공되는 제어 장치에 따라, 전술한 설명에서 알 수 있듯이, 제어 장치의 제어기는 상이한 기능을 구현하기 위해 상이한 펌웨어 코드를 로드할 수 있고, 제어 장치의 라우터에 저장된 대응 관계는 사용자 요구가 바뀜에 따라 수정될 수 있다. 따라서, 제어 장치를 포함하는 I/O 칩셋은 요구에 따라 상이한 기능을 구현할 수 있고, I/O 칩셋은 매우 유연하게 구현될 수 있다.
당업자는 방법 실시 예의 모든 단계 또는 일부가 관련 하드웨어를 명령하는 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있다. 프로그램은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 프로그램이 실행될 때, 방법 실시 예의 단계는 수행된다. 전술한 기억 매체는 ROM, RAM, 자기 디스크 또는 광디스크와 같은 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
마지막으로, 전술 한 실시 예는 단지 본 발명의 기술적 해결수단을 설명하기위한 것이지 본 발명을 제한하기 위한 것이 아님을 알아야 한다. 본 발명은 전술 한 실시 예들을 참조하여 상세히 설명되었지만, 당업자는, 본 발명의 실시 예의 기술적 해결의 범위를 벗어나지 않고, 전술 한 실시 예에서 기술된 기술적 해결수단에 여전히 수정을 가할 수 있거나 또는 그 일부 또는 모든 기술적 특징과 동등한 대체물을 만들 수 있음을 이해해야 한다.

Claims (16)

  1. 제어 방법으로서,
    라우터가, 제1 장치에 의해 송신된 데이터를 수신하는 단계 - 상기 데이터는 I/O 장치의 식별자를 가지고 있음 -;
    상기 I/O 장치의 식별자 및, I/O 장치와 제어기 사이의 대응 관계에 따라, 상기 I/O 장치의 식별자에 대응하는 제어기를 결정하는 단계;
    상기 제어기가 상기 제어기에 저장된 펌웨어 코드(firmware code)에 따라 상기 데이터를 처리하도록, 상기 I/O 장치의 식별자에 대응하는 제어기로 상기 데이터를 송신하는 단계;
    상기 제어기에 의해 송신된, 상기 처리된 데이터를 수신하는 단계; 및
    상기 처리된 데이터를 제2 장치에 송신하는 단계
    를 포함하고,
    상기 제2 장치 또는 상기 제1 장치는 상기 I/O 장치인, 제어 방법.
  2. 제1항에 있어서,
    상기 제어기가, 상기 제어기에 저장된 펌웨어 코드에 따라 상기 데이터를 처리하는 것은,
    상기 제어기의 큐(queue)로부터 상기 데이터를 버퍼로 판독하는 단계; 및
    상기 버퍼의 데이터를 처리하기 위해, 메모리에 저장된 상기 펌웨어 코드를 호출하는 단계
    를 포함하는, 제어 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 I/O 장치의 식별자 및, I/O 장치와 제어기 사이의 대응 관계에 따라, 상기 I/O 장치의 식별자에 대응하는 제어기를 결정하는 단계 전, 상기 제어 방법은,
    상기 I/O 장치의 기능적 요구 사항(functional requirement) 및 상기 제어기에 의해 구현되는 기능에 따라, 상기 I/O 장치와 상기 제어기 사이의 대응 관계를 구축하는 단계
    를 더 포함하는 제어 방법.
  4. 제2항에 있어서,
    BIOS(basic input/output system) 또는 OS(operating system)를 사용하여, 상기 펌웨어 코드를 상기 제어기로 로드(load)하는 단계
    를 더 포함하는 제어 방법.
  5. 제2항 또는 제4항에 있어서,
    상기 I/O 장치의 기능적 요구 사항에 따라, 상기 I/O 장치와 제어기 사이의 대응 관계를 수정하는 단계
    를 더 포함하는 제어 방법.
  6. 제2항 또는 제4항 있어서,
    상기 I/O 장치의 기능적 요구 사항에 따라, 상기 제어기의 펌웨어 코드를 수정하는 단계
    를 더 포함하는 제어 방법.
  7. 제어 방법으로서,
    제어기가, I/O 장치의 식별자를 운반하는 데이터를 수신하고, 상기 제어기에 저장된 펌웨어 코드(firmware code)에 따라 상기 데이터를 처리하는 단계 - 여기서 상기 제어기는, 라우터에 의해, I/O 장치와 제어기 간의 대응관계에 따라 상기 I/O 장치의 식별자에 대응되는 것으로 결정됨 - ; 및
    상기 데이터가 제1 장치로부터 수신되면, 상기 제어기가, 상기 처리된 데이터를 제2 장치로 송신하거나, 또는 상기 데이터가 라우터를 사용하여 제1 장치로부터 수신되면, 상기 라우터가 상기 처리된 데이터를 제2 장치로 송신하도록, 상기 제어기가, 상기 처리된 데이터를 상기 라우터에 송신하는 단계
    를 포함하고,
    상기 제2 장치 또는 상기 제1 장치는 I/O 장치인, 제어 방법.
  8. 제7항에 있어서,
    상기 제어기가, 상기 제어기에 저장된 펌웨어 코드에 따라 상기 데이터를 처리하는 단계는,
    상기 제어기의 큐(queue)로부터 상기 데이터를 버퍼로 판독하는 단계; 및
    상기 버퍼의 데이터를 처리하기 위해, 메모리에 저장된 상기 펌웨어 코드를 호출하는 단계
    를 포함하는, 제어 방법.
  9. 제8항에 있어서,
    BIOS(basic input/output system) 또는 OS(operating system)를 사용하여, 상기 펌웨어 코드를 상기 제어기로 로드(load)하는 단계
    를 더 포함하는 제어 방법.
  10. 제7항 또는 제8항에 있어서,
    I/O 장치의 기능적 요구 사항에 따라, 상기 제어기의 펌웨어 코드를 수정하는 단계
    를 더 포함하는 제어 방법.
  11. 제어 장치로서,
    라우터 및 적어도 2개의 제어기를 포함하고,
    상기 라우터는, 제1 장치에 의해 송신된 데이터를 수신하고 - 상기 데이터는 I/O 장치의 식별자를 가지고 있음 -, 상기 I/O 장치의 식별자 및, I/O 장치와 제어기 사이의 대응 관계에 따라, 상기 적어도 2개의 제어기 중, 상기 I/O 장치의 식별자에 대응하는 제어기를 결정하고, 상기 데이터를 상기 I/O 장치의 식별자에 대응하는 제어기로 송신하도록 구성되며,
    상기 I/O 장치의 식별자에 대응하는 제어기는, 상기 제어기에 저장된 펌웨어 코드에 따라, 상기 데이터를 처리하여 상기 처리된 데이터를 획득하고, 상기 처리된 데이터를 상기 라우터에 송신하도록 구성되며,
    상기 라우터는 추가로, 상기 처리된 데이터를 제2 장치에 송신하도록 구성되고,
    상기 제2 장치 또는 상기 제1 장치는 상기 I/O 장치인, 제어 장치.
  12. 제11항에 있어서,
    상기 제어기는
    상기 펌웨어 코드를 저장하도록 구성된 메모리;
    프로세서에 의해, 상기 제어기의 큐(queue)로부터 판독된 상기 데이터를 저장하도록 구성된 버퍼; 및
    상기 메모리에 저장된 상기 펌웨어 코드를 호출하여 상기 버퍼의 데이터를 처리하여 처리된 데이터를 획득하고, 상기 처리된 데이터를 상기 라우터에 송신하도록 구성된 상기 프로세서
    를 포함하는, 제어 장치.
  13. 제11항 또는 제12항에 있어서,
    상기 라우터는 추가로,
    I/O 장치의 기능적 요구 사항 및 상기 적어도 2개의 제어기에 의해 구현되는 기능에 따라, 상기 I/O 장치와 상기 제어기 사이의 대응 관계를 구축하도록 구성된, 제어 장치.
  14. 제11항 또는 제12항에 있어서,
    상기 제어기는 추가로,
    BIOS(basic input/output system) 또는 OS(operating system)에 의해 로드(load)된 상기 펌웨어 코드를 수신하도록 구성된, 제어 장치.
  15. 제11항 또는 제12항에 있어서,
    상기 라우터는,
    상기 I/O 장치의 기능적 요구 사항에 따라, 상기 I/O 장치와 제어기 사이의 대응 관계를 수정하도록 구성된 라우터 프로그래밍 인터페이스(router programming interface)
    를 더 포함하는, 제어 장치.
  16. 제11항 또는 제12항에 있어서,
    상기 제어기는,
    상기 I/O 장치의 기능적 요구 사항에 따라, 상기 제어기의 펌웨어 코드를 수정하도록 구성된 제어기 프로그래밍 인터페이스(controller programming interface)
    를 더 포함하는, 제어 장치.
KR1020167032928A 2014-04-30 2015-04-15 제어 방법 및 제어 장치 KR101984150B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410181775.3 2014-04-30
CN201410181775.3A CN105095126B (zh) 2014-04-30 2014-04-30 控制方法和控制设备
PCT/CN2015/076666 WO2015165329A1 (zh) 2014-04-30 2015-04-15 控制方法和控制设备

Publications (2)

Publication Number Publication Date
KR20160147924A KR20160147924A (ko) 2016-12-23
KR101984150B1 true KR101984150B1 (ko) 2019-05-30

Family

ID=54358152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032928A KR101984150B1 (ko) 2014-04-30 2015-04-15 제어 방법 및 제어 장치

Country Status (6)

Country Link
US (1) US10579394B2 (ko)
EP (1) EP3131241B1 (ko)
JP (1) JP6479045B2 (ko)
KR (1) KR101984150B1 (ko)
CN (1) CN105095126B (ko)
WO (1) WO2015165329A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106921547B (zh) * 2017-01-25 2020-05-08 华为技术有限公司 管理设备的装置和方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083760A1 (en) * 2007-09-25 2009-03-26 Slaight Thomas M Management component transport protocol interconnect filtering and routing

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2629278B2 (ja) * 1988-06-30 1997-07-09 株式会社日立製作所 仮想計算機システム
JPH05134877A (ja) * 1991-11-15 1993-06-01 Fuji Electric Co Ltd 計算機システムの立ち上げ方式
US5414851A (en) 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
US5991824A (en) * 1997-02-06 1999-11-23 Silicon Graphics, Inc. Method and system for simultaneous high bandwidth input output
US6591309B1 (en) * 1999-11-24 2003-07-08 Intel Corporation I/O bus abstraction for a cluster interconnection fabric
US7058750B1 (en) * 2000-05-10 2006-06-06 Intel Corporation Scalable distributed memory and I/O multiprocessor system
JP2002330204A (ja) 2001-04-27 2002-11-15 Toshiba Corp 電子機器におけるソフトウェア切り替え方法
DE10211054A1 (de) 2002-03-13 2003-10-09 Advanced Micro Devices Inc USB-Hostcontroller
AU2003213650A1 (en) * 2002-03-13 2003-09-29 Advanced Micro Devices, Inc. Usb host controller
JP2005108098A (ja) * 2003-10-01 2005-04-21 Hitachi Ltd データi/o装置及びデータi/o装置の制御方法
US8032674B2 (en) * 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
CN100570558C (zh) * 2006-03-31 2009-12-16 联想(北京)有限公司 一种芯片固件升级方法
CN101206924A (zh) * 2006-12-20 2008-06-25 深圳市朗科科技有限公司 一种闪速存储器的控制方法
CN101042582A (zh) 2007-04-25 2007-09-26 上海电器科学研究所(集团)有限公司 带现场总线接口的可编程可配置远程i/o模块
JP4483947B2 (ja) * 2008-01-17 2010-06-16 日本電気株式会社 入出力制御装置
CN101593120A (zh) * 2009-06-29 2009-12-02 成都市华为赛门铁克科技有限公司 带外升级方法和系统
JP5665303B2 (ja) 2009-11-17 2015-02-04 キヤノン株式会社 情報処理装置、その方法及びプログラム
CN102467409B (zh) * 2010-11-08 2016-10-26 研祥智能科技股份有限公司 一键调用应用程序的方法
US8495258B2 (en) * 2011-05-24 2013-07-23 International Business Machines Corporation Implementing storage adapter performance optimization with hardware accelerators offloading firmware for buffer allocation and automatically DMA
CN103235741B (zh) * 2013-04-15 2016-05-11 厦门亿联网络技术股份有限公司 一种通过芯片实现硬件兼容的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083760A1 (en) * 2007-09-25 2009-03-26 Slaight Thomas M Management component transport protocol interconnect filtering and routing

Also Published As

Publication number Publication date
JP2017516218A (ja) 2017-06-15
CN105095126A (zh) 2015-11-25
EP3131241A4 (en) 2017-05-10
CN105095126B (zh) 2018-02-13
US20170046174A1 (en) 2017-02-16
WO2015165329A1 (zh) 2015-11-05
EP3131241B1 (en) 2020-03-25
EP3131241A1 (en) 2017-02-15
JP6479045B2 (ja) 2019-03-06
US10579394B2 (en) 2020-03-03
KR20160147924A (ko) 2016-12-23

Similar Documents

Publication Publication Date Title
US8521929B2 (en) Virtual serial port management system and method
US10305823B2 (en) Network interface card configuration method and resource management center
US11845451B2 (en) Automobile diagnostic method, apparatus, device and system, and diagnostic connection device
WO2018223786A1 (zh) 云桌面系统、及其图像序列压缩编码方法和介质
CN110971591B (zh) 一种多进程访问可信应用的方法和系统
US10614011B2 (en) Apparatus, method, and electronic device for implementing solid-state drive data interaction
US9736529B2 (en) USB sharing method for combo TV set, combo TV set and computer readable storage medium
US20140215012A1 (en) Method and apparatus for executing application of mobile device
US8959534B2 (en) Enabling legacy applications to achieve end-to-end communication with corresponding legacy device services
CN115904761A (zh) 片上系统、车辆及视频处理单元虚拟化方法
EP3373140B1 (en) Method for processing ordered broadcast and electronic device
KR101984150B1 (ko) 제어 방법 및 제어 장치
US11265807B2 (en) Method for network sharing on a terminal, apparatus, air conditioner and storage medium
US20160266912A1 (en) External devices, electronic devices, methods for starting external devices, and methods for data processing
CN108121496B (zh) 数据的存储方法、装置和系统
CN108021459B (zh) 跨进程发送打点日志的方法及装置
CN108289165B (zh) 一种基于手机控制相机的实现方法、装置及终端设备
CN112131146B (zh) 获取设备信息的方法、装置、存储介质及电子设备
CN110008071B (zh) 一种远程调试装置及方法
US9380085B2 (en) Server and method for providing collaboration service, and sociality management server
US8782304B2 (en) Method for enabling several virtual processing units to directly and concurrently access a peripheral unit
US20170192925A1 (en) Preventing address conflict system and method thereof
CN109992510B (zh) 一种远程调试装置及方法
JP2017107445A (ja) 情報処理装置、接続デバイス識別方法およびプログラム
CN115617725A (zh) 一种数据传输方法、第一终端、第二终端及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right