KR102608939B1 - 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치 - Google Patents

멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치 Download PDF

Info

Publication number
KR102608939B1
KR102608939B1 KR1020210189764A KR20210189764A KR102608939B1 KR 102608939 B1 KR102608939 B1 KR 102608939B1 KR 1020210189764 A KR1020210189764 A KR 1020210189764A KR 20210189764 A KR20210189764 A KR 20210189764A KR 102608939 B1 KR102608939 B1 KR 102608939B1
Authority
KR
South Korea
Prior art keywords
core
application mode
information
peripheral device
memory
Prior art date
Application number
KR1020210189764A
Other languages
English (en)
Other versions
KR20230100136A (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 KR1020210189764A priority Critical patent/KR102608939B1/ko
Publication of KR20230100136A publication Critical patent/KR20230100136A/ko
Application granted granted Critical
Publication of KR102608939B1 publication Critical patent/KR102608939B1/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
    • 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/4405Initialisation of multiprocessor systems
    • 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
    • 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/4418Suspend and resume; Hibernate and awake

Landscapes

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

Abstract

전자 장치가 개시된다. 본 전자 장치는 복수의 코어 CPU를 포함하는 멀티코어 프로세서, 멀티코어 프로세서의 제어 명령에 따라 동작하는 복수의 주변장치, 복수의 어플리케이션 모드 중 현재 어플리케이션 모드에 대한 정보 및 복수의 어플리케이션 모드별 복수의 코어 CPU 각각에 할당된 주변 장치의 정보를 저장하는 메모리를 포함하고, 멀티코어 프로세서는, 부팅시에 메모리에 저장된 현재 어플리케이션 모드에 대한 정보에 기초하여 현재 어플리케이션 모드를 결정하고, 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 할당한다.

Description

멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치{METHOD FOR PERIPHERAL DEVICE SHARING USING MULTI-CORE PROCESSOR AND ELECTRONIC APPARATUS USING SAME}
본 개시는 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치에 관한 것으로, 구체적으로 어플리케이션 모드별로 각 코어 CPU에 주변 장치를 동적으로 할당할 수 있는 주변 장치 공유 방법 및 이를 이용하는 전자 장치에 관한 것이다.
멀티코어 프로세서는 두개 이상의 코어 CPU를 하나의 패키지로 통합한 것으로, 멀티코어 프로세서 내의 각 코어 CPU는 주변 장치(예를 들어, CAN, CAN-FD, 이더넷 등)를 공유할 수 있으며 코어 CPU의 용도에 따라 각각 주변장치를 사전에 할당하여 사용할 수 있다.
그러나, 기존의 멀티코어 프로세서는 부팅 과정에서 각 코어 CPU가 자신에게 할당된 주변 장치를 소프트웨어를 이용하여 초기화하여 사용하므로, 소프트웨어를 업그레이드하기 전에는 각 코어 CPU에 할당된 주변장치를 변경할 수 없었다.
이러한 점에서, 기존에는 멀티코어 프로세서 내의 주변 장치의 활용에 어려움이 있었다.
따라서 본 개시는 상술한 바와 같은 문제점을 해결하기 위한 고안된 것으로, 어플리케이션 모드별로 각 코어 CPU에 주변 장치를 동적으로 할당할 수 있는 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치를 제공하는 데 있다.
본 개시는 이상과 같은 목적을 달성하기 위한 것으로, 본 전자 장치는 복수의 코어 CPU를 포함하는 멀티코어 프로세서, 상기 멀티코어 프로세서의 제어 명령에 따라 동작하는 복수의 주변장치, 및 복수의 어플리케이션 모드 중 현재 어플리케이션 모드에 대한 정보 및 상기 복수의 어플리케이션 모드별 상기 복수의 코어 CPU 각각에 할당된 주변 장치의 정보를 저장하는 메모리를 포함하고, 상기 멀티코어 프로세서는 부팅시에 상기 메모리에 저장된 현재 어플리케이션 모드에 대한 정보에 기초하여 현재 어플리케이션 모드를 결정하고, 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 할당한다.
이 경우, 상기 복수의 코어 CPU 중 제1 코어 CPU는 어플리케이션 모드의 전환을 결정하고, 어플리케이션 모드의 전환이 결정되면 다른 코어 CPU에 어플리케이션 모드의 전환을 요청하고, 다른 코어 CPU로부터 어플리케이션 모드의 전환 응답을 수신하면 전환될 어플리케이션 모드에 대한 정보를 상기 메모리에 저장할 수 있다.
이 경우, 상기 복수의 코어 CPU 각각은 상기 메모리에 저장된 현재 어플리케이션 모드에 대한 정보 및 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에 사용할 주변 장치를 초기화를 수행할 수 있다.
이 경우, 상기 복수의 코어 CPU 각각은 현재 어플리케이션 모드 및 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 확인하고, 기존에 사용하지 않던 신규 주변 장치가 할당되면, 상기 신규 주변 장치에 대한 초기화를 수행할 수 있다.
한편, 상기 제1 코어 CPU는 전환될 어플리케이션 모드에 대한 정보가 메모리에 저장되면, 멀티코어 프로세서의 재시작을 수행할 수 있다.
한편, 상기 주변 장치는 CAN, CAN-FD, 이더넷 중 적어도 하나를 포함할 수 있다.
한편, 본 개시의 일 실시 예에 따른 복수의 코어 CPU를 포함하는 멀티코어 프로세서에서의 주변 장치 공유 방법은 부팅시에 메모리에 저장된 현재 어플리케이션 모드에 대한 정보에 기초하여 현재 어플리케이션 모드를 결정하는 단계, 상기 메모리에 저장된, 상기 복수의 어플리케이션 모드별 상기 복수의 코어 CPU 각각에 할당된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 할당하는 단계, 및 복수의 코어 CPU 각각이 할당된 주변 장치를 초기화하는 단계를 포함한다.
이 경우, 본 주변장치 공유 방법은 상기 복수의 코어 CPU 중 제1 코어 CPU가 어플리케이션 모드의 전환을 결정하는 단계, 상기 제1 코어 CPU가 어플리케이션 모드의 전환이 결정되면 다른 코어 CPU에 어플리케이션 모드의 전환을 요청하는 단계, 다른 코어 CPU로부터 어플리케이션 모드의 전환 응답을 수신하면, 상기 제1 코어 CPU가 전환될 어플리케이션 모드에 대한 정보를 상기 메모리에 저장하는 단계를 더 포함할 수 있다.
이 경우, 본 주변 장치 공유 방법은 상기 복수의 코어 CPU 각각이 상기 메모리에 저장된 현재 어플리케이션 모드에 대한 정보 및 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에 사용할 주변 장치를 초기화를 수행하는 단계를 더 포함할 수 있다.
이 경우, 상기 초기화를 수행하는 단계는 상기 복수의 코어 CPU 각각이 현재 어플리케이션 모드 및 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 확인하고, 기존에 사용하지 않던 신규 주변 장치가 추가 할당되면, 상기 신규 주변 장치에 대한 초기화를 수행할 수 있다.
한편, 본 주변 장치 공유 방법은 전환될 어플리케이션 모드에 대한 정보가 메모리에 저장되면, 상기 제1 코어 CPU가 멀티코어 프로세서의 재시작을 수행할 수 있다.
본 개시에 따른 멀티코어 프로세서는 소프트웨어를 업그레이드하지 않고도 멀티코어 프로세서 내의 각 코어 CPU가 어플리케이션 모드별로 주변 장치를 동적으로 할당받아 사용할 수 있게 되어, 멀티코어 프로세서 내의 주변 장치의 활용성을 극대화할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 도시한 블럭도,
도 2는 본 개시의 일 실시 예에 따른 제1 어플리케이션 모드를 설명하기 위한 도면,
도 3은 본 개시의 일 실시 예에 따른 제2 어플리케이션 모드를 설명하기 위한 도면, 그리고,
도 4는 본 개시의 일 실시 예에 따른 주변장치의 공유 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시에 대해서 자세하게 설명한다. 본 개시에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 개시 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 개시에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다.
본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 개시에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 개시에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
이하에서는 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 도시한 블럭도이다.
도 1을 참조하면, 전자 장치(100)는 메모리(110), 주변 장치(120), 및 멀티 코어 프로세서(130)를 포함할 수 있다. 이러한 전자 장치는 PC, 노트북, 서버와 같은 장치뿐만 아니라, 차량용 전자 장치 등일 수 있다.
메모리(110)는 전자 장치(100)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 구체적으로, 메모리(110)에는 본 개시의 다양한 실시 예에 따라 전자 장치(100)가 동작하기 위한 각종 프로그램(또는 소프트웨어) 등이 저장될 수 있다.
이러한 메모리(110)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다.
그리고 메모리(110)는 현재 어플리케이션 모드에 대한 정보(이하, 모드 정보), 복수의 어플리케이션 모드별 복수의 코어 CPU에 할당되는 주변 장치의 정보(이하, 주변 장치 정보)를 저장할 수 있다.
여기서 모드 정보는 현재 전자 장치의 어플리케이션 모드(또는 상태)를 나타내는 정보이다. 그리고 어플리케이션 모드는 노멀 모드, 진단 모드, 업그레이드 모드 등이 있을 수 있다. 여기서 노멀 모드, 진단 모드, 업그레이드 모드라는 용어는 예시에 불가하며, 각 코어 CPU에 할당되어야 하는 주변 장치의 상태에 따른 복수의 모드일 수 있다. 또한, 상술한 3개의 어플리케이션 모두 중 일부만이 사용될 수도 있다. 본 개시에 일 실시 예에 따른 어플리케이션 모드의 성격 및 동작에 대해서는 도 2 및 도 3을 참조하여 후술한다.
그리고 주변 장치의 모드는 각 어플리케이션 모드별 각 CPU에 할당되는(또는 할당되어야 하는) 주변 장치의 정보를 저장하는 정보이다. 예를 들어, 노멀 모드시에는 제1 코어 CPU가 이더넷을 이용하고, 진단 모드시에는 제2 코어 CPU가 이더넷을 이용하는 경우, 노멀 모드시에 제1 코어에는 이더넷이 할당되고, 진단 모드시에는 제2 코어에 이더넷이 할당되어야 한다는 정보가 저장될 수 있다. 한편, 이상에서는 코어 CPU를 기준으로 할당되는 주변 장치의 정보가 저장되는 것으로 설명하였지만, 구현시에는 주변 장치를 기준으로 코어 CPU 정보가 저장될 수 있다.
주변 장치(120)는 멀티코어 프로세서의 제어 명령에 따라 동작한다. 구체적으로, 주변 장치는 다른 장치와의 통신을 위한 CAN(Controller Area Network), CAN-FD, 이더넷 등일 수 있다. 여기서 CAN은 차량 내의 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위한 통신 규격이고, CAN-FD는 CAN 방식을 유지하면서도 최대 전송률, 최대 정보 크기가 개선된 신규 통신 규격이다. 또한, 상술한 주변 장치들뿐만 아니라, Flexray, 근거리 통신망, 무선 통신(WiFi 802.11a/b/g/n, NFC, Bluetooth), 4G, 5G 등이 이용될 수도 있다.
한편, 본 개시에서는 주변 장치의 예로 통신망만을 들었지만, 구현시에는 CAN과 같은 통신 규격을 통하여 연결되는 다른 장치(예를 들어, EMS ECU, TMS ECU, ABS ECU, 음향 장치, 조명 장치 등)가 될 수도 있다.
멀티 코어 프로세서(130)는 전자 장치(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(150)는 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 이러한 프로세서(150)는 CPU(central processing unit), ASIC(application-specific integrated circuit), ECU(electronic control unit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 장치로 구성될 수도 있다.
이러한 멀티 코어 프로세서(multi-core processor)(130)는 두 개 이상의 독립 코어(또는 코어 CPU)를 하나의 패키지로 통합한 것이다. 즉, 이러한 코어 CPU 각각은 서로 독립적인 연산 처리 또는 제어 동작을 수행하는 것이 가능하다.
멀티 코어 프로세서(130)는 초기 부팅시에 메모리(110)에 저장된 인스트럭션을 기초로 부팅 동작을 수행할 수 있으며, 부팅 동작시에 메모리(110)에 저장된 모드 정보, 주변 장치 정보를 이용하여 각 코어 CPU에 할당될 주변 장치를 할당할 수 있다.
구체적으로, 멀티 코어 프로세서(130)는 부팅시에 메모리(110)에 저장된 모드 정보에 기초하여 현재 어플리케이션 모드를 확인하고, 주변 장치 정보와 확인된 어플리케이션 모드에 기초하여 각 코어 CPU에 할당될 주변 장치를 확인하여 주변 장치를 할당할 수 있다.
한편, 이와 같은 할당 동작은 멀티 코어 프로세서(130) 내의 코어 CPU와 구분되는 별도의 컨트롤러에서 수행될 수 있으며, 복수의 코어 CPU 중 하나가 수행하거나, 복수의 코어 CPU 각각이 개별적으로 수행할 수 있다.
예를 들어, 복수의 코어 CPU가 개별적으로 할당 동작을 수행하는 경우, 각 코어 CPU는 메모리(110)에 저장된 모드 정보에 기초하여 현재 어플리케이션 모드를 확인하고, 확인된 어플리케이션 모드와 저장된 주변 장치 정보를 이용하여 자신이 이용할 주변 장치를 확인할 수 있다. 그리고 각 코어 CPU는 자신이 이용할 주변 장치에 대한 초기화를 수행함으로써 상술한 바와 같은 주변 장치의 할당을 수행할 수 있다.
주변 장치의 할당이 완료되면, 각 코어 CPU는 자신에게 할당된 주변 장치를 초기화를 수행하고, 각 주변 장치를 이용한 동작을 수행할 수 있다.
그리고 멀티 코어 프로세서(130)는 어플리케이션 모드의 전환이 필요한지 판단하고, 모드 전환이 필요하면, 어플리케이션 모드의 전환을 수행할 수 있다. 이와 같은 동작은 상술한 바와 같이 멀티 코어 프로세서(130) 내의 별도의 컨트롤러가 수행할 수도 있으며, 복수의 코어 CPU 중 어느 하나가 수행할 수 있다.
예를 들어, 복수의 코어 CPU 중 제1 코어 CPU가 에러를 감지하여, 주변 장치 등에 대한 진단이 필요하다고 판단하면, 제1 코어 CPU는 어플리케이션 모드를 진단 모드로 전환하여야 함을 판단할 수 있다.
이와 같은 판단을 하게 되면, 제1 코어 CPU는 다른 코어 CPU(예를 들어, 제2 코어 CPU)에 어플리케이션 모드의 전환이 필요함을 알리고, 다른 코어 CPU는 이러한 전환 요청이 수신되면, 현재 진행중인 작업을 종료하고 전환이 가능한 상태가 되면, 전환이 가능함을 제1 코어 CPU에 통지할 수 있다.
어플리케이션 모드의 전환이 가능하다는 응답을 받은 제1 코어 CPU는 메모리(110)에 저장된 모드 정보를 변경될 어플리케이션 모드(예를 들어, 진단 모드)에 대응되게 수정할 수 있다.
이와 같이 메모리(110)의 모드 정보가 변경되면, 각 코어 CPU는 초기 부팅과정도 동일하게 현재 동작 모드를 확인하고, 각 동작 모드 및 자신에게 할당된 주변 장치를 이용하기 위한 초기화 동작을 수행할 수 있다. 예를 들어, 제2 코어 CPU가 노멀 모드시에 제1 주변장치만을 이용하나, 진단 모드시에 제1 및 제2 주변 장치를 이용하는 것으로 주변 장치 정보가 저장되어 있는 경우, 제2 코어 CPU는 기존에 사용하는 제1 주변장치에 대한 초기화 동작을 수행하지 않고, 제2 주변 장치에 대해서만 자신이 이용하는 것으로 초기화 동작을 수행할 수 있다. 한편, 구현시에는 상술한 기존에 사용하는 주변 장치와 상관없이 모든 주변 장치에 대한 초기화 동작을 수행할 수도 있다.
또한, 구현시에는 상술한 바와 같은 주변 장치에 대한 초기화 동작 대신에 어플리케이션 모드의 전환이 필요한 경우, 재부팅 동작이 수행될 수도 있다.
이상과 같이 본 실시 예에 따른 전자 장치는 소프트웨어를 업그레이드하지 않고도 멀티코어 프로세서 내의 각 코어 CPU가 어플리케이션 모드별로 주변 장치를 동적으로 할당받아 사용할 수 있게 되어, 멀티코어 프로세서 내의 주변 장치의 활용성을 극대화할 수 있다.
한편, 도 1을 도시하고 설명함에 있어서, 전자 장치(100) 내에 메모리(110), 주변 장치(120) 및 멀티코어 프로세서(130)만이 포함되는 것으로 도시하고 설명하였지만, 구현시에는 상술한 구성 이외에 다른 구성이 추가되어 이용될 수 있다. 또한, 도 1에서는 메모리(110)가 멀티코어 프로세서(130) 외부에 존재하는 것으로 도시하고 설명하였지만, 구현시에는 상술한 모드 정보, 주변 장치 정도 등은 멀티코어 프로세서(130) 내부의 캐쉬 등에 저장되어 있을 수도 있다.
도 2는 본 개시의 일 실시 예에 따른 제1 어플리케이션 모드를 설명하기 위한 도면이다. 구체적으로, 도 2는 노멀 모드시에 동작을 설명하기 위한 도면이다.
도 2를 참조하면, 멀티 코어 프로세서(130)는 제1 코어 CPU(130-1) 및 제2 코어 CPU(130-2)를 포함하며, 4개의 주변 장치(120-1, 120-2, 120-3, 120-4)를 이용한다. 한편, 도 2에서는 두개의 코어 CPU(130-1, 130-2)만을 포함하는 것으로 도시하고 설명하나, 이는 예시에 불가하고, 멀티 코어 프로세서(130)는 세 개 이상의 코어 CPU를 포함할 수 있다. 또한, 주변 장치도 4개를 이용하는 것으로 도시하나, 구현시에는 2개 또는 3개일 수 있으며, 5개 이상일 수도 있다.
도 2의 전자 장치(100)가 일반적인 상태로 동작할 때를 의미하며, 예를 들어, 전자 장치(100)가 차량에 탑재되어 있는 경우, 차량 운행 상태일 수 있다.
이와 같은 일반 모드 상태에서는 제1 코어 CPU(130-1)에 제1 및 제2 주변 장치(120-1, 120-2)가 할당되며, 제2 코어 CPU(130-2)에는 제3 및 제4 주변 장치(120-3, 120-4)가 할당되어 있을 수 있다. 이와 같은 일반 모드에서의 이용할 주변 장치의 정보는 도시된 바와 같이 메모리(110)에 저장되어 있을 수 있다.
따라서, 초기 부팅시에 메모리(110)에 저장된 주변 장치의 정보를 이용하여, 각 코어 CPU(130-1, 130-2)는 현재 노멀 모드 및 자신에게 할당된 주변 장치를 이용하여 할당 동작을 수행할 수 있다. 예를 들어, 제1 코어 CPU(130-1)는 초기 부팅 과정에서 현재 어플리케이션 모드가 노멀 모드임을 확인하고, 주변 장치 정보를 이용하여 노멀 모드시에 자신에게 할당된 제1 주변 장치(120-1)와 제2 주변 장치(120-2)를 확인할 수 있다. 그리고 제1 코어 CPU(130-1)는 제1 주변 장치(120-1)와 제2 주변 장치(120-2)에 대한 초기화를 수행함으로써, 제1 주변 장치(120-1)와 제2 주변 장치(120-2)를 할당받아 이용할 수 있다. 그리고 제2 코어 CPU(130-2) 역시 동일한 형태로 제3 주변 장치(120-3) 및 제4 주변 장치(120-4)에 대한 할당(또는 초기화) 동작을 수행할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 제2 어플리케이션 모드를 설명하기 위한 도면이다. 구체적으로, 도 3은 진단 모드시에 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 멀티 코어 프로세서(130)가 포함하는 코어 CPU(130-1, 130-2)와 주변 장치(120-1, 120-2, 120-3, 120-4)는 도 2와 동일한바 이에 대한 설명은 생략한다.
진단 모드는 전자 장치의 상태를 점검하는 경우의 모드를 의미하며, 예를 들어, 전자 장치(100)가 차량에 탑재되어 있는 경우, 차량 진단 모드인 경우일 수 있다. 한편, 이러한 진단 모드라는 용어 및 동작은 일 예에 불가하며, 노멀 모드 시와는 다른 형태로 주변 장치의 할당이 필요한 경우라면 어떠한 명칭 또는 어떠한 용도일 수 있다.
예를 들어, 제2 주변 장치(120-2)가 이더넷인 경우, 노멀 모드시에는 제1 코어 CPU(130-1)가 할당받아 이용하나, 진단 모드시에는 제2 코어 CPU(130-2)가 할당받아 이용하는 경우를 이하에서는 상정한다.
이와 같은 진단 모드에서는 제1 코어 CPU(130-1)에 제1 주변 장치가 할당되며, 제2 코어 CPU(130-2)에는 제2, 제3 및 제4 주변 장치(120-2,120-2, 120-3)가 할당되어 있을 수 있다. 이와 같은 일반 모드에서의 이용할 주변 장치의 정보는 도시된 바와 같이 메모리(110)에 저장되어 있을 수 있다.
따라서, 초기 부팅시에 메모리(110)에 저장된 주변 장치의 정보를 이용하여, 각 코어 CPU(130-1, 130-2)는 현재 노멀 모드 및 자신에게 할당된 주변 장치를 이용하여 할당 동작을 수행할 수 있다. 예를 들어, 제2 코어 CPU(130-2)는 초기 부팅 과정에서 현재 어플리케이션 모드가 진단 모드임을 확인하고, 주변 장치 정보를 이용하여 진단 모드시에 자신에게 할당된 제2 내지 제4 주변 장치(120-2, 120-3, 120-4)를 확인할 수 있다. 그리고 제2 코어 CPU(130-2)는 제2 내지 제4 주변 장치(120-2, 120-3, 120-4)에 대한 초기화를 수행함으로써, 제2 내지 제4 주변 장치(120-2, 120-3, 120-4)를 할당받아 이용할 수 있다. 그리고 제1 코어 CPU(130-1) 역시 동일한 형태로 제1 주변 장치(120-1)에 대한 할당(또는 초기화) 동작을 수행할 수 있다.
이하에서는 도 2 및 도 3을 같이 참조하여, 어플리케이션 모드의 전환 과정(예를 들어, 노멀 모드에서 진단 모드로의 전환 동작)에 대해서 설명한다.
이하에서는, 일반 모드에서는 제1 코어 CPU(130-1)가 이더넷 장치(120-2)를 할당받아 이용하나, 진단 모드에서는 제2 코어 CPU(130-2)가 이더넷 장치(120-2)를 할당받아 이용하여야 하는 경우를 가정한다.
제2 코어 CPU(130-2)가 이더넷 장치(120-2)의 이용이 필요한 경우, 제2 코어 CPU는 어플리케이션 모드의 전환이 필요함을 확인할 수 있다. 이러한 전환 필요에 대한 확인은 하나의 코어 CPU가 전담하여 판단할 수도 있고, 각 코어 CPU에서 개별적으로 확인할 수 있다. 이하에서는 제2 코어 CPU(130-2)에서 이러한 필요가 있음을 확인한 경우를 가정한다.
제2 코어 CPU(130-2)는 어플리케이션 모드를 현재 노멀 모드에서 진단 모드로 전환이 필요함을 확인한 경우(예를 들어, 제2 코어 CPU(130-2)가 이더넷 사용이 필요한 상황이나, 현재 이더넷을 할당받지 못하고, 이더넷 사용이 가능한 모드가 진단 모드인 경우), 제2 코어 CPU(130-2)는 제1 코어 CPU(130-1)에 어플리케이션 모드의 전환이 필요함을 알릴 수 있다. 이와 같은 요청을 받는 제1 코어 CPU(130-1)는 어플리케이션 모드의 전환이 가능한 상태가 되면(즉, 현재 작업 중인 동작을 완료 또는 중단), 제2 코어 CPU(130-2)에 전환 응답을 알릴 수 있다.
전환 응답을 수신한 제2 코어 CPU(130-2)는 변경할 어플리케이션 모드를 메모리(110)에 저장할 수 있다. 이와 같이 메모리(110)에 어플리케이션 모드가 변경되어 저장되면, 각 코어 CPU(130-1, 130-2)는 변경된 어플리케이션 모드에 따른 주변 장치의 초기화를 수행할 수 있다. 한편, 이와 같은 전환 동작은 다양하게 수행될 수 있는데, 예를 들어, 각 코어 CPU(130-1, 130-2)는 일정시간 주기 단위로 메모리(110)에 저장된 어플리케이션 모드를 확인하여 주변 장치의 전환을 확인하거나, 상술한 바와 같은 어플리케이션 모드의 전환을 확인한 코어 CPU(130-2)가 다른 코어 CPU(130-1)에 전환 동작을 수행하라는 요청에 따라 수행할 수도 있다.
이와 같은 전환 동작에 따라 제2 코어 CPU(130-2)는 이더넷을 추가 할당받아 동작할 수 있으며, 이더넷을 이용한 동작이 완료되면, 즉, 진단 모드에서 노멀 모드로 전환으로 돌아가야 하는 경우, 앞서 설명한 바와 같이 변경할 어플리케이션 모드를 메모리(110)에 저장하는 등의 상술한 과정을 수행할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 주변장치의 공유 방법을 설명하기 위한 흐름도이다.
먼저, 부팅시에 메모리에 저장된 현재 어플리케이션 모드에 대한 정보에 기초하여 현재 어플리케이션 모드를 결정한다(S410).
그리고 메모리에 저장된, 복수의 어플리케이션 모드별 복수의 코어 CPU 각각에 할당된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 할당한다(S420).
그리고 복수의 코어 CPU 각각이 할당된 주변 장치를 초기화하여 각 코어 CPU에 할당된 주변 장치를 이용할 수 있다(S430).
한편, 이와 같은 할당 상태에서 어플리케이션 모드의 전환이 필요하면, 구체적으로, 복수의 코어 CPU 중 제1 코어 CPU가 어플리케이션 모드의 전환을 결정할 수 있다. 그리고 제1 코어 CPU가 어플리케이션 모드의 전환이 결정되면 다른 코어 CPU에 어플리케이션 모드의 전환을 요청하고, 다른 코어 CPU로부터 어플리케이션 모드의 전환 응답을 수신하면, 제1 코어 CPU가 전환될 어플리케이션 모드에 대한 정보를 메모리에 저장할 수 있다.
그리고 복수의 코어 CPU 각각이 메모리에 저장된 현재 모드 정보 및 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에 사용할 주변 장치를 초기화를 수행할 수 있다. 이때, 초기화는 복수의 코어 CPU 각각이 현재 어플리케이션 모드 및 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 확인하고, 기존에 사용하지 않던 신규 주변 장치가 추가 할당되면, 신규 주변 장치에 대해서만 초기화를 수행하거나, 모든 주변 장치에 대한 초기화를 수행할 수도 있다.
따라서, 상술한 바와 같은 주변 장치 공유 방법은 소프트웨어를 업그레이드하지 않고도 멀티코어 프로세서 내의 각 코어 CPU가 어플리케이션 모드별로 주변 장치를 동적으로 할당받아 사용할 수 있게 되어, 멀티코어 프로세서 내의 주변 장치의 활용성을 극대화할 수 있다.
또한, 상술한 바와 같은 주변 장치 공유 방법은 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 처리 동작들을 수행할 수 있다.
이러한 기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다.
이상 첨부 도면을 참고하여 본 개시에 대해서 설명하였지만 본 개시의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시 예 및/또는 도면에 제한되는 것으로 해석되어서는 안 된다. 그리고 특허청구범위에 기재된 개시의, 당업자에게 자명한 개량, 변경 및 수정도 본 개시의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
100: 전자 장치 110: 메모리
120: 주변 장치 130: 멀티코어 프로세서

Claims (11)

  1. 전자 장치에 있어서,
    복수의 코어 CPU를 포함하는 멀티코어 프로세서;
    상기 멀티코어 프로세서의 제어 명령에 따라 동작하는 복수의 주변장치; 및
    복수의 어플리케이션 모드 중 현재 어플리케이션 모드에 대한 정보 및 상기 복수의 어플리케이션 모드별 상기 복수의 코어 CPU 각각에 할당된 주변 장치의 정보를 저장하는 메모리;를 포함하고,
    상기 멀티코어 프로세서는,
    부팅시에 상기 메모리에 저장된 현재 어플리케이션 모드에 대한 정보에 기초하여 현재 어플리케이션 모드를 결정하고, 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 할당하는 전자 장치.
  2. 제1항에 있어서,
    상기 복수의 코어 CPU 중 제1 코어 CPU는,
    어플리케이션 모드의 전환을 결정하고, 어플리케이션 모드의 전환이 결정되면 다른 코어 CPU에 어플리케이션 모드의 전환을 요청하고, 다른 코어 CPU로부터 어플리케이션 모드의 전환 응답을 수신하면 전환될 어플리케이션 모드에 대한 정보를 상기 메모리에 저장하는 전자 장치.
  3. 제2항에 있어서,
    상기 복수의 코어 CPU 각각은,
    상기 메모리에 저장된 현재 어플리케이션 모드에 대한 정보 및 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에 사용할 주변 장치를 초기화를 수행하는 전자 장치.
  4. 제3항에 있어서,
    상기 복수의 코어 CPU 각각은,
    현재 어플리케이션 모드 및 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 확인하고, 기존에 사용하지 않던 신규 주변 장치가 할당되면, 상기 신규 주변 장치에 대한 초기화를 수행하는 전자 장치.
  5. 제2항에 있어서,
    상기 제1 코어 CPU는,
    전환될 어플리케이션 모드에 대한 정보가 메모리에 저장되면, 멀티코어 프로세서의 재시작을 수행하는 전자 장치.
  6. 제1항에 있어서,
    상기 주변 장치는,
    CAN, CAN-FD, 이더넷 중 적어도 하나를 포함하는 전자 장치.
  7. 복수의 코어 CPU를 포함하는 멀티코어 프로세서에서의 주변 장치 공유 방법에 있어서,
    부팅시에 메모리에 저장된 현재 어플리케이션 모드에 대한 정보에 기초하여 현재 어플리케이션 모드를 결정하는 단계;
    상기 메모리에 저장된, 상기 복수의 어플리케이션 모드별 상기 복수의 코어 CPU 각각에 할당된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 할당하는 단계; 및
    복수의 코어 CPU 각각이 할당된 주변 장치를 초기화하는 단계;를 포함하는 주변 장치 공유 방법.
  8. 제7항에 있어서,
    상기 복수의 코어 CPU 중 제1 코어 CPU가 어플리케이션 모드의 전환을 결정하는 단계;
    상기 제1 코어 CPU가 어플리케이션 모드의 전환이 결정되면 다른 코어 CPU에 어플리케이션 모드의 전환을 요청하는 단계;
    다른 코어 CPU로부터 어플리케이션 모드의 전환 응답을 수신하면, 상기 제1 코어 CPU가 전환될 어플리케이션 모드에 대한 정보를 상기 메모리에 저장하는 단계;를 더 포함하는 주변 장치 공유 방법.
  9. 제8항에 있어서,
    상기 복수의 코어 CPU 각각이 상기 메모리에 저장된 현재 어플리케이션 모드에 대한 정보 및 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에 사용할 주변 장치를 초기화를 수행하는 단계;를 더 포함하는 주변 장치 공유 방법.
  10. 제9항에 있어서,
    상기 초기화를 수행하는 단계는,
    상기 복수의 코어 CPU 각각이 현재 어플리케이션 모드 및 상기 저장된 주변 장치의 정보에 기초하여 각 코어 CPU에서 사용할 주변 장치를 확인하고, 기존에 사용하지 않던 신규 주변 장치가 추가 할당되면, 상기 신규 주변 장치에 대한 초기화를 수행하는 주변 장치 공유 방법
  11. 제8항에 있어서,
    전환될 어플리케이션 모드에 대한 정보가 메모리에 저장되면, 상기 제1 코어 CPU가 멀티코어 프로세서의 재시작을 수행하는 주변 장치 공유 방법.

KR1020210189764A 2021-12-28 2021-12-28 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치 KR102608939B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210189764A KR102608939B1 (ko) 2021-12-28 2021-12-28 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210189764A KR102608939B1 (ko) 2021-12-28 2021-12-28 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치

Publications (2)

Publication Number Publication Date
KR20230100136A KR20230100136A (ko) 2023-07-05
KR102608939B1 true KR102608939B1 (ko) 2023-12-01

Family

ID=87159266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210189764A KR102608939B1 (ko) 2021-12-28 2021-12-28 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치

Country Status (1)

Country Link
KR (1) KR102608939B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052713A (ja) 2006-07-25 2008-03-06 Ntt Docomo Inc ペリフェラル切替装置及びペリフェラル切替制御装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101522477B1 (ko) * 2010-08-20 2015-05-21 인터내셔널 비지네스 머신즈 코포레이션 시뮬레이션 방법, 시스템 및 프로그램
KR102377729B1 (ko) * 2016-12-08 2022-03-24 한국전자통신연구원 멀티 코어 프로세서 및 그것의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052713A (ja) 2006-07-25 2008-03-06 Ntt Docomo Inc ペリフェラル切替装置及びペリフェラル切替制御装置

Also Published As

Publication number Publication date
KR20230100136A (ko) 2023-07-05

Similar Documents

Publication Publication Date Title
US11128555B2 (en) Methods and apparatus for SDI support for automatic and transparent migration
US6874060B2 (en) Distributed computer system including a virtual disk subsystem and method for providing a virtual local drive
US7581229B2 (en) Systems and methods for supporting device access from multiple operating systems
US7970974B2 (en) Method and system for adding or removing a logical unit of a USB mass storage device
US7886183B2 (en) Providing fault tolerant storage system to a cluster
JP4474378B2 (ja) ロックステップ及びフリーステップの両プロセッサモードによる計算処理
JP5272709B2 (ja) アドレス割当方法、コンピュータ、物理マシン、プログラム、及びシステム
US9531668B2 (en) Micro server, method of allocating MAC address, and computer readable recording medium
JP6368434B2 (ja) Pld管理方法及びpld管理システム
US20170199694A1 (en) Systems and methods for dynamic storage allocation among storage servers
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
US20090235249A1 (en) Virtual computer system and method of controlling the same
JP6464777B2 (ja) 情報処理装置及びプログラム
JP2011527047A (ja) 分散型raidと関連するアプリケーションの実行のための方法およびシステム
JP6079065B2 (ja) 情報処理装置,処理方法及びプログラム
JP6777050B2 (ja) 仮想化システム、仮想化プログラム、及び、記憶媒体
KR102608939B1 (ko) 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치
US11023139B2 (en) System for speculative block IO aggregation to reduce uneven wearing of SCMs in virtualized compute node by offloading intensive block IOs
JP6653786B2 (ja) I/o制御方法およびi/o制御システム
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
JP2004152156A (ja) インタフェース変換装置
JP5699665B2 (ja) サーバ装置、処理実行方法およびプログラム
US12001332B2 (en) Runtime de-interleave and re-interleave of system memory
US20240211396A1 (en) Runtime de-interleave and re-interleave of system memory
US11989081B2 (en) Method for CXL fallback in a CXL system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant