KR20180018755A - 집적 회로 입력들 및 출력들 - Google Patents

집적 회로 입력들 및 출력들 Download PDF

Info

Publication number
KR20180018755A
KR20180018755A KR1020187001330A KR20187001330A KR20180018755A KR 20180018755 A KR20180018755 A KR 20180018755A KR 1020187001330 A KR1020187001330 A KR 1020187001330A KR 20187001330 A KR20187001330 A KR 20187001330A KR 20180018755 A KR20180018755 A KR 20180018755A
Authority
KR
South Korea
Prior art keywords
state
cpu
external connections
change
memory locations
Prior art date
Application number
KR1020187001330A
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 KR20180018755A publication Critical patent/KR20180018755A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • 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/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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

집적 회로 마이크로프로세서 디바이스는 복수의 외부 연결부들(4)을 갖는 중앙 프로세싱 유닛(CPU) 및 범용 입력 또는 출력 모듈(2)을 포함한다. 상기 외부 연결부들은 상기 디바이스에 개별 입력들을 제공하도록 상기 범용 입력 또는 출력 모듈에 의해 구성된다. 디바이스는 외부 연결부들의 각각에 대응하는 개별 메모리 위치들(6)을 더 포함한다. 상기 중앙 프로세싱 유닛이 저전력 상태에 있거나 또는 그렇지 않으면, 상태의 변화에 반응할 수 없는 동안에 상기 상태의 변화가 발생하는 이벤트에서 상기 외부 연결부들 중 하나 이상의 외부 연결부들 상에서의 상태의 변화를 레코딩하도록 메모리 위치들이 배열된다.

Description

