KR20170013872A - 멀티­프로세서 코어 디바이스들에 대한 디바이스 핀 소유권을 할당하기 위한 디바이스 및 방법 - Google Patents

멀티­프로세서 코어 디바이스들에 대한 디바이스 핀 소유권을 할당하기 위한 디바이스 및 방법 Download PDF

Info

Publication number
KR20170013872A
KR20170013872A KR1020167032801A KR20167032801A KR20170013872A KR 20170013872 A KR20170013872 A KR 20170013872A KR 1020167032801 A KR1020167032801 A KR 1020167032801A KR 20167032801 A KR20167032801 A KR 20167032801A KR 20170013872 A KR20170013872 A KR 20170013872A
Authority
KR
South Korea
Prior art keywords
pin
peripheral
processor
logic
multiplexer
Prior art date
Application number
KR1020167032801A
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 마이크로칩 테크놀로지 인코포레이티드
Publication of KR20170013872A publication Critical patent/KR20170013872A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1731Optimisation thereof
    • H03K19/1732Optimisation thereof by limitation or reduction of the pin/gate ratio

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Microcomputers (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)

Abstract

임베디드 디바이스는 복수의 프로세서 코어들을 구비하고, 각각의 프로세서 코어는 복수의 주변 디바이스들을 구비하고, 여기서 각각의 주변 디바이스는 출력부를 갖는다. 게다가, 복수의 할당 가능 외부 핀들을 구비한 하우징과 각각의 할당 가능 외부 핀에 대한 보호 핀 소유 로직(protected pin ownership logic)이 제공되고, 이 보호 핀 소유 로직은 관련 할당 가능 외부 핀의 출력 기능을 상기 복수의 프로세서 코어들 중 하나에만 할당하도록 프로그램 가능하게 구성된다.

Description

