KR102287300B1 - 데이터 처리 아키텍쳐 및 데이터 처리 방법 - Google Patents

데이터 처리 아키텍쳐 및 데이터 처리 방법 Download PDF

Info

Publication number
KR102287300B1
KR102287300B1 KR1020140178441A KR20140178441A KR102287300B1 KR 102287300 B1 KR102287300 B1 KR 102287300B1 KR 1020140178441 A KR1020140178441 A KR 1020140178441A KR 20140178441 A KR20140178441 A KR 20140178441A KR 102287300 B1 KR102287300 B1 KR 102287300B1
Authority
KR
South Korea
Prior art keywords
data processing
command
memory
subject
real
Prior art date
Application number
KR1020140178441A
Other languages
English (en)
Other versions
KR20160071124A (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 삼성전자주식회사
Priority to KR1020140178441A priority Critical patent/KR102287300B1/ko
Priority to US14/712,111 priority patent/US9785582B2/en
Publication of KR20160071124A publication Critical patent/KR20160071124A/ko
Application granted granted Critical
Publication of KR102287300B1 publication Critical patent/KR102287300B1/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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

데이터 처리 아키텍쳐(architecture)가 개시된다. 일 실시예는 백그라운드 프로세스가 메모리에 액세스하여 메모리에 기록된 명령을 페칭(fetch)하고, 상기 페칭된(fetched) 명령을 네트워크를 통해 상기 페칭된 명령에 대응하는 동작을 수행하는 서브젝트로 전송하며, 상기 서브젝트로부터 동작 수행 결과를 수신하여 상기 메모리에 상기 동작 수행 결과를 기록한다.

Description

데이터 처리 아키텍쳐 및 데이터 처리 방법{DATA PROCESSING ARCHITECTURE AND DATA PROCESSING METHOD}
아래 실시예들은 데이터 처리 아키텍쳐 및 데이터 처리 방법에 관한 것이다.
어플리케이션의 개발의 편리성과 규모를 고려하면 운영체제의 사용은 필수적이다. 고속의 측정이 필요한 센서 또는 제어를 위한 모터 등의 실시간적인 제어 요소가 시스템에 포함되는 경우, 실시간적인 제어 요소는 반복 작업이 많을 수 있다. 제어 요소의 반복 작업이 많음에 따라 운영체제의 스케쥴링이나 지터(jitter)는 시스템의 성능을 저하시키는 요인이 될 수 있다. 따라서, 어플리케이션의 실행 환경과 실시간적인 제어 요소를 구분하여 처리하는 멀티 프로세싱이 이용될 수 있다.
멀티 프로세싱은 메인 프로세서, 서브 프로세서, 및 메인 프로세서와 서브 프로세서를 연결하는 네트워크가 필요할 수 있다. 멀티 프로세싱의 경우, 고속의 네트워크가 사용될 수 있는데, 고속의 네트워크는 비용적인 부담이 발생할 수 있고, 시스템의 상용화에 어려움이 발생할 수 있다. 저속의 네트워크가 사용되는 경우, 비용적인 부담은 줄어들 수 있으나 시스템의 전체적인 성능이 떨어질 수 있다. 따라서, 저속의 네트워크가 사용되더라도 시스템이 효과적인 성능을 낼 수 있는 기술이 필요하다.
일 측에 따른 데이터 처리 아키텍쳐의 데이터 처리 방법은 백그라운드 프로세스를 이용하여 메모리에 액세스하고, 상기 메모리에 기록된 어플리케이션의 명령(command)을 페칭(fetch)하는 단계; 상기 페칭된 명령을 상기 백그라운드 프로세스를 이용하여 상기 페칭된 명령에 대응하는 동작을 수행하는 서브젝트(subject)로 전송하는 단계; 상기 서브젝트의 동작 수행 결과를 상기 백그라운드 프로세스를 이용하여 수신하는 단계; 및 상기 백그라운드 프로세스를 상기 동작 수행 결과를 상기 메모리에 기록하는 단계를 포함한다.
상기 메모리는 IPC(Inter Process Communication)의 공유 메모리를 포함할 수 있다.
상기 메모리는 상기 어플리케이션의 실시간 명령이 기록되는 제1 메모리 영역 및 상기 어플리케이션의 비실시간 명령이 기록되는 제2 메모리 영역을 포함할 수 있다.
상기 명령은 상기 어플리케이션이 API(Application Programming Interface)를 통해 상기 메모리에 기록하는 것일 수 있다.
상기 명령을 서브젝트로 전송하는 단계는 백그라운드 프로세스의 송신 스레드(thread)를 통해 상기 페칭된 명령을 전송할 수 있고, 상기 서브젝트의 동작 수행 결과를 수신하는 단계는, 상기 백그라운드 프로세스의 수신 스레드를 통해 상기 동작 수행 결과를 수신할 수 있다.
상기 동작 수행 결과를 상기 메모리에 기록하는 단계는 상기 서브젝트와 매핑되는 버퍼에 상기 동작 수행 결과를 기록할 수 있다.
상기 데이터 처리 아키텍쳐는 보행 보조 기기에 내장될 수 있다.
일 측에 따른 데이터 처리 아키텍쳐는 어플리케이션의 명령을 프로세싱하는 API(Application Programming Interface)부; 상기 프로세싱된 명령을 기록하는 메모리부; 및 백그라운드에서 동작하고, 상기 메모리부에 액세스하여 상기 기록된 명령을 페칭(fetch)하고, 상기 페칭된(fetched) 명령을 네트워크를 통해 상기 페칭된 명령에 대응하는 동작을 수행하는 서브젝트로 전송하며, 상기 서브젝트로부터 동작 수행 결과를 수신하여 상기 메모리부에 상기 동작 수행 결과를 기록하는 백그라운드 프로세스부를 포함한다.
상기 메모리부는 IPC(Inter Process Communication)의 공유 메모리를 포함할 수 있다.
상기 메모리부는 상기 어플리케이션의 실시간 명령이 기록되는 제1 메모리 영역 및 상기 어플리케이션의 비실시간 명령이 기록되는 제2 메모리 영역을 포함할 수 있다.
상기 백그라운드 프로세스부는 상기 페칭된 명령의 전송을 위한 송신 스레드 및 상기 동작 수행 결과의 수신을 위한 수신 스레드를 포함할 수 있다.
상기 백그라운드 프로세스부는 상기 서브젝트와 맵핑되는 버퍼에 상기 동작 수행 결과를 기록할 수 있다.
상기 백그라운드 프로세스부는 미리 정해진 주기마다 상기 메모리부에 액세스할 수 있다.
상기 네트워크는 필드 버스 네트워크를 포함할 수 있다.
상기 데이터 처리 아키텍쳐는 보행 보조 기기에 포함될 수 있다.
도 1은 일 실시예에 따른 데이터 처리 아키텍쳐를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 레이어드(layered) 소프트웨어 아키텍쳐를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 데이터 처리 방법을 설명하기 위한 도면이다.
도 4 및 도 5는 일 실시예에 따른 데이터 처리 아키텍쳐가 적용된 보행 보조 기기를 설명하기 위한 도면이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 데이터 처리 아키텍쳐를 설명하기 위한 도면이다.
도 1을 참조하면, 일 실시예에 따른 데이터 처리 아키텍쳐는 어플리케이션부(110) 및 프록시부(proxy)(120)를 포함한다.
어플리케이션부(110)는 어플리케이션을 저장한다. 어플리케이션부(110)는 어플리케이션의 명령을 어플리케이션부(110)와 연결된 프록시부(120)에 전달할 수 있다. 어플리케이션부(110)는 네트워크(130)를 통해 서브젝트(140 내지 150)와 직접적으로 통신하지 않을 수 있다. 서브젝트(140 내지 150)는, 후술하겠지만, 어플리케이션의 명령에 대응하는 동작을 수행한다. 어플리케이션부(110)는 프록시부(120)를 통해 서브젝트(140 또는 150)와 간접적으로 통신할 수 있다. 프록시부(120)는 어플리케이션부(110)의 명령을 서브젝트(140 내지 150)로 전달하는 대리자이다.
프록시부(120)는 API부(Application Programming Interface)(121), 메모리부(122), 및 백그라운드 프로세스부(123)를 포함한다.
어플리케이션부(110)는 어플리케이션의 명령을 서브젝트(140 또는 150)로 전달하기 위해 API부(121)를 호출한다. API부(121)는 어플리케이션의 명령을 프로세싱한다. 보다 구체적으로, API부(121)는 서브젝트(140 또는 150)가 어플리케이션의 명령을 이해할 수 있도록 어플리케이션의 명령을 프로세싱할 수 있다.
어플리케이션부(110)는 API부(121)를 통해 메모리부(122)에 명령을 쓴다(write). 메모리부(122)에 쓰여지는 명령은 API부(121)가 프로세싱한 명령일 수 있다. 메모리부(122)는 어플리케이션부(110)와 백그라운드 프로세스부(123)가 액세스할 수 있는 메모리이다. 어플리케이션부(110)와 백그라운드 프로세스부(123)는 메모리부(122)를 통해 데이터 등을 공유할 수 있다. 예를 들어, 메모리부(122)는 운영체제(Operating System, OS)가 제공하는 서비스인 IPC(Inter Process Communication)의 공유 메모리(shared memory)를 포함할 수 있다. 전술한 공유 메모리는 일 실시예에 따른 예시적인 사항일 뿐, 메모리부(122)는 전술한 공유 메모리로 한정되지 않는다. 전술하였듯이, 일 실시예에 따른 메모리부(122)는 서로 독립적인 프로그램 또는 프로세스들이 데이터의 공유를 위해 저장할 수 있는 영역을 포함하는 논리적인 개념일 수 있다.
백그라운드 프로세스부(123)는 백그라운드에서 동작하여 메모리부(122)에 액세스한다. 예를 들어, 백그라운드 프로세스부(123)는 데몬(daemon)일 수 있다. 백그라운드 프로세스부(123)는 주기적으로 메모리부(122)에 액세스할 수 있다. 백그라운드 프로세스(123)는 메모리부(122)에 기록된 명령을 페칭(fetch)하고, 페칭된 명령을 네트워크(130)를 통해 서브젝트(140 또는 150)로 전송한다. 백그라운드 프로세스부(123)는 다수의 스레드(thread)를 포함할 수 있다. 예를 들어, 백그라운드 프로세스부(123)는 페칭된 명령을 전송하는 송신 스레드(thread)를 포함할 수 있다. 송신 스레드가 메모리부(122)에 액세스할 수 있고, 메모리부(122)에 기록된 명령을 페칭할 수 있다.
예를 들어, 서브젝트(140)는 모터이고, 모터의 토크를 증가시키라는 명령이 메모리부(122)에 기록된 경우, 백그라운드 프로세스부(123)는 메모리(122)에 기록된 명령을 읽을 수 있다. 또한, 백그라운드 프로세스부(123)는 메모리(122)에 기록된 명령을 모터로 전송할 수 있고, 모터는 토크를 증가시키는 동작을 수행할 수 있다.
서브젝트(140 또는 150)는 동작 수행 결과를 네트워크(130)를 통해 백그라운드 프로세스부(123)로 전송한다. 또한, 서브젝트(140)는 서브젝트(150)와 식별하는데 사용되는 식별 정보를 백그라운드 프로세스부(123)로 전송할 수 있다. 또한, 서브젝트(140 또는 150)는 식별 정보를 동작 수행 결과에 포함시켜 전송할 수 있다. 백그라운드 프로세스부(123)는 식별 정보를 이용하여 동작 수행 결과를 전송한 서브젝트를 식별할 수 있다.
식별 정보는 서브젝트(140 또는 150)가 위치한 부분과 대응하는 번호 및 서브젝트(140 또는 150)의 유형(type) 중 적어도 하나를 포함할 수 있다. 여기서, 유형은 서브젝트(140 또는 150)가 수행하는 동작과 연관될 수 있다. 이하, 보행 보조 기기를 예를 들어 설명한다. 번호의 경우, 보행 보조 기기에서 사용자의 왼쪽 다리를 보조하는 부분은 0번과 대응될 수 있고, 사용자의 오른쪽 다리를 보조하는 부분은 1번과 대응될 수 있다. 유형의 경우, 보행 보조 기기의 보조력을 생성하는 모터는 유형 1, 토크를 측정하는 토크 센서는 유형 2, 또는 보행 보조 기기를 착용한 사용자의 자세를 감지하는 자세 센서는 유형 3일 수 있다. 전술한 식별 정보에 대한 예는 일 실시예에 따른 예시적인 사항일 뿐, 식별 정보가 전술한 예로 한정되지 않는다.
백그라운드 프로세스부(123)는 수신 스레드를 통해 서브젝트(140 또는 150)가 전송한 동작 수행 결과를 수신한다. 또한, 백그라운드 프로세스부(123)는 서브젝트(140 또는 150)가 위치한 부분과 대응하는 번호 및 유형이 기록된 맵핑 테이블을 포함할 수 있다. 백그라운드 프로세스부(123)는 맵핑 테이블을 참조하여 어떤 서브젝트가 동작 수행 결과를 전송하였는지 확인할 수 있다. 예를 들어, 동작 수행 결과가 0번 및 유형 1을 포함하는 경우, 백그라운드 프로세스부(123)는 왼쪽 다리를 보조하는 부분의 모터가 동작 수행 결과를 전송하였음을 확인할 수 있다.
백그라운드 프로세스부(123)는 동작 수행 결과를 메모리에 기록한다. 예를 들어, 백그라운드 프로세스부(123)의 수신 스레드는 동작 수행 결과를 전송한 서브젝트와 대응하는 버퍼에 동작 수행 결과를 디스패치(dispatch)할 수 있다.
어플리케이션부(110)는 API부(121)를 통해 메모리부(122)에 액세스하고, 메모리부(122)에 기록된 서브젝트의 동작 수행 결과를 읽는다. 어플리케이션부(110)는 동작 수행 결과를 유효한 컨텍스트(context)로 변환할 수 있고, 컨텍스트를 사용자에게 제공할 수 있다.
실시간 명령의 전송 빈도(달리 표현하면, 전송 주기)는 시스템의 제어 성능에 중요한 역할을 할 수 있다. 일 실시예에 있어서, 데이터 처리 아키텍쳐를 포함하는 시스템의 제어 성능이 명령의 전송 빈도에 따라 영향을 많이 받는 경우, 어플리케이션의 명령은 실시간 명령으로 분류될 수 있고, 그렇지 않은 경우, 어플리케이션의 명령은 비실시간 명령으로 분류될 수 있다. 예를 들어, 보행 보조 기기를 착용한 사용자의 보조력의 제어 명령의 전송 주기가 짧은 경우, 보조력이 실시간으로 제어될 수 있다. 보조력의 제어 명령의 전송 주기가 긴 경우, 보조력이 실시간으로 제어되지 않을 수 있다. 보조력의 실시간 제어 여부에 따라 보행 보조 기기의 제어 성능이 영향을 받을 수 있으므로, 보조력의 제어 명령은 실시간 명령으로 분류될 수 있다.
어플리케이션의 명령의 전송 주기가 길어도 시스템의 제어 성능에 영향이 실질적으로 없는 명령은 비실시간 명령으로 분류될 수 있다. 예를 들어, 비실시간 명령은 사용자 인터페이스와 관련된 명령, 서브젝트의 파라미터를 설정하는 명령, 또는 서브젝트의 전압의 측정을 위한 명령 등을 포함할 수 있다.
일 실시예에 있어서, 메모리부(122)는 어플리케이션의 실시간 명령이 기록되는 제1 메모리 영역 및 어플리케이션의 비실시간 명령이 기록되는 제2 메모리 영역을 포함할 수 있다. 예를 들어, 보조력을 제어하기 위한 일련의 명령인 R1, R2, R3, R4, 및 R5가 있고, 사용자가 사용자 인터페이스를 통해 확인을 원하는 항목이 A, B, C, D, 및 E라고 하자. R1, R2, R3, R4, 및 R5는 제1 메모리 영역에 기록될 수 있고, A, B, C, D, 및 E는 제2 메모리 영역에 기록될 수 있다.
백그라운드 프로세스부(123)는 제1 메모리 영역을 읽어 제1 메모리 영역에 기록된 실시간 명령을 복수의 서브젝트(140 또는 150) 중에서 실시간 명령과 대응하는 동작을 수행하는 서브젝트로 전송할 수 있다. 또한, 백그라운드 프로세스부(123)는 제2 메모리 영역을 읽어 제2 메모리 영역에 기록된 비실시간 명령을 복수의 서브젝트들(140 내지 150) 중에서 비실시간 명령과 대응하는 동작을 수행하는 서브젝트로 전송할 수 있다. 여기서, 백그라운드 프로세스부(123)의 송신 스레드가 제1 메모리 영역 및 제2 메모리 영역을 읽을 수 있다. 백그라운드 프로세스부(123)는 실시간 명령을 전송하고, 비실시간 명령을 전송한 후, 다시 실시간 명령을 전송하고, 비실시간 명령을 전송할 수 있다.
전술한 예에서, 실시간 명령과 비실시간 명령이 구분되지 않으면, R1이 서브젝트로 전송된 후, 사용자가 확인을 원하는 항목 전부가 다른 서브젝트로 전송된 뒤, R2가 서브젝트로 전송될 수 있다. 백그라운드 프로세스부(123)는 R1, A, B, C, D, E, 및 R2 순서대로 전송할 수 있다. R1, A, B, C, D, E, 및 R2 순서대로 전송되는 경우, 대역폭이 작은 네트워크에서는 실시간 처리가 필요한 서브젝트의 동작이 A, B, C, D, 및 E가 전송되는 동안에는 중단될 수 있다.
일 실시예에 따라 실시간 명령과 비실시간 명령이 구분되는 경우, 백그라운드 프로세스부(123)는 첫 번째 주기에 제1 메모리 영역에 기록된 R1을 서브젝트로 전송할 수 있고, 두 번째 주기에 제2 메모리 영역에 기록된 A를 다른 서브젝트로 전송할 수 있다. 백그라운드 프로세스부(123)는 세 번째 주기에 제1 메모리 영역에 기록된 R2를 서브젝트로 전송할 수 있고, 네 번째 주기에 제2 메모리 영역에 기록된 B를 다른 서브젝트로 전송할 수 있다. 백그라운드 프로세스부(123)는 R1, A, R2, B, R3, C, R4, D, R5, 및 E 순서대로 전송할 수 있다. R1, A, R2, B, R3, C, R4, D, R5, 및 E 순서대로 전송되는 경우, R1의 전송 시점으로부터 R2의 전송 시점까지 걸리는 시간이 짧아질 수 있다. 대역폭이 적은 네트워크에서, 실시간 명령의 전송 주기가 짧아져 모터와 같이 실시간 처리가 필요한 서브젝트가 실시간으로 동작할 수 있다.
어플리케이션부(110)는 서브젝트(140 또는 150)와 직접적으로 통신하지 않을 수 있다. 어플리케이션부(110)는 프록시부(120)를 통해 간접적으로 서브젝트(140 또는 150)와 통신할 수 있다. 프록시부(120)는 어플리케이션부(110)의 네트워크 송수신을 대리하는 역할일 수 있다. 어플리케이션부(110)와 서브젝트(140 또는 150) 사이의 대리자가 통신을 수행함으로써 어플리케이션은 네트워크(130)의 실제 구현에 영향을 받지 않을 수 있다. 또한, 어플리케이션부(110)는 명령에 대한 동작 수행 결과를 메모리(122)에서 읽을 수 있으므로, 네트워크 송수신으로 인한 블로킹 딜레이(blocking delay)가 감소할 수 있다.
또한, 어플리케이션은 네트워크 송수신 속도에 영향을 받지 않으므로, 데이터에 대하여 비동기 처리를 할 수 있다. 어플리케이션은 네트워크(130)에 대한 종속성을 최소화 할 수 있고, API의 호환성이 유지되는 조건에서 어플리케이션의 영역과 백그라운드 프로세스의 영역이 분리되어 시스템의 수정용이성(modifiability)이 향상될 수 있다.
도 2는 일 실시예에 따른 레이어드(layered) 소프트웨어 아키텍쳐를 설명하기 위한 도면이다.
도 2를 참조하면, 레이어드 소프트웨어 아키텍쳐(220)는 어플리케이션(210) 및 필드 버스 네트워크(240) 사이에 위치할 수 있다. 소프트웨어 아키텍쳐(220)는 어플리케이션(210)의 네트워크 송수신 역할을 대리할 수 있다. 이하, 소프트웨어 아키텍쳐(220)를 프록시(proxy)라 한다.
어플리케이션(210) 및 프록시(220)를 동작시키는 메인 프로세서는 운영체제를 기반으로 하는 환경에서 동작할 수 있고, 필드 버스 네트워크(240)에 연결된 적어도 하나의 서브젝트(250 내지 260)의 동작 환경을 나타내는 서브 프로세서 환경은 운영체제를 기반으로 동작하는 환경이 아닐 수 있다.
어플리케이션(210)은 프록시(220)의 API(221)를 호출하고, API(221)를 통해 메모리에 명령을 기록한다. 메모리는 운영체제가 제공하는 서비스 중 서로 독립적인 복수의 프로세스가 액세스 가능한 메모리일 수 있다. 예를 들어, 메모리는 IPC(222)의 공유 메모리일 수 있다.
백그라운드 프로세스(223)는 주기적으로 메모리에 액세스할 수 있고, 메모리에 기록된 명령을 읽어 필드 버스 드라이버(230)를 통해 필드 버스(240)로 명령을 전송할 수 있다. 필드 버스(240)는, 예를 들어, CAN(Controller Area Network)을 포함할 수 있고, CAN은 최대 1 Mbps의 전송 속도로 통신을 지원할 수 있다.
어플리케이션(210)의 명령은 필드 버스(240)에 연결된 복수의 서브젝트들(250 내지 260) 중에서 명령과 대응하는 동작을 수행하는 서브젝트로 전송된다. 서브젝트(250 또는 260)는 명령에 대응하는 동작을 수행하고, 동작 수행 결과를 필드 버스(240)를 통해 백그라운드 프로세스(223)로 전송한다. 백그라운드 프로세스(223)는 서브젝트와 맵핑되는 메모리에 동작 수행 결과를 기록할 수 있다. 어플리케이션(210)은 API(221)를 통해 메모리에 액세스하여 메모리에 기록된 동작 수행 결과를 사용할 수 있다.
도 1을 통해 기술된 사항은 도 2를 통해 기술된 사항에 적용될 수 있으므로, 상세한 설명은 생략한다.
도 3은 일 실시예에 따른 데이터 처리 방법을 설명하기 위한 도면이다.
일 실시예에 따른 데이터 처리 방법은 데이터 처리 아키텍쳐에 의해 수행될 수 있다.
어플리케이션(310)은 자신의 명령을 메모리(330)에 기록하기 위해 API(320)를 호출한다(311). API(320)는 어플리케이션(310)의 명령을 서브젝트(350)가 이해할 수 있도록 프로세싱한다(321). 어플리케이션(310)은 API(320)를 통해 메모리(330)에 명령을 기록할 수 있다(331).
일 실시예에 있어서, 메모리(330)는 어플리케이션(310)의 실시간 명령을 기록하는 제1 메모리 영역 및 어플리케이션(310)의 비실시간 명령을 기록하는 제2 메모리 영역을 포함할 수 있다. 백그라운드 프로세스(340)는 제1 메모리 영역 및 제2 메모리 영역을 번갈아 가면서 액세스할 수 있다. 어플리케이션(310)의 명령이 실시간 명령 및 비실시간 명령으로 구분되어 실시간 명령의 전송 주기가 짧아질 수 있다.
백그라운드 프로세스(340)는 메모리(330)에 액세스하고(341), 메모리에 기록된 명령을 페칭한다(342). 백그라운드 프로세스(340)의 송신 스레드는 페칭된 명령을 네트워크를 통해 서브젝트(350)로 전송한다(343). 백그라운드 프로세스(340)와 서브젝트(350)는 네트워크를 통해 서로 연결될 수 있다. 네트워크는, 예를 들어, 필드 버스 네트워크일 수 있고, 필드 버스 네트워크는 최대 1 Mbps의 통신 속도를 지원하는 CAN을 포함할 수 있다.
서브젝트(350)는 명령과 대응하는 동작을 수행한다(351). 예를 들어, 보행 보조 기기의 경우, 백그라운드 프로세스(340)는 보행 보조 기기의 고관절(hip joint)을 제어하는 명령(예를 들어, 고관절의 굽힘(flexion) 또는 폄(extension)을 제어하는 명령)을 전송할 수 있고, 명령에 따라 모터는 고관절의 굽힘 또는 폄을 위한 힘을 생성할 수 있다. 다른 일례로, 백그라운드 프로세스(340)는 고관절의 관절 각도를 측정하는 명령을 전송할 수 있고, 측정 센서는 명령에 따라 사용자의 보행에 따라 변하는 관절 각도를 측정할 수 있다.
서브젝트(350)는 동작 수행 결과를 네트워크를 통해 백그라운드 프로세스(340)로 전송한다. 백그라운드 프로세스(340)의 수신 스레드는 동작 수행 결과를 수신하고(344), 메모리(330)에 액세스할 수 있다(345). 액세스에 따라 메모리(330)에 동작 수행 결과가 기록된다. 일 실시예에 있어서, 백그라운드 프로세스(340)의 수신 스레드는 동작 수행 결과에 포함된 서브젝트의 식별 정보를 이용하여 서브젝트와 맵핑하는 버퍼에 동작 수행 결과를 디스패치(dispatch)할 수 있다.
어플리케이션(310)은 API(320)를 통해 메모리(330)에 액세스하여(312) 메모리(330)에 기록된 동작 수행 결과를 사용할 수 있다. 이 때, 어플리케이션(310)은 동작 수행 결과를 컨텍스트로 변환할 수 있고, 컨텍스트를 사용자에게 제공할 수 있다.
도 1 내지 도 2를 통해 기술된 사항은 도 3을 통해 기술된 사항에 적용될 수 있으므로, 상세한 설명은 생략한다.
도 4 및 도 5는 일 실시예에 따른 데이터 처리 아키텍쳐가 적용된 보행 보조 기기를 설명하기 위한 도면이다.
도 4 및 도 5에 도시된 보행 보조 기기(walking assist device)는 어플리케이션 및 어플리케이션의 데이터 송수신을 대리하는 프록시를 동작시키는 메인 프로세서, 필드 버스 네트워크, 및 필드 버스 네트워크와 연결된 적어도 하나의 서브젝트를 포함할 수 있다.
저속의 필드 버스 네트워크가 이용되는 경우, 대역폭의 한계가 있으므로, 복수의 데이터들을 송수신하는 것이 어려울 수 있다. 또한, 대역폭의 한계로 인해, 데이터의 송수신의 지연이 발생할 수 있고, 지연에 따라 어플리케이션의 동작이 네트워크의 속도에 영향을 받을 수 있다.
일 실시예에 있어서, 어플리케이션은 서브젝트로 직접 네트워크 송수신을 하지 않고, 어플리케이션 자신 및 네트워크의 사이에 위치한 대리자 역할의 소프트웨어 계층을 통해 간접적으로 데이터 송수신할 수 있다. 소프트웨어 계층이 프록시이다. 프록시는 백그라운드에서 동작하는 백그라운드 프로세스를 통해 서브젝트와 실질적인 네트워크 통신을 수행한다. 프록시는 네트워크 대역폭이 가능한 범위에서 서브젝트와 주기적으로 제어 및 계측에 필요한 데이터를 송수신할 수 있고, 송수신한 데이터를 메모리 영역에 저장할 수 있다. 어플리케이션은 네트워크 동작을 직접 수행하지 않고, 프록시가 제공하는 메모리 영역에 접근하여 필요한 데이터 작업을 수행할 수 있다.
도 4 및 도 5에서, 사용자는 힙 타입(hip-type)의 보행 보조 기기를 착용한다. 사용자가 착용하는 보행 보조 기기는 예시적인 사항일 뿐, 보행 보조 기기는 힙 타입에 한정되지 않고, 하지 전체를 지원하는 타입과 하지 일부를 지원하는 타입을 포함할 수 있다. 또한, 보행 보조 기기는 하지 일부를 지원하는 형태에서 무릎까지 지원하는 타입과 발목까지 지원하는 형태를 포함할 수 있다. 보행 보조 기기는 사용자의 다리 근력을 보조할 수 있도록 보행 보조 기기의 관절부들을 구동시키는 구동원(410 및 510)을 포함할 수 있다. 예를 들어, 구동원(410 및 510)은 양측의 고관절부에 각각 구동력을 전달하기 위한 2개의 모터를 포함할 수 있다.
보행 보조 기기에 저장된 어플리케이션은 구동원(410 및 510)의 제어를 위한 명령을 생성할 수 있다. 어플리케이션은 명령을 직접 구동원(410 및 510)으로 전달하지 않고, 프록시에 전달한다. 보다 구체적으로, 어플리케이션은 API를 호출할 수 있다. 호출된 API는 구동원(410 및 510)이 이해할 수 있도록 명령을 프로세싱할 수 있다. 프로세싱된 명령은 API를 통해 프록시가 제공하는 메모리에 기록될 수 있다. 메모리는 어플리케이션과 백그라운드 프로세스와 같이 서로 독립적인 프로세스들이 데이터를 공유하기 위해 저장할 수 있는 것을 포함할 수 있다. 백그라운드에서 동작하는 백그라운드 프로세스는 메모리에 기록된 명령을 읽을 수 있고, 명령을 송신 스레드를 통해 구동원(410 및 510)으로 전달할 수 있다. 구동원(410)은 명령에 따라 보행 보조 기기의 고관절부에 구동력을 전달할 수 있다.
구동원(410 및 510)은 동작 수행 결과를 백그라운드 프로세스로 전송할 수 있고, 백그라운드 프로세스는 수신 스레드를 통해 동작 수행 결과를 수신할 수 있다. 백그라운드 프로세스의 수신 스레드는 구동원(410)과 대응하는 버퍼에 동작 수행 결과를 기록할 수 있다. 어플리케이션은 버퍼에 기록된 동작 수행 결과를 읽을 수 있고, 동작 수행 결과를 컨텍스트로 변환하여 사용자에게 제공할 수 있다.
다른 일례로, 보행 보조 기기는 센서를 통해 사용자의 보행에 따라 변하는 고관절의 관절 각도, 보행에 따른 가속도 정보, 및 자세 정보 중 적어도 하나를 획득할 수 있다.
보다 구체적으로, 어플리케이션은 사용자의 보행에 따라 변하는 고관절의 관절 각도의 측정을 위해 센서에게 직접적으로 명령을 전달하지 않고, 프록시에게 명령을 전달할 수 있다. 네트워크 송수신을 담당하는 프록시는 명령을 센서에게 전송할 수 있고, 측정 정보를 센서로부터 수신할 수 있다. 프록시는 메모리에 측정 정보를 저장할 수 있고, 어플리케이션은 메모리에 저장된 정보를 읽을 수 있다.
도 4 및 도 5에는 도시되지 않았으나, 일 실시예에 따른 데이터 처리 아키텍쳐는 지능형 로봇 플랫폼에 적용될 수 있다. 데이터 처리 아키텍쳐는 어플리케이션을 대리하여 어플리케이션의 명령을 서브젝트로 전달하거나 서브젝트로부터 결과를 수신하는 프록시, 네트워크, 및 네트워크와 연결된 적어도 하나의 서브젝트를 포함할 수 있다. 여기서, 어플리케이션 및 프록시는 운영체제 기반으로 동작하는 메인 프로세서에서 구동될 수 있다. 서브젝트는 모터 또는 센서 등을 포함할 수 있고, 어플리케이션의 명령과 대응하는 동작을 수행할 수 있다.
지능형 로봇 플랫폼은 메인 프로세서, 복수의 서브 프로세서들, 및 메인 프로세서와 복수의 서브 프로세서들을 연결하는 네트워크를 포함하는 멀티 프로세싱 시스템을 통해 구현될 수 있다. 메인 프로세서에서 구동되는 어플리케이션은 서브 프로세서를 기초로 구동되는 서브젝트에게 명령을 전송할 수 있다. 이 때, 명령은 어플리케이션이 직접 전송하는 것이 아닌 프록시를 통해 전송될 수 있다. 어플리케이션은 네트워크 통신에 직접적으로 관여하지 않을 수 있다.
프록시는 백그라운드 프로세스를 포함할 수 있고, 백그라운드 프로세스는 어플리케이션의 명령을 네트워크를 통해 서브젝트로 전송할 수 있다. 백그라운드 프로세스는 네트워크를 통해 서브젝트로부터 명령을 수행한 결과를 수신할 수 있다. 백그라운드 프로세스는 운영체제가 제공하는 메모리 공간에 결과를 기록할 수 있다. 여기서, 메모리 공간은 독립적인 프로세스들이 데이터를 공유하는 메모리 공간일 수 있다.
어플리케이션은 메모리 공간에 액세스할 수 있고, 결과를 읽을 수 있다. 어플리케이션은 서브젝트로부터 직접 결과를 수신하지 않을 수 있다. 어플리케이션은 결과를 수신하기 위해 네트워크 통신에 직접적으로 참여를 하지 않을 수 있다.
일 실시예에 따른 데이터 처리 아키텍쳐의 적용으로 인해, 어플리케이션이 네트워크 송수신 속도에 영향을 받지 않을 수 있고, 블로킹 딜레이로 인한 로봇 시스템의 성능 감소가 방지될 수 있다. 또한, 일 실시예에 따른 데이터 처리 아키텍쳐의 적용으로 인해, 저속의 네트워크가 적용된 로봇의 실시간 동작이 가능할 수 있다.
일 실시예에 따른 데이터 처리 아키텍쳐는 물리적이고 독립적인(standalone) 디바이스로 구현될 수 있다. 또한, 데이터 처리 아키텍쳐는 시스템 온 칩(system on chip)으로 구현되어 보행 보조 기기와 같은 이동 단말에 내장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
110: 어플리케이션부
120: 프록시부
121: API부
122: 메모리부
123: 백그라운드 프로세스부
130: 네트워크
140 및 150: 서브젝트

Claims (16)

  1. 백그라운드 프로세스를 이용하여 메모리에 액세스하고, 상기 메모리에 기록된 어플리케이션의 명령(command)을 페칭(fetch)하는 단계;
    상기 페칭된 명령을 상기 백그라운드 프로세스를 이용하여 상기 페칭된 명령에 대응하는 동작을 수행하는 서브젝트(subject)로 전송하는 단계;
    상기 서브젝트의 동작 수행 결과를 상기 백그라운드 프로세스를 이용하여 수신하는 단계; 및
    상기 백그라운드 프로세스를 이용하여 상기 동작 수행 결과를 상기 메모리에 기록하는 단계
    를 포함하고,
    상기 전송하는 단계는,
    상기 백그라운드 프로세스를 이용하여 실시간 명령을 제1 서브젝트로 전송하고 비실시간 명령을 제2 서브젝트로 전송하되 상기 실시간 명령과 상기 비실시간 명령을 번갈아가면서 전송하는 단계
    를 포함하는 데이터 처리 아키텍쳐의 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 메모리는,
    IPC(Inter Process Communication)의 공유 메모리를 포함하는,
    데이터 처리 아키텍쳐의 데이터 처리 방법.
  3. 제1항에 있어서,
    상기 메모리는,
    상기 실시간 명령이 기록되는 제1 메모리 영역 및 상기 비실시간 명령이 기록되는 제2 메모리 영역을 포함하는,
    데이터 처리 아키텍쳐의 데이터 처리 방법.
  4. 제1항에 있어서,
    상기 명령은,
    상기 어플리케이션이 API(Application Programming Interface)를 통해 상기 메모리에 기록하는 것인,
    데이터 처리 아키텍쳐의 데이터 처리 방법.
  5. 제1항에 있어서,
    상기 명령을 서브젝트로 전송하는 단계는,
    상기 백그라운드 프로세스의 송신 스레드(thread)를 통해 상기 페칭된 명령을 전송하고,
    상기 서브젝트의 동작 수행 결과를 수신하는 단계는,
    상기 백그라운드 프로세스의 수신 스레드를 통해 상기 동작 수행 결과를 수신하는,
    데이터 처리 아키텍쳐의 데이터 처리 방법.
  6. 제1항에 있어서,
    상기 동작 수행 결과를 상기 메모리에 기록하는 단계는,
    상기 서브젝트와 매핑되는 버퍼에 상기 동작 수행 결과를 기록하는,
    데이터 처리 아키텍쳐의 데이터 처리 방법.
  7. 제1항에 있어서,
    상기 데이터 처리 아키텍쳐는,
    보행 보조 기기에 포함되는,
    데이터 처리 아키텍쳐의 데이터 처리 방법.
  8. 제1항 내지 제7항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  9. 어플리케이션의 명령을 프로세싱하는 API(Application Programming Interface)부;
    상기 프로세싱된 명령을 기록하는 메모리부; 및
    백그라운드에서 동작하고, 상기 메모리부에 액세스하여 상기 기록된 명령을 페칭(fetch)하고, 상기 페칭된(fetched) 명령을 네트워크를 통해 상기 페칭된 명령에 대응하는 동작을 수행하는 서브젝트로 전송하며, 상기 서브젝트로부터 동작 수행 결과를 수신하여 상기 메모리부에 상기 동작 수행 결과를 기록하는 백그라운드 프로세스부
    를 포함하고,
    상기 백그라운드 프로세스부는 상기 백그라운드에서 실시간 명령을 제1 서브젝트로 전송하고 비실시간 명령을 제2 서브젝트로 전송하되 상기 실시간 명령과 상기 비실시간 명령을 번갈아가면서 전송하는 데이터 처리 디바이스.
  10. 제9항에 있어서,
    상기 메모리부는,
    IPC(Inter Process Communication)의 공유 메모리를 포함하는,
    데이터 처리 디바이스.
  11. 제9항에 있어서,
    상기 메모리부는,
    상기 실시간 명령이 기록되는 제1 메모리 영역 및 상기 비실시간 명령이 기록되는 제2 메모리 영역을 포함하는,
    데이터 처리 디바이스.
  12. 제9항에 있어서,
    상기 백그라운드 프로세스부는,
    상기 페칭된 명령의 전송을 위한 송신 스레드 및 상기 동작 수행 결과의 수신을 위한 수신 스레드를 포함하는,
    데이터 처리 디바이스.
  13. 제9항에 있어서,
    상기 백그라운드 프로세스부는,
    상기 서브젝트와 맵핑되는 버퍼에 상기 동작 수행 결과를 기록하는,
    데이터 처리 디바이스.
  14. 제9항에 있어서,
    상기 백그라운드 프로세스부는,
    미리 정해진 주기마다 상기 메모리에 액세스하는,
    데이터 처리 디바이스.
  15. 제9항에 있어서,
    상기 네트워크는,
    필드 버스 네트워크를 포함하는,
    데이터 처리 디바이스.
  16. 제9항에 있어서,
    상기 데이터 처리 디바이스는,
    보행 보조 기기에 포함되는,
    데이터 처리 디바이스.
KR1020140178441A 2014-12-11 2014-12-11 데이터 처리 아키텍쳐 및 데이터 처리 방법 KR102287300B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140178441A KR102287300B1 (ko) 2014-12-11 2014-12-11 데이터 처리 아키텍쳐 및 데이터 처리 방법
US14/712,111 US9785582B2 (en) 2014-12-11 2015-05-14 Data processing architecture and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140178441A KR102287300B1 (ko) 2014-12-11 2014-12-11 데이터 처리 아키텍쳐 및 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20160071124A KR20160071124A (ko) 2016-06-21
KR102287300B1 true KR102287300B1 (ko) 2021-08-06

Family

ID=56111306

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140178441A KR102287300B1 (ko) 2014-12-11 2014-12-11 데이터 처리 아키텍쳐 및 데이터 처리 방법

Country Status (2)

Country Link
US (1) US9785582B2 (ko)
KR (1) KR102287300B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10880624B2 (en) 2017-09-13 2020-12-29 Regal Beloit America, Inc. Systems and methods for wirelessly communicating within electric motor systems
CN110035169A (zh) * 2018-01-12 2019-07-19 广东欧珀移动通信有限公司 进程处理方法和装置、电子设备、计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130253385A1 (en) * 2012-03-21 2013-09-26 Amit Goffer Motorized exoskeleton unit
KR101344393B1 (ko) * 2013-10-28 2013-12-23 김봉국 링 구조를 갖는 필드버스 네트워크 시스템
US20140079564A1 (en) * 2012-09-18 2014-03-20 Regal Beloit America, Inc. Systems and method for wirelessly communicating with electric motors

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297260A (en) * 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
KR100464910B1 (ko) 2001-12-26 2005-01-05 유티스타콤코리아 유한회사 분산프로세스 환경에서의 프로세스간 통신 장치 및 통신방법
KR100709350B1 (ko) * 2005-09-16 2007-04-20 삼성전자주식회사 비실시간 데이터 처리하는 방송수신장치 및 그 데이터 처리방법
US7895599B2 (en) 2007-05-23 2011-02-22 Sap Ag User interface independent remote interface data loader
JP2009245118A (ja) 2008-03-31 2009-10-22 Yamatake Corp アプリケーションサービス提供システム、及び方法、並びにアプリケーション移行方法
US8603016B2 (en) 2010-01-11 2013-12-10 Honda Motor Co., Ltd. Walking assistance device
JP5364689B2 (ja) 2010-12-20 2013-12-11 本田技研工業株式会社 歩行補助装置
US9022958B2 (en) 2011-06-10 2015-05-05 Honda Motor Co., Ltd. Walking assistance device
JP5769133B2 (ja) 2011-09-27 2015-08-26 日本電気株式会社 通信中継装置、データ処理システムおよび通信中継方法
US9098726B2 (en) 2012-04-24 2015-08-04 Samsung Electronics Co., Ltd. Scalable and secure application resource management and access control for multicore operating systems
KR101368966B1 (ko) 2012-05-29 2014-03-04 (주)모비루스 어플리케이션을 연동하기 위한 휴대 단말기 및 차량용 인포테인먼트 장치 그리고, 이들 간의 어플리케이션 연동방법
JP5396518B1 (ja) 2012-09-24 2014-01-22 株式会社コア トラフィック制御装置及びトラフィック制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130253385A1 (en) * 2012-03-21 2013-09-26 Amit Goffer Motorized exoskeleton unit
US20140079564A1 (en) * 2012-09-18 2014-03-20 Regal Beloit America, Inc. Systems and method for wirelessly communicating with electric motors
KR101344393B1 (ko) * 2013-10-28 2013-12-23 김봉국 링 구조를 갖는 필드버스 네트워크 시스템

Also Published As

Publication number Publication date
KR20160071124A (ko) 2016-06-21
US9785582B2 (en) 2017-10-10
US20160170917A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
KR102235167B1 (ko) 스텝 기반 실시간 디바이스 시스템 제어 방법, 디바이스 시스템 제어 장치 및 스텝 기반 디바이스 제어 시스템
US9934160B1 (en) Bit-mapped DMA and IOC transfer with dependency table comprising plurality of index fields in the cache for DMA transfer
US9678813B2 (en) Method, apparatus, and system for mutual communication between processes of many-core processor
US10846124B2 (en) Communication method, apparatus and system for virtual machine and host machine
JP2007514238A (ja) 仮想ネットワークインターフェース
JP2010520528A5 (ko)
CN113986533A (zh) 一种数据传输方法、dma控制器及计算机可读存储介质
CN115098412B (zh) 外设访问控制器、数据访问装置及对应方法、介质和芯片
JP2017504870A (ja) 自律的メモリの方法及びシステム
RU2015151181A (ru) Режим слежения в устройстве обработки в системах трассировки команд
KR102287300B1 (ko) 데이터 처리 아키텍쳐 및 데이터 처리 방법
CN107820605B (zh) 用于动态低延迟优化的系统和方法
CN114143140A (zh) 一种数据传输系统、方法、存储介质及电子设备
KR20210060213A (ko) 어플리케이션을 프리로드하는 방법 및 이를 지원하는 전자 장치
KR102399291B1 (ko) 서버 플랫폼 상에서 원자적 태스크의 개시를 제어하는 기법
US8896610B2 (en) Error recovery operations for a hardware accelerator
KR101662030B1 (ko) 태스크 이동 시스템 및 그 방법
US20150121150A1 (en) Switching Between Traditional and History Program Trace Modes Without Halting a Processor
US9934124B2 (en) Implementation of processor trace in a processor that supports binary translation
US10261817B2 (en) System on a chip and method for a controller supported virtual machine monitor
US20130067176A1 (en) Information processing device and program product
KR102149171B1 (ko) 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치
CN113438266A (zh) 可穿戴按摩仪数据的获取方法、装置、设备和存储介质
CN107562686B (zh) 信息处理方法和装置
JP6217386B2 (ja) マルチプロセッサ用プログラム生成方法

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