집적 회로 입력들 및 출력들
본 발명은 집적 회로들을 위한 입력들 및 출력들 - 특별히 마이크로프로세서 또는 시스템 온 칩(SoC) 디바이스를 위한 범용 입력/출력 핀들에 관한 것이다.
최신 마이크로프로세서들 및 SoC의 복잡도가 증가함에 따라, 다양한 기능들과 관련된 입력들 및 출력들을 제공하는 것에 대한 증가하는 요구가 있다. 그러나 이들은 디바이스의 외부 케이싱으로부터 돌출한 핀들을 필요로 하고 그래서 제공될 수 있는 수는 계속 증가하는 소형화(miniaturisation)에 대한 다소 충돌하는 요구에 의해 제기되는 물리적 사이즈에 관한 제약들에 의해 제한된다.
이 긴장상태를 다루기 위한 한가지 접근법은 기능이 실행중인 태스크(task)들에 의해 소프트웨어에 의해 동적으로 할당될 수 있는 많은 범용 입력/출력(GPIO: general purpose input/output) 핀들을 제공하는 것이다. 이것은 일부 애플리케이션들에 또는 일부 고객들에 의해서 그렇게 많이 또는 전혀 사용되지 않을 수 있는 많은 전용 핀들을 갖는 것보다 오히려 핀들의 효율적인 사용을 허용한다.
GPIO 핀들이 오프-칩 컴포넌트들로부터 입력들을 수신하도록 구성된 때 이런 입력들은 그것들을 프로세스하기 위해 저전력, 휴면 상태로부터 웨이크(wake)하기 위해 CPU에 프롬프트(prompt)하는 종류인 경우가 흔할 것이다. 그것들은 예를 들어 컴퓨터 입력 디바이스들 예컨대 무선 키보드, 마우스 또는 유사한 것로부터 올 수 있다. 그러나 출원인은 이제, 다수의 이런 입력들 있는 경우, CPU의 휴면 상태로부터 CPU가 파워 업 하는데 걸리는 한정된 시간 동안에, 웨이크업 시키기 위해 CPU에 프롬프트되는 입력은 더 이상 존재하지 않을 수 있고 따라서 CPU가 어떻게 반응할지를 결정하는 것이 가능하지 않을 수 있다는 점에서 발생할 수 있는 잠재적인 문제를 인식하였다.
본 발명은 집적 회로 마이크로프로세서 디바이스를 제공하고 이것을 다루는 것을 목표로 하고, 상기 디지털 마이크로프로세서 디바이스는 복수의 외부 연결부(external connection)를 갖는 범용 입력 또는 출력 모듈 및 중앙 프로세싱 유닛(CPU)을 포함하되, 상기 외부 연결부들은 상기 디바이스에 개별 입력들을 제공하도록 상기 범용 입력 또는 출력 모듈에 의해 구성되고, 상기 디바이스는 상기 중앙 프로세싱 유닛이 저전력 상태에 있거나 또는 그렇지 않으면, 상태의 변화(change of state)에 반응할 수 없는 동안에 상기 상태의 변화가 발생하는 이벤트에서 상기 외부 연결부들 중 하나 이상의 외부 연결부들 상에서의 상태의 변화를 레코딩하도록 배열되고 상기 외부 연결부들의 각각에 대응하는 개별 메모리 위치들을 더 포함한다.
따라서 본 발명에 따라 만약 외부 연결부 상에 상태의 변화가 있으면 - 즉, 로우로부터 하이로 가거나 또는 반대 - CPU이 슬립 상태에 있어가, 또는 그렇지 않으면, 반응 할 수 없는 동안에 - 예를 들어, 왜냐하면 그것이 슬립 상태로 가고 있는 중이거나 또는 여전히 슬립 상태로부터 웨이크하는 중이기 때문에 - 이것은 메모리에 레코딩된다는 것이 당해 기술분야의 통상의 기술자들에 의해 이해될 것이다. 이것은 CPU가 일단 CPU가 웨이크 업 된 후에 설사 입력이 더 이상 존재하지 않을 지라도 어느 입력들이 수신되었는지를 결정하는 것을 허용한다. 그것은 또한 다른 시간들에 발생한 입력들이 그것들이 CPU에 의해 프로세스될 수 없을 때 예를 들어, “슬립(sleep)” 신호가 발행되었을 때 그리고 입력 수신이 너무 늦어서 CPU를 셧 다운하는 프로세스를 중단할 수 없을 때 캡쳐(capture)되는 것을 허용한다.
실시예들의 임의의 세트에서 상태의 변화는 중앙 프로세싱 유닛(CPU)를 웨이크 업 하도록 배열되고 - 즉, CPU가 저전력 상태로부터 더 높은 파워 상태로 이동하게 한다. 이것은 모든 외부 연결부들에 대한 경우일 수 있다. 그러나 이것은 필수는 아니고 실시예들의 임의의 세트에서 상기 외부 연결부들 중 하나 이상의 외부 연결부의 상태 변화는 CPU를 웨이크하지 않는다. 이것은 어떤 입력들이 CPU를 즉각적으로 웨이크 하지 않지만 그러나 바람직하게는 CPU가 웨이크 하였을 때 CPU에 의해 그것이 판독될 수 있도록 상태의 변화가 대응하는 메모리 위치에 레코딩되도록 구성되는 것을 허용함으로써 파워를 절약하는 데 유익할 수 있다. 실시예들의 임의의 세트에서, 그것이 상태를 변화시킬 때 상기 외부 연결부들 중 어느 외부 연결부가 CPU를 웨이크 할 수 있는지를 결정하도록 배열된 인에이블링(enabling) 레지스터를 디바이스는 포함한다. 이것은 예를 들어, 메모리 위치들과 관련된 복수의 플래그(flag)들을 포함할 수 있다.
바람직하게는, 상기 CPU는 일단 그것이 웨이크 업 된(더 높은 파워 상태로 이동된) 후에 상기 메모리 위치들을 판독하도록 배열된다. 실시예들의 임의의 세트에서, 상기 CPU는 만약 그것이 상기 상태의 변화를 나타내는 값을 판독하면 상기 메모리 위치들 중 하나를 삭제하도록 구성된다. 추가의 이런 실시예들의 세트에서, 만약 상기 메모리 위치들 중 추가의 하나의 메모리 위치가 추가 외부 연결부상의 상태의 변화를 나타내는 값을 함유하면 상기 범용 입력 또는 출력 모듈은 이벤트를 생성하도록 구성된다. 이것은 외부 연결부들 상에 어떠한 착신 신호들도 경합 조건(race condition) 때문에 손실되지 않는 것을 보장하는 것을 도울 수 있다. 동시에 수신되거나 또는 적어도 전부 CPU가 웨이크 업 하기전 다수의 입력들간을 구별하는 이 능력은 중요한 장점이다.
실시예들의 임의의 세트에서, 상기 메모리 위치들은 상기 외부 연결부들의 각각에 대응하는 하나 이상의 비트들(바람직하게는 하나)을 갖는 레지스터에 의해 제공된다.
본 발명의 임의 실시예들은 첨부한 도면들을 참고로 하여 단지 예제의 방식으로 이제 설명될 것이다:
도 1 은 본 발명에 따른 GPIO 모듈의 개략적인 표현이고;
도 2 는 모듈의 동작을 예시하는 타이밍도이며;
도 3 은 본 발명의 추가 실시예의 개략적인 표현이다.
도 1 은 집적 회로 마이크로프로세서의 일부로서 포함된 GPIO 모듈(2)을 예시한다. GPIO 모듈(2)은 PIN0 내지 PIN31로 넘버링된 핀들(4)의 형태에 32개의 외부 연결들부을 지원하고, 도 1 에는 단지 핀들 중 첫번째 및 마지막이 도시된다. 각각의 핀(4)은 PIN[n].OUT, PIN[n].IN 및 PIN[n].CNF로 라벨링된 세개의 레지스터들을 포함하는 GPIO 모듈에 관련된 채널(6)을 갖는다.
PIN0에 해당하는 채널(6)은 도 1의 왼손 부분에 더 크게 상세하게 표시된다. 이것은 마이크로프로세서상에 어디 다른 곳에 아날로그 입력을 제공하기 이한 아날로그 입력 라인(10)에 핀(4)이 선택적으로 연결되는 것을 허용하는 스위치(8)에 핀(4)이 연결된 것을 도시한다. 대안적으로 스위치(8)는 아래에 보다 상세하게 설명되는 디지털 입력/출력 배열을 위하여 핀(4)을 연결(12)에 연결할 수 있다. 스위치는 마이크로프로세서가 아날로그 입력들을 수신하는 것을 예상할 때 하이로 가게 만들어진 ‘아날로그 인에이블(analogue enable)' 제어 라인(14)에 의해 제어된다.
디지털 입력/출력 배열 연결(12)은 두개의 스위치들(16,18)에 연결된다. 이들 스위치들 중 첫번째 스위치(16)는 핀(4)이 출력 버퍼(20)에 연결되는 것을 허용한다. 스위치(16)는 ‘방향 오버라이드(direction override)' 라인(22)에 의해 제어된다. 출력 버퍼(20)로의 입력은 마이크로프로세서내 특정 모듈로부터 정상 출력(ordinary output)을 제공하기 위한 출력 라인(26) 또는 PIN[0].OUT 레지스터(28)의 어느 하나에 버퍼(20)가 연결되는 것을 허용하는 추가 스위치(24)에 의해 제어된다. 이 레지스터(28)는 출력들을 태스크들로 그리고 입력들을 이벤트들로 변환하는 이벤트들(GPIOTE) 모듈 및 범용 입력/출력 태스크들로서 알려진 추가 모듈(미도시)로부터의 SET 및 CLR 태스크들에 의해 결정된 값으로 기록된다. 스위치(24)는 ‘출력 오버라이드(output override)' 라인(30)에 의해 제어되고 이는 따라서 핀(4)이 PIN[0].OUT 레지스터(28)에 값을 강요(force)하는 것을 허용한다.
디지털 입력 측상에, ‘입력 오버라이드' 라인(34)의 제어하에서 스위치(18)는 핀(4)을 입력 버퍼(32)에 선택적으로 연결한다. 이것은 GPIO 핀의 제어를 인계받은 주변기기가 입력 버퍼(32)를 연결해제(disconnect)하기 위해서 출력으로서 그것을 사용하는 것을 허용하여 이는 입력 버퍼가 전형적으로 설사 사용되지 있지 않을지라도 에너지를 소모할 때 유익하다. 입력 버퍼(32)는 입력 라인, 핀(4)의 상태를 발견하기 위해 CPU에 의해 사용되는 PIN[0].IN 레지스터(38) 및 입력이 하이로 가고 그런다음 PIN0.DETECT 신호(42)를 생성할 때를 감지하는 센싱 모듈(40)에 연결된다. 센싱 모듈(40)은 입력이 대신 로우로 갈 때 신호(42)를 생성하도록 또한 구성될 수 있다.
대응하는 배열들이 다른 PIN들 PIN1 - PIN31에 대하여 제공된다. 이들은 상세하게 도시되지 않았지만 그러나 각각은 대응하는 PINn.DETECT 신호를 갖는다. PIN1.DETECT 및 PIN31.DETECT 신호들(44,46)이 도시되고 중간 신호들은 생략된다.
PINn.DETECT 신호들(42,44,46)은 각각의 PINn.DETECT 라인들(42,44,46) 등에 대응하는 32개의 비트들을 갖는 래치 레지스터(latch register)(48)로 복사된다. OR 함수(50)는 만약 하나가 래치 레지스터(48)에 임의의 비트들에 대하여 레코딩되면 하이인 래치된 DETECT(LDETECT) 신호(51)를 제공한다. 이것은 DETECT 출력 스위치(52)의 일 측면에 공급된다. 스위치(52)의 다른 측면은 PINn.DETECT 라인들(42,44,46) 등으로부터 직접 통상의 공통 DETECT 신호(55)를 제공하는 다른 OR 함수(54)에 연결된다.
사용시에 모듈(2)은 통상의 범용 입력/출력 모듈처럼 동작한다. 핀(4)은 따라서 아날로그 입력 아날로그 인에이블 라인(14)을 하이로 설정함으로써 아날로그 입력을 수신하는데 사용될 수 있다. 그것은 또한 아날로그 인에이블 라인(14)을 로우로, 스위치(18)를 오픈시키기 위해 입력 오버라이드 라인(35)을 로우로 설정함으로써 그리고 스위치(16)를 클로즈시키기 위해 방향 오버라이드 라인(22)을 하이로 설정함으로써 디지털 출력 핀으로 사용될 수 있다. 비록 대부분의 경우에 스위치들(16,18) 중 하나는 오픈되지만 그러나 다른 스위치는 클로즈되는 것이 바람직할 것이지만, 둘 모두가 클로즈되는 환경들이 있을 수 있다.
디지털 출력으로 사용될 때, 핀(4)은 출력 라인(26)으로부터 출력을 정상적으로 제공한다. 그러나 만약 핀을 하이로 드라이브함으로써 핀(4)을 SET하는 것이 또는 핀을 로우로 드라이브함으로써 핀(4)을 CLR하는 것이 필요하다면, 출력 오버라이드 라인(30)가 출력 버퍼(20)를 PIN[0].OUT 레지스터(28)에 연결하는 하이를 제공하여 어떤 값이든 거기에 저장되도록 그것을 드라이브(drive)한다.
핀(4)은 추가로 아날로그 인에이블 라인(14)을 로우로, 스위치(18)를 클로즈(close)시키기 위해 입력 오버라이드 라인(35)을 하이로 설정함으로써 그리고 스위치(16)를 오픈(open)시키기 위해 방향 오버라이드 라인(direction override line)(22)을 로우로 설정함으로써 디지털 입력 핀으로 사용될 수 있다.
핀들(4)은 예를 들어, 외부 주변기기상의 버튼들에 연결하기 위해 사용될 수 있다. 파워를 절약하기 위해서 유저가 버튼들 중 하나를 누를 때까지 중앙 프로세싱 유닛(CPU)(미도시)를 저전력, 슬립 상태(sleep state)로 하는 것이 바람직할 것이다. 그러나, 그들이 예를 들어, PIN0에 연결된 버튼을 눌었을 때, 인터럽트(interrupt)가 CPU로 발송되고 이제 설명될 것처럼 그것이 입력에 반응할 수 있도록 그것을 웨이크 업 시킨다.
핀(4)상에 전압 레벨이 하이로 갈 때, 이것은 입력 버퍼(32)를 통과하여 입력 라인(36)로 그리고 센싱 모듈(40)로 전달된다. 센싱 모듈(40)은 로우로부터 하이로 천이(transition)를 감지하고서 그것의 출력(42)이 하이로 가고 이는 통상의 OR 함수(54)를 트리거하고 그리고 일(정상적으로 모든 그것의 비트들을 제로를 갖는)로서 래치 레지스터(48)의 적절한 비트로 복사된다. 이것은 결국 래치 OR 함수(50)를 트리거한다. 따라서 위치 스위치(52)가 어느 위치에 있든, DETECT 신호 출력(56)은 하이로 가고 이는 파워 모듈(미도시)에 인터럽트를 야기하고 이는 CPU를 웨이크 업 시킨다. 그러나 실제로 CPU가 웨이크 업 되고 완전히 활성화되는데 얼마간의 시간이 걸린다는 것이 인식될 것이다. 해당 시간에 만약 버튼이 릴리즈(release)되고 핀(4)이 로우로 가면, 그것에 대응하는 입력 라인(36)은 또한 로우로 갈 것이고 CPU는 무엇이 해당 웨이크 업을 트리거하였는지를 입력 라인들(36)(및 다른 PIN들에 대응하는 것들)으로부터 결정할 수 없을 것이다.
그러나 도 1 에 도시된 본 발명의 실시예에, 웨이크 업을 트리거하였던 입력은 CPU에 의해 래치 레지스터(48)로부터 간단하게 판독될 수 있고 그 후에 이 레지스터의 비트들은 CPU에 의해 명시적으로 삭제될 수 있다. 따라서 설사 입력이 단지 순간적(momentary)이라고 할지라도, 그것은 손실되기 보다는 오히려 캡쳐(capture)될 것이다. 너무 늦어서 슬립 절차를 중단하지 못하고 CPU가 휴면 상태에 진입한 동안에 만약 입력이 수신된 경우 유사한 장점이 획득된다.
스위치(52)는 DETECT 출력(56)을 허용하여서 특정 애플리케이션의 요건들에 의존하여 통상의 공통 DETECT 신호(55) 또는 LDETECT 신호(51) 중 어느 하나로서 선택될 수 있다. 그러나 어느 하나의 모드에서 래치 레지스터(48)는 어떤 입력들이 수신되었는지를 결정하기 위해 판독될 수 있다.
일단 CPU가 래치 레지스터(48)의 주어진 비트상에 일(one)을 판독한 후에, 그것은 해당 비트를 삭제한다. LDETECT 신호(51)의 한가지 장점은 만약 일로 설정된 레지스터(48)의 다른 비트들이 있다면, LDETECT 신호가 하이에 있을 것이지만, 그러나 새로운 이벤트를 트리거하기에 충분히 긴, LDETECT 신호(51)에 일시적인 음의 펄스(negative pulse)가 생성된다는 것이다. 이것은 CPU가 슬립상태에 있거나(asleep) 또는 웨이크 업을 시작하는 동안 CPU가 수신된 다수의 입력들 사이를 구별하는 것을 허용한다. 일단 모든 비트들이 성공적으로 삭제된 후에, LDETECT 신호(55)는 다시 로우로 갈 것이다.
도 2는 개별 PINn.DETECT 신호들(42,44,46)이 잠재적으로 동시에 하이로 갈 때 통상의 공통(common) DETECT 신호(55) 및 LDETECT 신호(51)의 동작상에 차이를 예시한다.
처음에, 시간(60)에서, PIN0가 하이로 가고(예를 들어, 왜냐하면 버튼이 눌려지기 때문에) 그리고 PIN0.DETECT 라인(42)이 하이로 간다. 이것은 래치 레지스터(48)내 PIN0(“LATCH.0”)에 대응하는 비트 뿐만 아니라 공통 DETECT 신호(55)가 하이로 가게 한다. 이것은 결국 LDETECT 신호(51)를 또한 하이로 가게 한다.
시간(62)에서 PIN0에 연결된 버튼이 릴리즈되고 그래서 PIN0.DETECT 라인(42)이 로우로 가고 다른 PINn.DETECT 라인들 중 어느 것도 하이가 아니기 때문에, 공통 DETECT 신호(55) 또한 다시 로우로 간다. 그러나, LATCH.0 신호는 여전히 하이에 있기 때문에, LDETECT 신호(51)도 하이에 있는다. 실제로, CPU가 웨이크 업 되고 LATCH.0 신호를 래치 레지스터(48)로부터 판독하고 그리고 그것을 삭제할 때의 시간(64)까지 이들은 계속 하이에 있는다. 이것으로부터 CPU 가 웨이크 업 하기 전에 공통 DETECT 신호(55)가 이미 로우로 가 버렸고 따라서 CPU는 래치 레지스터(48)가 아니었다면, CPU는 PIN들 중 어느 핀이 그것을 웨이크 업 하였는지를 결정할 수 없을 것이라는 것이 인식될 것이다.
그 나중 시간(66)에서, PIN1.DETECT 신호(44)가 하이로 가고 그리고 DETECT 신호(55), 래치 레지스터(48)의 LATCH.1 비트 및 LDETECT 신호(51)가 하이로 간다. CPU가 시간(68)에 래치 레지스터(48)를 판독할 때, 음의 펄스가 LDETECT 신호(51)에 생성되지만 그러나 PIN1.DETECT 라인(44)이 이 시간 지점에서 여전히 하이에 있기 때문에 그것은 그 후에 계속 하이에 있는다.
시간(70)에서, PIN31에 연결된 버튼이 또한 눌려져서 PIN31.DETECT 라인(46)이 하이로 간다. 공통 DETECT 신호(55)가 이미 하이에 있고 따라서 그렇게 유지되지만, 하지만 래치 레지스터(48)의 LATCH.31 비트는 이제 하이로 간다. 시간(72)에서, CPU가 래치 레지스터(48)를 다시 판독하고 LATCH.1 비트를 삭제하고 그 후에 PIN1.DETECT 라인(44)은 이 때에, 다시 로우로 간다. 그러나 LATCH.31 비트가 계속 하이에 있기 때문에 LDETECT 신호(51)는 음의 펄스로 계속 하이에 있다. 마지막으로, 시간(74)에서, PIN31.DETECT 신호(46)가 로우로 가고 그래서 CPU가 래치 레지스터(48)의 LATCH.31 비트를 판독한 때, LATCH.31 비트는 삭제되고 그리고 LDETECT 신호(51)는 또한 로우로 간다.
도 3은 도 1 에 도시된 실시예에 매우 유사한 제 2 실시예를 도시하고 동일한 도면 번호들이 동일한 특징부들을 표시하기 위해 사용되었다. 그러나 도 3의 실시예는 LDETECT 신호(51)를 생성하는 OR 게이트(50)와 래치 레지스터(38) 사이에 추가 ‘래치 인에이블(latch enable)' 레지스터(74)를 포함한다. 래치 인에이블 레지스터(74) 또한 핀(4) 당 하나의 비트를 포함한다. 사용시에 래치 비트들 중 어느 것이(따라서 실제로는 핀들의 천이들 중 어느 것) OR 게이트(50)로 라우트(route)될 지를 결정한다. 단지 OR 게이트(50)로 라우트되는 해당 래치 비트들만이 트리거 LDETECT 신호(51)를 트리거할 것이고 CPU를 웨이크 업 할 것이다. 이것은 GPIO 모듈(2)이 일부 또는 모든 핀들(4) 상에서의 천이들을 레코딩하는 것을 허용하지만, 그러나 단지 그것들 중 일부가, 그것들 중 하나가 CPU를 웨이크-업 하거나, 또는 어느 것도 CPU를 웨이크업 하지 않는다. 이것은 천이를 기록하는 것은 중요하지만 그러나 천이가 일어난 시간에 시스템을 웨이크 업 하는 것이 중요하지 않거나, 또는 심지어 바람직하지 않은 경우의 상황에서 유용할 수 있다. 이런 셋업에서 CPU가 일부 다른 이유 때문에 웨이크 업 할 때 천이에 응답하고 프로세스하는 것이 보다 바람직할 수 있다.
래치 인에이블 레지스터(74)는 물론 어느 핀들(4)이 CPU를 웨이크 할 수 있는지를 바꾸는 것이 구성 가능할 수 있다.
따라서 상기에서 설명된 실시예들은 CPU가 완전히 어웨이크 되고 임의의 정보 손실 없이 그것들을 프로세스할 수 있을 때까지 입력들이 레코딩되는 것을 허용한다는 것을 알게 될 것이다. 그러나 특정 실시예는 단지 예시적인 것이고 많은 수정예들 및 변형예들이 본 발명의 범위 내에서 이루어질 수 있다는 것이 인식될 것이다.