멀티­프로세서 코어 디바이스들에 대한 디바이스 핀 소유권을 할당하기 위한 디바이스 및 방법{DEVICE AND METHOD TO ASSIGN DEVICE PIN OWNERSHIP FOR MULTI-PROCESSOR CORE DEVICES}
관련 특허 출원
본 출원은 2014년 6월 5일 출원된 공동 소유의 미국 가출원 번호 62/008,273 호의 우선이익을 주장하며, 상기 미국 가출원은 모든 목적들을 위해 본 출원에 참조로 통합된다.
기술 분야
본 개시는 멀티-프로세서 코어 디바이스들에 관한 것으로, 특히 멀티-프로세서 코어 마이크로컨트롤러들에 관한 것이다.
마이크로컨트롤러는 시스템 온 칩(a system on a chip)이고, 중앙 처리 유닛(CPU) 외에도 메모리, I/O 포트들 및 복수의 주변기기들을 포함한다. 멀티-코어 마이크로컨트롤러와 같은 멀티-프로세서 코어 디바이스는 한 개의 CPU뿐만 아니라 두 개 이상의 중앙 처리 코어들을 포함한다. 이러한 디바이스는 성능의 증가와 보안의 개선 및 소프트웨어 개발 원조를 제공한다. 임베디드 디바이스들에서, 이 디바이스들은 많은 수의 핀들을 갖는 하우징을 사용하는 것을 필요로 한다.
대부분의 멀티-코어 디바이스들은 대칭형 멀티-프로세서 코어 동작을 목적으로 설계되며 이 경우에 프로세서 코어들은 기능 또는 목적이 "서로 다르지(different)" 않도록 설계된다. 이러한 시스템들은 특정 디바이스 핀을 제어하기 위해 하나의 특정 프로세서 코어를 구비할 필요가 없다. 비대칭 멀티-프로세서 코어를 구비한 다른 디바이스들은, 전형적으로 다른 "코어(들)"를, 디바이스 핀들에 액세스할 필요가 없는 플로팅 포인트(floating point)와 같은 전용 기능들로서 이용한다.
그렇지만, 멀티-프로세서 코어들을 구비한 다른 디바이스들은 상기 특정 디바이스 핀들이 특정 프로세서 코어들에 할당될 수 있는 경우에는 높은 핀 수의 패키지들에서 구현된다.
따라서, 감소된 개수의 외부 핀들을 구비한 멀티-코어 디바이스들이 필요하다.
실시예에 따르면, 임베디드 디바이스는: 복수의 프로세서 코어들 - 각각의 프로세서 코어는 복수의 주변 디바이스들을 포함하고, 각각의 주변 디바이스는 출력부를 포함할 수 있음 -; 복수의 할당 가능 외부 핀들을 포함하는 하우징; 및 각각의 할당 가능 외부 핀에 대한 보호 핀 소유 로직(protected pin ownership logic)을 포함할 수 있고, 상기 보호 핀 소유 로직은 관련 할당 가능 외부 핀의 출력 기능을 상기 복수의 프로세서 코어들 중 하나의 프로세서 코어에만 할당하도록 프로그램 가능하게 구성된다.
추가 실시예에 따르면, 상기 보호 핀 소유 로직은 상기 임베디드 디바이스의 프로세서 코어들만큼 많은 입력부들과 단일 출력부를 갖는 멀티플렉서를 포함할 수 있다. 추가 실시예에 따르면, 상기 보호 핀 소유 로직은 상기 관련 할당 가능 외부 핀의 재할당을 방지하도록 구성된 잠금 로직(locking logic)을 더 포함할 수 있다. 추가 실시예에 따르면, 상기 보호 핀 소유 로직은 멀티플렉서를 통해 프로세싱 코어를 선택하도록 구성된 구성 레지스터를 포함할 수 있다. 추가 실시예에 따르면, 상기 구성 레지스터는 상기 관련 프로세싱 코어의 플래시 메모리에 배치될 수 있다. 추가 실시예에 따르면, 상기 구성 레지스터에 기록하기 위해서는 저정된 기록 시퀀스가 필요할 수 있다. 추가 실시예에 따르면, 각각의 프로세서는 각각의 할당 가능 외부 핀에 대해, 그 프로세서와 관련된 상기 복수의 주변 디바이스들 중 하나의 주변 디바이스의 출력을 선택하도록 구성되는 주변기기 핀 선택 모듈을 포함할 수 있다. 추가 실시예에 따르면, 각각의 주변기기 핀 선택 모듈은 상기 관련 프로세싱 코어에 의해서만 제어될 수 있도록 구성될 수 있다. 추가 실시예에 따르면, 상기 주변기기 핀 선택 모듈은 멀티플렉서를 제어하는 특수 기능 레지스터를 포함할 수 있다. 추가 실시예에 따르면, 각각의 프로세싱 코어는 32 비트 프로세싱 코어일 수 있고, 상기 하우징은 32보다 작거나 같은 개수의 외부 핀들을 포함한다. 추가 실시예에 따르면, 상기 하우징은 28개의 외부 핀들을 포함할 수 있다. 추가 실시예에 따르면, 외부 핀의 입력 기능은 하나보다 많은 주변 디바이스 또는 프로세싱 코어들로 라우팅될 수 있다.
또 하나의 실시예에 따르면, 다중 프로세싱 코어들을 임베디드 디바이스에 배치하기 위한 방법은: 복수의 프로세서 코어들을 하우징에 배치하는 단계 - 각각의 프로세서 코어는 복수의 주변 디바이스들을 포함하고, 각각의 주변 디바이스는 출력부를 포함할 수 있고, 상기 하우징은 복수의 할당 가능 외부 핀들을 포함함 -; 및 관련 할당 가능 외부 핀의 출력 기능을 상기 복수의 프로세서 코어들 중 하나의 프로세서 코어에만 할당하도록 프로그램 가능하게 구성된 보호 핀 소유 로직을 각각의 할당 가능 외부 핀에 제공하는 단계를 포함할 수 있다.
추가 실시예에 따르면, 상기 방법은 상기 보호 핀 소유 로직 내의 멀티플렉서를 제어하는 단계를 포함할 수 있고, 상기 멀티플렉서는 상기 임베디드 디바이스의 프로세서 코어들만큼 많은 입력부들과 단일 출력부를 갖는다. 추가 실시예에 따르면, 상기 방법은 상기 관련 할당 가능 외부 핀의 재할당을 방지하기 위해 상기 보호 핀 소유 로직 내의 잠금 로직을 제어하는 단계를 포함할 수 있다. 추가 실시예에 따르면, 상기 방법은 멀티플렉서를 통해 프로세싱 코어를 선택하기 위해 구성 레지스터를 프로그래밍하는 단계를 포함할 수 있다. 상기 방법의 추가 실시예에 따르면, 상기 임베디드 디바이스의 리셋시, 상기 구성 레지스터에 저장된 핀 구성이 출력을 선택하기 위해 멀티플렉서 제어부에 전송된다. 상기 방법의 추가 실시예에 따르면, 상기 구성 레지스터는 상기 관련 프로세싱 코어의 플래시 메모리에 배치될 수 있다. 상기 방법의 추가 실시예에 따르면, 상기 구성 레지스터에 기록하기 위해서는 지정된 기록 시퀀스가 필요할 수 있다. 상기 방법의 추가 실시예에 따르면, 각각의 프로세서는 각각의 할당 가능 외부 핀에 대해 주변기기 핀 선택 모듈을 포함할 수 있고, 상기 방법은 상기 주변기기 핀 선택 모듈의 멀티플렉서를 통해 그 프로세서와 관련된 상기 복수의 주변 디바이스들 중 하나의 주변 디바이스의 출력을 선택하는 것을 포함한다. 상기 방법의 추가 실시예에 따르면, 각각의 주변기기 핀 선택 모듈은 상기 관련 프로세싱 코어에 의해서만 제어될 수 있도록 구성될 수 있다. 상기 방법의 추가 실시예에 따르면, 외부 핀의 입력 기능은 하나보다 많은 주변 디바이스 또는 프로세싱 코어들로 라우팅될 수 있다.
도 1은 핀 할당 로직의 실시예의 블록도이다.
도 2는 도 1에 따른 주변 핀 선택 모듈의 실시예를 도시한 도면이다.
도 3은 예시적인 듀얼 코어 마이크로컨트롤러의 블록도이다.
다양한 실시예들에 따르면, 한정된 개수의 디바이스 핀들이 애플리케이션 유연성을 유지하면서 디바이스 내의 각각의 프로세서의 주변기기(들)에 할당될 수 있으며, 상기 한정된 개수의 디바이스 핀들은 또 하나의 프로세서의 디바이스 핀(들)의 기능성에 영향을 미치기 위해 하나의 프로세서가 의도하지 않게 간섭하는 것으로부터 보호할 수 있다. 다양한 실시예들에 따르면, 비대칭 멀티-프로세서 코어 디바이스들에 어느 프로세서가 출력 목적으로 특정 디바이스 핀을 소유하는지를 지정하는 능력을 제공하는 방법론이 제공될 수 있다.
주변기기 핀 선택(Peripheral Pin Select; PPS) 기능 모듈로 인해, 소정 외부 핀들이 내부 기능들에 가변적으로 할당될 수 있다. 상기 PPS 모듈은 디바이스의 각각의 프로세서를 위해 디바이스 내의 각각의 기능 핀에 대해 구현된다.
실시예에 따르면, 프로세싱 코어들의 각각의 버스 폭보다 작은 핀들을 갖는 하우징 내에 배치될 수 있는 멀티-프로세서 마이크로컨트롤러가 설계될 수 있다. 따라서, 28 핀 하우징은 예를 들어 듀어 코어 마이크로컨트롤러를 포함할 수 있고, 여기서 각각의 코어는 32 비트 마이크로프로세서 코어이다.
도 1은 예를 들어 (도 1에는 미도시된) 4개의 프로세서 코어들을 갖는 단일 칩 마이크로컨트롤러의 실시예를 보여준다. 복수이지만 한정된 개수의 할당 가능 외부 핀들(150)이 제공된다. 게다가, 이러한 디바이스는 물론 소정의 고정 기능 핀들을 구비할 수 있는데, 예를 들어 전력 공급 핀들과 같은 이 핀들의 기능은 변경될 수 없다. 각각의 프로세서 코어는 각각의 외부 할당 가능 핀을 위해 자신의 주변기기 핀 선택(PPS) 모듈(120a, b, c, d)과 연관된다. 각각의 PPS 모듈(120a, b, c, d)은 각각의 기능 디바이스 핀(150)을 위해 각각의 프로세서에 대한 로직(110)을 포함한다(도 1에 프로세싱 코어당 단 1개가 도시되어 있음). 따라서, 각각의 기능 디바이스 핀(150)과 각각의 프로세싱 코어에 적합한(for) 핀 소유 로직(Pin Ownership Logic; POL) 블록(110)이 있다.
상기 로직은 예를 들어, 디바이스 핀(150)을 구동하기 위해 선택된 주변기기의 출력들을 선택하는 멀티플렉서(140)를 제어하는 구성 레지스터(130)를 포함할 수 있다. 다양한 실시예들에 따르면, 다른 회로망이 어느 프로세서의 주변기기가 실제로 각각의 디바이스 핀(150)에 액세스하는지를 결정할 수 있도록 출력 선택이 반복된다(replicated).
도 1은 4개의 예시적인 주변 디바이스들을 보여주며, 여기서 주변 디바이스들의 각각은 4개의 프로세싱 코어들 중 하나에 의해 소유된다. 하지만, 각각의 프로세싱 코어는 복수의 주변 디바이스들 또는 모듈들을 포함할 수 있다. 주변 디바이스들은 입력 및/또는 출력 기능성을 구비할 수 있다. 입력들은 다양한 주변기기들, 심지어는 서로 다른 프로세싱 코어들과 연관된 주변기기들로 라우팅될 수 있지만, 단지 하나의 선택된 주변 디바이스의 하나의 출력 기능성만이 외부 핀에 할당될 수 있는데, 그 이유는 그렇지 않으면 충돌 또는 경합이 발생하기 때문이다. 프로세싱 코어와 연관된 I/O 포트는 다양한 실시예들에 따른 주변 디바이스 또는 모듈로 간주될 수 있고, 따라서 그것의 출력 기능성이 외부 핀에 할당될 수 있다.
도 1의 특정 실시예에서, 제 1 주변기기(170)는 CPU 1과 관련되고, 제 2 주변기기(175)는 CPU 2과 관련되고, 제 3 주변기기(180)는 CPU 3과 관련되고, 그리고 제 4 주변기기는 CPU 4와 관련된다. 각각의 주변기기 핀 선택 모듈들(120a, b, c, d)은 복수의 주변기기들 중 하나를 선택하도록 프로그램된다. 도 1은 단지 선택된 주변기기만을 보여준다. 하지만, 각각의 PPS 모듈(120)이 실제로 그의 주변 디바이스들의 풀(pool)로부터 주변 디바이스 또는 모듈을 실제로 선택하도록 설계되기 때문에, 각각의 PPS 모듈(120)은 도 2에 대해 보다 상세하게 설명되는 바와 같이 관련 CPU의 복수의 주변 디바이스들 또는 모듈들에 연결될 수 있다.
도 1은 또한 표시된 블록(110)으로, 디바이스 내의 각각의 기능 핀(150)과 연관되는 POL(핀 소유 로직) 로직의 전형적인 예를 보여준다. 각각의 핀(150)은 예를 들어 (플래시 메모리와 같은) 보호 메모리에 위치한 구성 비트들(130)에 의해 제어되는 멀티플렉서(140)를 구비한다. 이 구성 비트들(130)은 어느 프로세서가 특정 디바이스 핀(150) 상의 출력에 액세스하는지를 지정하기 위해 사용자에 의해 프로그램된다. 구성 비트들(130)은 각각의 멀티플렉서들(140)을 제어하며 각각의 멀티플렉서들(140)은 선택된 프로세서에 의해 소유되는 미리 선택된 주변기기로부터 데이터를 선택한다. 이 POL 블록(110)은 각각의 기능 디바이스 핀에 대해 반복된다.
도 2는 전형적인 PPS 모듈(120)의 실시예의 또 하나의 다이어그램을 도시한다. 도 2는 단일 PPS 모듈 내에 있는 예시적인 로직을 보여준다. 각각의 프로세서는 하나 이상의 주변 디바이스들(210, 220, 230, 240)을 구비할 수 있다. 이 주변 디바이스들의 일부 또는 전부는 레지스터(250)에 의해 제어되는 멀티플렉서(260)와 결합될 수 있다. 일부 실시예들에 따르면, 레지스터(250)는 주변기기들을 소유하는 각각의 프로세서에 전용이다(private). 멀티플렉서(260)의 출력부(270)는 멀티-프로세서 코어 핀 소유 로직(110)과 결합된다.
다양한 실시예들에 따르면, 멀티-프로세서 코어를 포함하는 임베디드 시스템은 매우 작은 핀 수의 패키지용으로 설계될 수 있는데, 예를 들면 28-핀 하우징이 듀얼 코어를 구비한 마이크로컨트롤러에 사용될 수 있다. 이러한 작은 핀 하우징에서, 디바이스 핀들은 귀한 것(scarce commodity)이므로, 사용자가 주변기기 핀 기능을 할당할 수 있도록 다양한 실시예들에 따른 메커니즘이 제공된다.
다양한 실시예들에 따르면, 비대칭 멀티-프로세서 코어 디바이스 내의 각각의 프로세서 코어가 그것의 주변기기 기능부들 중 어느 것이 기능 디바이스 핀에 연결되는지를 지정할 수 있게 하는 방법론이 제공될 수 있다. "비대칭"의 용어는 각각의 프로세싱 코어가 자신과 연관된 서로 다른 주변 디바이스들을 가질 수 있음을 의미하고, 여기서 소정 주변기기들은 단지 하나의 코어에만 고유할 수 있고, 다른 주변기기들은 하나보다 많은 코일이나 모든 코어들에 임베딩될 수 있다.
이를 위해, 멀티-코어 디바이스 내의 각각의 프로세서는:
각각의 핀에 대한 PPS 멀티플렉서(260)를 갖는다.
각각의 PPS 멀티플렉서는 디바이스 핀과의 주변기기 연결들을 지정하는 레지스터들(250)을 갖는다. 레지스터(250)는 하나의 프로세싱 코어, 즉 각각의 주변기기들의 소유자에 의해서만 액세스될 수 있는 특수 기능 레지스터일 수 있다. 특수 기능 레지스터(250)는 바람직하게는 랜덤 액세스 메모리(RAM)에 메모리 매핑될 수 있다. 그렇지 않으면 이 특수 기능 레지스터는, 이하에서 설명되는 바와 같이 소유권을 제어하는 구성 레지스터와 유사하게 동작할 수 있다.
출력 기능을 제공하도록 지정된 어떤 외부 핀도 관련 PPS를 가지고 있다. 또한, 일부 실시예들에서, 각각의 프로세싱 코어는 다른 개수의 PPS를 가질 수 있고, 모든 외부 핀들이 각각의 프로세싱 코어에 이용 가능한 것은 아니다.
각각의 디바이스 핀(150)과 연관된 핀 소유 구성 비트들(130)은 다양한 실시예들에 따른 플래시 및/또는 RAM 메모리에 바람직하게 위치한다. 이 핀 소유 구성 비트들(130)은 어느 프로세서 코어가 각각의 디바이스 핀(150)에 신호를 출력하는 권한을 갖는지를 제어할 수 있다. 예를 들면, 이러한 레지스터는 4 코어 디바이스에서 4개의 비트들을 가질 수 있다. 내부 제어 로직으로 인해, 단 하나의 비트만이 한번에 설정될 수 있다. 예를 들면, 하나의 비트의 설정은 자동으로 모든 다른 비트들을 소거할 수 있다. 다른 메커니즘들이 가능한데, 예를 들면, 2 비트 레지스터가 사용될 수 있고 여기서 저장된 값은 각각의 코어와의 연관성을 나타낸다. 구성 레지스터가 필요한 것보다 많은 비트들을 갖는다면, 잘못된(invalid) 설정들은 단순히 각각의 핀을 어떠한 특정 프로세서에도 할당하지 않을 것이다. 이러한 핀은 이후에 입력에만 사용될 수 있다.
모든 프로세서 코어들은 동시에 디바이스 핀을 입력 기능들에 사용할 수 있지만, 특정 디바이스 핀에 신호를 출력하는 능력(ability)은 핀 소유 구성 비트들(130)을 통해 고객에 의해 특정된다.
일부 실시예들에 따르면, 각각의 기능 디바이스 핀은:
비휘발성 플래시 메모리 내의 관련 핀 소유 구성 비트들; 및
상기 핀 구성 비트들에 의해 제어되는 관련 핀 멀티플렉서를 갖는다.
상기 플래시 메모리는 우발적인 핀 구성 변경을 방지하는 쓰기 잠금 로직(write lock logic)을 포함할 수 있다. 사용자는 예를 들어 프로그래밍 동안에 핀 소유 비트들의 환경을 설정한다. 따라서, 이러한 실시예에 따르면, 핀 소유권은 프로그래밍 동안에만 변경될 수 있고, 프로그램 제어 하에서는 동적으로 변경될 수 없다. 리셋시 핀 구성 정보는 MUX 제어부에 전송된다.
따라서, 다양한 실시예들은 어느 프로세서가 출력 목적으로 어느 디바이스 핀들을 소유하는지를 정의하기 위한 보호 수단을 제공한다.
추가 실시예들에 따르면, 제어 소프트웨어는 예를 들면, 예를 들어 도 1에 도시된 바와 같은 잠금 메커니즘(160)이 핀에 대해 활성화되지 않은 경우에만, 할당들의 변경을 가능케 하는 루틴들을 더 포함할 수 있다. 따라서, 소정 핀들의 재할당은 차단될 수 있다. 그러므로, 하나의 프로세서 코어에 의한 소정 태스크가 종료된 경우에만 핀이 재할당될 수 있다.
다른 추가 실시예에 따르면, 이러한 차단 기능은 관련 제어 레지스터(160)에 설정될 수 있다. 예를 들어 복수의 비트들은 차단 기능이 어느 프로세서 코어에 제공되는지를 표시할 수 있다. 다른 추가 실시예에 따르면, 차단 기능이 활성화된 할당된 프로세서 코어만이 차단 기능을 리셋할 수 있다. 따라서, 상기 핀이 현재 할당되어 있으므로 핀 할당의 차단은 상기 프로세서에 의해서만 해제될(lifted) 수 있다.
도 3은 단일 하우징 내의 듀얼 코어 마이크로컨트롤러의 실시예의 블록도이다. 도시된 바와 같이, 디바이스는 기본적으로 두 개의 개별 프로세싱 코어들(310 및 340)을 포함하고, 각각의 코어는 복수의 관련 주변 디바이스들과 자신의 메모리를 갖는다. 프로세싱 코어들은 개별 프로그램 메모리, 예컨대 플래시 메모리와 데이터 메모리를 갖는 하바드(Harvard) 구조일 수 있다. 하지만, 다른 구조가 적용될 수 있다. 이 요소들에 대해, 마이크로컨트롤러는 요소들의 어떠한 자원도 공유하지 않는다. 따라서, 집적 회로 디바이스는 기본적으로 두 개의 개별 마이크로컨트롤러들을 포함하고, 각각의 마이크로컨트롤러는 CPU(310, 340), 플래시 메모리(320, 360), 랜덤 액세스 메모리(330, 350), 및 각각의 CPU(310 또는 340)와 관련된 복수의 주변 디바이스들 또는 모듈들(Per. A, Per B ... Per N)을 포함한다. 각각의 프로세싱 코어(310, 320)의 주변기기들은, 각각의 RAM(330 및 360)에 바람직하게 메모리 매핑될 수 있는 각각의 특수 기능 레지스터들을 통해 제어될 수 있다. 특히 도 2에 도시된 PPS 제어 레지스터(250)는 RAM에 메모리 매핑될 수 있다. 따라서, 각각의 코어에 대한 프라이버시가 보장되는데, 그 이유는 다른 프로세싱 코어들이 이들에 할당되지 않은 어떠한 메모리에도 액세스하지 않기 때문이다.
도 3에 나타난 바와 같이, 플래시 메모리는 PPO 모듈(370)의 설정을 제어할 수 있는 구성 레지스터들(325 및 365)을 각각 포함할 수 있다. PPO 모듈은 하나의 블록으로 도 3에 도시되었으며 복수의 PPO 유닛들을 포함할 수 있고, 각각의 PPO 유닛은 단일 외부 핀을 담당한다. 도 3은, 플래시 메모리(325 및 365) 내의 구성 비트들의 설정에 따라 소정 주변기기들의 출력들을 외부 핀들(150)의 일부와 연결하는 점선들에 의해 유닛(370)에 프로그램된 예시적인 설정을 나타낸다. 하지만, RAM 내에 배치되거나 또는 메인 메모리로부터 별도로 배치된 휘발성 또는 비휘발성 레지스터들과 같이, 다른 구성 방법들이 적용될 수 있다.