Claims (9)

  1. 집적 회로 마이크로프로세서 디바이스에 있어서,
    복수의 외부 연결부(external connection)를 갖는 범용 입력 또는 출력 모듈 및 중앙 프로세싱 유닛(CPU)을 포함하되, 상기 외부 연결부들은 상기 디바이스에 개별 입력들을 제공하도록 상기 범용 입력 또는 출력 모듈에 의해 구성되고, 상기 디바이스는 상기 중앙 프로세싱 유닛이 저전력 상태에 있거나 또는 그렇지 않으면, 상태의 변화(change of state)에 반응할 수 없는 동안에 상기 상태의 변화가 발생하는 이벤트에서 상기 외부 연결부들 중 하나 이상의 외부 연결부들 상에서의 상태의 변화를 레코딩(record)하도록 배열되고 상기 외부 연결부들의 각각에 대응하는 개별 메모리 위치들을 더 포함하는, 집적 회로 마이크로프로세서 디바이스.
  2. 제 1 항에 있어서,
    상기 상태의 변화는 상기 CPU를 웨이크 업(wake up) 하도록 배열된, 집적 회로 마이크로프로세서 디바이스.
  3. 제 1 항에 있어서,
    상기 외부 연결부들 중 하나 이상의 외부 연결부의 상태 변화는 상기 CPU를 웨이크하지 않는, 집적 회로 마이크로프로세서 디바이스.
  4. 제 3 항에 있어서,
    그것이 상태를 변화시킬 때 상기 외부 연결부들 중 어느 외부 연결부가 CPU를 웨이크 할 수 있는지를 결정하도록 배열된 인에이블링(enabling) 레지스터 포함하는, 집적 회로 마이크로프로세서 디바이스.
  5. 제 4 항에 있어서,
    상기 인에이블링 레지스터는 메모리 위치들과 관련된 복수의 플래그(flag)들을 포함하는, 집적 회로 마이크로프로세서 디바이스.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 CPU는 일단 그것이 더 높은 파워 상태로 이동된 후에 상기 메모리 위치들을 판독하도록 배열된, 집적 회로 마이크로프로세서 디바이스.
  7. 제 6 항에 있어서,
    상기 CPU는 만약 그것이 상기 상태의 변화를 나타내는 값을 판독하면 상기 메모리 위치들 중 하나를 삭제하도록 구성된, 집적 회로 마이크로프로세서 디바이스.
  8. 제 7 항에 있어서,
    만약 상기 메모리 위치들 중 추가의 하나의 메모리 위치가 추가 외부 연결부상의 상태의 변화를 나타내는 값을 함유하면 상기 범용 입력 또는 출력 모듈은 이벤트를 생성하도록 구성되는, 집적 회로 마이크로프로세서 디바이스.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 메모리 위치들은 상기 외부 연결부들의 각각에 대응하는 하나 이상의 비트들을 갖는 레지스터에 의해 제공되는, 집적 회로 마이크로프로세서 디바이스.
KR1020187001330A 2015-06-16 2016-06-16 집적 회로 입력들 및 출력들 KR20180018755A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1510607.3 2015-06-16
GB1510607.3A GB2539460A (en) 2015-06-16 2015-06-16 Integrated circuit inputs and outputs
PCT/GB2016/051798 WO2016203243A1 (en) 2015-06-16 2016-06-16 Integrated circuit inputs and outputs

Publications (1)

Publication Number Publication Date
KR20180018755A true KR20180018755A (ko) 2018-02-21

Family

ID=53784854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187001330A KR20180018755A (ko) 2015-06-16 2016-06-16 집적 회로 입력들 및 출력들

Country Status (8)

Country Link
US (1) US20180188999A1 (ko)
EP (1) EP3311244A1 (ko)
JP (1) JP2018520433A (ko)
KR (1) KR20180018755A (ko)
CN (1) CN107771326A (ko)
GB (1) GB2539460A (ko)
TW (1) TW201705005A (ko)
WO (1) WO2016203243A1 (ko)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826701B1 (en) * 2000-04-20 2004-11-30 Microsoft Corporation Re-running general purpose event control methods in a computer system
US7248597B2 (en) * 2001-05-02 2007-07-24 Nvidia Corporation General purpose input/output controller
KR20030046239A (ko) * 2001-12-05 2003-06-12 엘지전자 주식회사 피씨아이 버스를 이용한 지피아이오 보드 장치 및 그 제어방법
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US20090204834A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation System and method for using inputs as wake signals
US9904646B2 (en) * 2011-09-27 2018-02-27 Microchip Technology Incorporated Virtual general purpose input/output for a microcontroller
US8892918B2 (en) * 2011-10-31 2014-11-18 Conexant Systems, Inc. Method and system for waking on input/output interrupts while powered down
CN102999291A (zh) * 2012-09-25 2013-03-27 广东欧珀移动通信有限公司 待机状态下触摸唤醒移动终端的方法
CN103034295B (zh) * 2012-12-26 2015-08-12 无锡江南计算技术研究所 输入输出能力增强的可重构微服务器
US9743049B2 (en) * 2013-12-06 2017-08-22 SkyBell Technologies, Inc. Doorbell communication systems and methods