Claims (22)

  1. 임베디드 디바이스로서,
    복수의 프로세서 코어들 - 각각의 프로세서 코어는 복수의 주변 디바이스들을 포함하고, 각각의 주변 디바이스는 출력부를 포함할 수 있음 -;
    복수의 할당 가능 외부 핀들을 포함하는 하우징; 및
    각각의 할당 가능 외부 핀에 대한 보호 핀 소유 로직(protected pin ownership logic)을 포함하고,
    상기 보호 핀 소유 로직은 관련 할당 가능 외부 핀의 출력 기능을 상기 복수의 프로세서 코어들 중 하나의 프로세서 코어에만 할당하도록 프로그램 가능하게 구성되는, 임베디드 디바이스.
  2. 제 1 항에 있어서,
    상기 보호 핀 소유 로직은 상기 임베디드 디바이스의 프로세서 코어들만큼 많은 입력부들과 단일 출력부를 갖는 멀티플렉서를 포함하는, 임베디드 디바이스.
  3. 제 1 항에 있어서,
    상기 보호 핀 소유 로직은 상기 관련 할당 가능 외부 핀의 재할당을 방지하도록 구성된 잠금 로직(locking logic)을 더 포함하는, 임베디드 디바이스.
  4. 제 1 항에 있어서,
    상기 보호 핀 소유 로직은 멀티플렉서를 통해 프로세싱 코어를 선택하도록 구성된 구성 레지스터를 포함하는, 임베디드 디바이스.
  5. 제 4 항에 있어서,
    상기 구성 레지스터는 상기 관련 프로세싱 코어의 플래시 메모리에 배치되는, 임베디드 디바이스.
  6. 제 5 항에 있어서,
    상기 구성 레지스터에 기록하기 위해서는 지정된 기록 시퀀스가 필요한, 임베디드 디바이스.
  7. 제 1 항에 있어서,
    각각의 프로세서는 각각의 할당 가능 외부 핀에 대해, 그 프로세서와 관련된 상기 복수의 주변 디바이스들 중 하나의 주변 디바이스의 출력을 선택하도록 구성되는 주변기기 핀 선택 모듈을 포함하는, 임베디드 디바이스.
  8. 제 7 항에 있어서,
    각각의 주변기기 핀 선택 모듈은 상기 관련 프로세싱 코어에 의해서만 제어될 수 있도록 구성되는, 임베디드 디바이스.
  9. 제 7 항에 있어서,
    상기 주변기기 핀 선택 모듈은 멀티플렉서를 제어하는 특수 기능 레지스터를 포함하는, 임베디드 디바이스.
  10. 제 1 항에 있어서,
    각각의 프로세싱 코어는 32 비트 프로세싱 코어이고, 상기 하우징은 32보다 작거나 같은 개수의 외부 핀들을 포함하는, 임베디드 디바이스.
  11. 제 10 항에 있어서,
    상기 하우징은 28개의 외부 핀들을 포함하는, 임베디드 디바이스.
  12. 제 1 항에 있어서,
    외부 핀의 입력 기능은 하나보다 많은 주변 디바이스 또는 프로세싱 코어들로 라우팅될 수 있는, 임베디드 디바이스.
  13. 다중 프로세싱 코어들을 임베디드 디바이스에 배치하기 위한 방법으로서,
    복수의 프로세서 코어들을 하우징에 배치하는 단계 - 각각의 프로세서 코어는 복수의 주변 디바이스들을 포함하고, 각각의 주변 디바이스는 출력부를 포함할 수 있고, 상기 하우징은 복수의 할당 가능 외부 핀들을 포함함 -; 및
    관련 할당 가능 외부 핀의 출력 기능을 상기 복수의 프로세서 코어들 중 하나의 프로세서 코어에만 할당하도록 프로그램 가능하게 구성된 보호 핀 소유 로직을 각각의 할당 가능 외부 핀에 제공하는 단계를 포함하는, 방법.
  14. 제 13 항에 있어서,
    상기 방법은 상기 보호 핀 소유 로직 내의 멀티플렉서를 제어하는 단계를 포함하고, 상기 멀티플렉서는 상기 임베디드 디바이스의 프로세서 코어들만큼 많은 입력부들과 단일 출력부를 갖는, 방법.
  15. 제 13 항에 있어서,
    상기 방법은 상기 관련 할당 가능 외부 핀의 재할당을 방지하기 위해 상기 보호 핀 소유 로직 내의 잠금 로직을 제어하는 단계를 더 포함하는, 방법.
  16. 제 13 항에 있어서,
    상기 방법은 멀티플렉서를 통해 프로세싱 코어를 선택하기 위해 구성 레지스터를 프로그래밍하는 단계를 더 포함하는, 방법.
  17. 제 16 항에 있어서,
    상기 임베디드 디바이스의 리셋시, 상기 구성 레지스터에 저장된 핀 구성이 출력을 선택하기 위해 멀티플렉서 제어부에 전송되는, 방법.
  18. 제 16 항에 있어서,
    상기 구성 레지스터는 상기 관련 프로세싱 코어의 플래시 메모리에 배치되는, 방법.
  19. 제 18 항에 있어서,
    상기 구성 레지스터에 기록하기 위해서는 지정된 기록 시퀀스가 필요한, 방법.
  20. 제 13 항에 있어서,
    각각의 프로세서는 각각의 할당 가능 외부 핀에 대해 주변기기 핀 선택 모듈을 포함하고, 상기 방법은 상기 주변기기 핀 선택 모듈의 멀티플렉서를 통해 그 프로세서와 관련된 상기 복수의 주변 디바이스들 중 하나의 주변 디바이스의 출력을 선택하는 것을 포함하는, 방법.
  21. 제 20 항에 있어서,
    각각의 주변기기 핀 선택 모듈은 상기 관련 프로세싱 코어에 의해서만 제어될 수 있도록 구성되는, 방법.
  22. 제 20 항에 있어서,
    외부 핀의 입력 기능은 하나보다 많은 주변 디바이스 또는 프로세싱 코어들로 라우팅될 수 있는, 방법.