Also Published As

Publication number Publication date
JP2018520433A (ja) 2018-07-26
CN107771326A (zh) 2018-03-06
US20180188999A1 (en) 2018-07-05
GB2539460A (en) 2016-12-21
EP3311244A1 (en) 2018-04-25
GB201510607D0 (en) 2015-07-29
TW201705005A (zh) 2017-02-01
WO2016203243A1 (en) 2016-12-22

Similar Documents

Publication Publication Date Title
EP3106997B1 (en) On-chip sensor hub, and mobile device and multi-sensor management method therefor
TWI494857B (zh) 喚醒事件管理方法、喚醒事件管理裝置以及喚醒事件管理電腦程式產品
EP2324407B1 (en) Circuit having a low power mode
EP2783266B1 (en) Microprocessor, and method of managing reset events therefor
US6675305B1 (en) Power saving in a USB peripheral by providing gated clock signal to CSR block in response to a local interrupt generated when an operation is to be performed
TW200419331A (en) Power shutdown method of wireless peripheral device
CN107077184A (zh) 具有快速恢复的系统待机仿真
EP3460630A1 (en) False-touch-wakeup prevention apparatus and method, intelligent terminal and computer storage medium
US6711692B1 (en) Data processing unit including central unit and peripheral unit driven by separate power supplies
TWI515550B (zh) 晶片裝置及其電子系統
KR20180018755A (ko) 집적 회로 입력들 및 출력들
CN114578939A (zh) 一种单线唤醒和按键检测的电路
US7263564B2 (en) Inquiring apparatus and method thereof
CN216956887U (zh) 一种单线唤醒和按键检测的电路
CN217388529U (zh) 控制电路、加密芯片及电子设备
JP3980680B2 (ja) D−ramカード
CN110389673B (zh) 带唤醒功能的手动kvm切换器
KR20070061625A (ko) 멀티-칩 모듈의 마이크로 컨트롤러 유닛, 이를 포함하는멀티-칩 모듈, 및 멀티-칩 모듈의 전원 모드 동기 방법
JPH0756774A (ja) ウォッチドッグタイマ
JP2871186B2 (ja) マイクロコンピュータ
JP3308670B2 (ja) イベントドリブン型処理装置の故障検出装置
JP2637849B2 (ja) マイクロコンピュータ
JPH0716216U (ja) キーボード入力監視装置
JPH0926838A (ja) 消費電力監視による論理回路の省電力回路
JPH0563738A (ja) データロス検出回路