KR1020167032801A 2014-06-05 2015-06-05 멀티­프로세서 코어 디바이스들에 대한 디바이스 핀 소유권을 할당하기 위한 디바이스 및 방법 KR20170013872A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462008273P 2014-06-05 2014-06-05
US62/008,273 2014-06-05
US14/729,879 2015-06-03
US14/729,879 US9921982B2 (en) 2014-06-05 2015-06-03 Device and method to assign device pin ownership for multi-processor core devices
PCT/US2015/034378 WO2015188048A1 (en) 2014-06-05 2015-06-05 Device and method to assign device pin ownership for multi-processor core devices

Publications (1)

Publication Number Publication Date
KR20170013872A true KR20170013872A (ko) 2017-02-07

Family

ID=53484153

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032801A KR20170013872A (ko) 2014-06-05 2015-06-05 멀티­프로세서 코어 디바이스들에 대한 디바이스 핀 소유권을 할당하기 위한 디바이스 및 방법

Country Status (7)

Country Link
US (1) US9921982B2 (ko)
EP (1) EP3152671B1 (ko)
JP (1) JP2017520829A (ko)
KR (1) KR20170013872A (ko)
CN (1) CN106462551A (ko)
TW (1) TWI649654B (ko)
WO (1) WO2015188048A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9921988B2 (en) * 2014-06-05 2018-03-20 Microchip Technology Incorporated Device and method to assign device pin functionality for multi-processor core devices
US20180373658A1 (en) * 2017-06-27 2018-12-27 Microsoft Technology Licensing, Llc Conflict resolution on gpio pin multiplexing
US11379398B2 (en) 2019-06-04 2022-07-05 Microchip Technology Incorporated Virtual ports for connecting core independent peripherals

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991910A (en) * 1997-10-29 1999-11-23 Microchip Technology Incorporated Microcontroller having special mode enable detection circuitry and a method of operation therefore
DE60000296T2 (de) * 1999-04-08 2003-04-17 Microchip Tech Inc Vorrichtung und Verfahren zum Rekonfigurieren der Stiftenzuweisung von einer oder mehreren Funktionsschaltungen in einem Mikrokontroller
US6496880B1 (en) 1999-08-26 2002-12-17 Agere Systems Inc. Shared I/O ports for multi-core designs
US7256611B2 (en) * 2000-05-31 2007-08-14 Silicon Laboratories Inc. Cross-bar matrix with LCD functionality
JP2002032355A (ja) * 2000-07-17 2002-01-31 Fujitsu Ltd マイクロコンピュータ
US6892266B2 (en) * 2000-11-15 2005-05-10 Texas Instruments Incorporated Multicore DSP device having coupled subsystem memory buses for global DMA access
KR100413763B1 (ko) 2001-07-13 2003-12-31 삼성전자주식회사 탭드 코아 선택회로를 구비하는 반도체 집적회로
JP2003106211A (ja) * 2001-10-01 2003-04-09 Fujitsu Ten Ltd 自動車用内燃機関制御装置
US7380085B2 (en) * 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US7199607B2 (en) * 2004-12-22 2007-04-03 Infineon Technologies Ag Pin multiplexing
US20060179275A1 (en) * 2005-02-08 2006-08-10 Takeshi Yamazaki Methods and apparatus for processing instructions in a multi-processor system
US7512826B2 (en) * 2005-04-20 2009-03-31 International Business Machines Corporation Method, apparatus, and product for an efficient virtualized time base in a scaleable multi-processor computer
US7543261B2 (en) * 2005-04-27 2009-06-02 Lsi Corporation I/O planning with lock and insertion features
US7634596B2 (en) * 2006-06-02 2009-12-15 Microchip Technology Incorporated Dynamic peripheral function remapping to external input-output connections of an integrated circuit device
US7962670B2 (en) * 2007-06-06 2011-06-14 Lantiq Deutschland Gmbh Pin multiplexing
US8327173B2 (en) * 2007-12-17 2012-12-04 Nvidia Corporation Integrated circuit device core power down independent of peripheral device operation
US7859134B2 (en) * 2007-12-21 2010-12-28 Sandisk Corporation Self-configurable multi-regulator ASIC core power delivery
CN102057357A (zh) * 2008-06-11 2011-05-11 松下电器产业株式会社 多处理器系统
JP4920015B2 (ja) * 2008-09-03 2012-04-18 日立オートモティブシステムズ株式会社 分散制御用制御ソフトウェアおよび電子制御装置
US8269524B2 (en) 2010-04-27 2012-09-18 Atmel Corporation General purpose input/output pin mapping
US9904646B2 (en) * 2011-09-27 2018-02-27 Microchip Technology Incorporated Virtual general purpose input/output for a microcontroller
US9921988B2 (en) * 2014-06-05 2018-03-20 Microchip Technology Incorporated Device and method to assign device pin functionality for multi-processor core devices
US10102050B2 (en) * 2015-02-05 2018-10-16 Microchip Technology Incorporated System and method for generating cross-core breakpoints in a multi-core microcontroller
US10002103B2 (en) * 2015-03-13 2018-06-19 Microchip Technology Incorporated Low-pin microcontroller device with multiple independent microcontrollers
US10002102B2 (en) * 2015-03-13 2018-06-19 Microchip Technology Incorporated Low-pin microcontroller device with multiple independent microcontrollers

Also Published As

Publication number Publication date
TWI649654B (zh) 2019-02-01
TW201610686A (zh) 2016-03-16
JP2017520829A (ja) 2017-07-27
CN106462551A (zh) 2017-02-22
EP3152671A1 (en) 2017-04-12
US9921982B2 (en) 2018-03-20
EP3152671B1 (en) 2023-03-01
WO2015188048A1 (en) 2015-12-10
US20150356037A1 (en) 2015-12-10

Similar Documents

Publication Publication Date Title
US9921988B2 (en) Device and method to assign device pin functionality for multi-processor core devices
US20170024166A1 (en) Area and performance optimized namespace sharing method in virtualized pcie based ssd controller
CN107430564B (zh) 具有多个独立微控制器的微控制器装置
JP2017517067A5 (ko)
CN103354977A (zh) 在集成电路内进行处理器系统的扩展
DE102013203365A1 (de) Verfahren und Schaltungsanordnung für kontrollierte Zugriffe auf Slave-Einheiten in einem Ein-Chip-System
US10002102B2 (en) Low-pin microcontroller device with multiple independent microcontrollers
EP3183652A1 (en) Mechanism for inter-processor interrupts in a heterogeneous multiprocessor system
US11366940B2 (en) Secure-aware bus system
EP3407184A2 (en) Near memory computing architecture
KR20170013872A (ko) 멀티­프로세서 코어 디바이스들에 대한 디바이스 핀 소유권을 할당하기 위한 디바이스 및 방법
US20080244131A1 (en) Architecture for configurable bus arbitration in multibus systems with customizable master and slave circuits
CN104303143A (zh) 具有上下文切换的微控制器
CN110678866B (zh) 子系统防火墙
JPH08106446A (ja) モジュール方式チップ選択制御回路および関連する回路および方法