KR102632020B1 - 시변 원자 데이터의 유연한 비-차단 비동기식 전송 - Google Patents

시변 원자 데이터의 유연한 비-차단 비동기식 전송 Download PDF

Info

Publication number
KR102632020B1
KR102632020B1 KR1020217039902A KR20217039902A KR102632020B1 KR 102632020 B1 KR102632020 B1 KR 102632020B1 KR 1020217039902 A KR1020217039902 A KR 1020217039902A KR 20217039902 A KR20217039902 A KR 20217039902A KR 102632020 B1 KR102632020 B1 KR 102632020B1
Authority
KR
South Korea
Prior art keywords
buffer
data vectors
buffers
receiver
information
Prior art date
Application number
KR1020217039902A
Other languages
English (en)
Other versions
KR20220004208A (ko
Inventor
나단 다니엘 포즈니악 뷰캐넌
나리안카두 디. 헴쿠마르
사친 데오
Original Assignee
시러스 로직 인터내셔널 세미컨덕터 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시러스 로직 인터내셔널 세미컨덕터 리미티드 filed Critical 시러스 로직 인터내셔널 세미컨덕터 리미티드
Publication of KR20220004208A publication Critical patent/KR20220004208A/ko
Application granted granted Critical
Publication of KR102632020B1 publication Critical patent/KR102632020B1/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/617Upgrading or updating of programs or applications for camera control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Input (AREA)
  • Studio Devices (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

데이터 벡터들의 송신기로부터 데이터 벡터들의 수신기로 데이터 벡터들을 원자적으로 전송하기 위한 시스템은 데이터의 벡터들을 저장하도록 구성된 복수의 메모리 버퍼들을 포함할 수 있고, 각각의 버퍼는 데이터 한 번에 벡터들 중 하나의 벡터를 저장하도록 구성되고, 복수의 메모리 버퍼들은 적어도 3개의 메모리 버퍼들 및 복수의 메모리 버퍼들을 제어하기 위한 제어기를 포함한다. 제어기는 데이터 벡터들에 의해 표현되는 정보를 수신기로 전송하기 위한 조건에 응답하여, 복수의 버퍼들 중 어느 버퍼로부터, 수신기가 송신기에 의해 복수의 버퍼들에 완전히 기입된 가장-최근에 업데이트된 정보를 수신할 수 있는지를 결정하도록 구성될 수 있다. 제어기는 추가로 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 가장-최근에 업데이트된 버퍼로부터의 정보의 수신기에 의한 원자적 수신을 차단하지 않으면서 복수의 버퍼들 중 어느 버퍼에 송신기가 업데이트된 정보를 기입할지를 결정하도록 구성될 수 있다.

Description

시변 원자 데이터의 유연한 비-차단 비동기식 전송
본 개시내용은 일반적으로 전자 디바이스들에 관한 것으로, 보다 구체적으로, 모바일 디바이스에서 카메라의 위치를 제어하기 위한 시스템에서 사용될 수 있는 시변 원자 데이터의 유연한 비-차단 비동기식 전송, 및/또는 다른 적합한 애플리케이션들에 관한 것이다.
많은 종래의 모바일 디바이스들(예를 들어, 휴대폰들)은 이미지들을 캡처하기 위한 하나 이상의 카메라들을 포함한다. 이미지 안정화 및 포커스를 제공하기 위해, 이미지의 객체에 실질적으로 평행한 평면 내에서 카메라의 위치 및 이러한 평면에 수직인 방향에서 카메라 렌즈의 위치는 카메라 제어기의 제어 하에 복수의 모터들에 의해 제어될 수 있다. 제어 시스템은 통신 인터페이스(예를 들어, 인터-통합 회로 또는 I2C 인터페이스)를 통해 카메라 및 카메라의 다양한 모터들에 로컬인 카메라 제어기에 결합된 모바일 디바이스의 애플리케이션 프로세서를 사용하여 구현될 수 있다. 예를 들어, 애플리케이션 프로세서는 애플리케이션 프로세서에 대한 목표 위치에 관한 데이터의 벡터를 카메라 제어기에 통신할 수 있는 반면, 카메라 제어기는 복수의 자기 센서들(예를 들어, 홀 센서들) 및/또는 다른 적절한 센서들에 의해 감지된 카메라의 실제 위치에 관한 벡터를 애플리케이션 프로세서에 통신할 수 있다.
카메라 제어기로부터 애플리케이션 프로세서로의 벡터 데이터의 전송은 데이터가 카메라 제어기에 의해 비동기식으로 생성되고 애플리케이션 프로세서에 의해 비동기식으로 소비되는 전송일 수 있다. 또한, 소비된 데이터 벡터가 이용가능한 최신 벡터인 것이 바람직할 수 있다. 또한, 데이터 벡터의 생성 및 소비가 원자적(atomic)인 것이 바람직할 수 있는데, 데이터 벡터가 데이터 손상, 데이터 통신오류 및 데이터 오역을 방지하기 위해 소비 동안 변화되지 않을 수 있기 때문이다. 또한, 전송이 비-차단인 것이 바람직할 수 있고, 이는, 애플리케이션 프로세서가 기존 데이터 벡터를 소비하는 경우에도 카메라 제어기가 새로운 데이터 벡터를 생성할 수 있어야 함을 의미한다. 전송이 최소한의 통신 오버헤드(overhead)를 포함하고 구성가능한 벡터 길이 및 내용을 갖는 것이 추가로 바람직할 수 있다.
본 개시내용의 교시에 따르면, 통신 인터페이스를 통한 데이터 벡터들의 전송과 연관된 단점들 및 문제들이 감소되거나 제거될 수 있다.
본 개시내용의 실시예들에 따르면, 데이터 벡터들의 송신기로부터 데이터 벡터들의 수신기로 데이터 벡터들을 원자적으로 전송하기 위한 시스템은 데이터의 벡터들을 저장하도록 구성된 복수의 메모리 버퍼들을 포함할 수 있고, 각각의 버퍼는 데이터 벡터들 중 하나의 벡터를 한 번에 저장하도록 구성되고, 복수의 메모리 버퍼들은 적어도 3개의 메모리 버퍼들 및 복수의 메모리 버퍼들을 제어하기 위한 제어기를 포함한다. 제어기는 데이터 벡터들에 의해 표현되는 정보를 수신기로 전송하기 위한 조건에 응답하여, 복수의 버퍼들 중 어느 버퍼로부터, 수신기가 송신기에 의해 복수의 버퍼들에 완전히 기입된 가장-최근에 업데이트된 정보를 수신할 수 있는지를 결정하도록 구성될 수 있다. 제어기는 추가로 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 가장-최근에 업데이트된 버퍼로부터의 정보의 수신기에 의한 원자적 수신을 차단하지 않으면서 복수의 버퍼들 중 어느 버퍼에 송신기가 업데이트된 정보를 기입할지를 결정하도록 구성될 수 있다.
본 개시내용의 이들 및 다른 실시예들에 따르면, 데이터 벡터들의 송신기로부터 데이터 벡터들의 수신기로 데이터 벡터들을 원자적으로 전송하는 방법은 데이터의 벡터들을 복수의 메모리 버퍼들에 저장하는 단계를 포함할 수 있고, 각각의 버퍼는 한번에 데이터 벡터들 중 하나의 벡터를 저장하도록 구성되고, 복수의 메모리 버퍼들은 적어도 3개의 메모리 버퍼들을 포함한다. 방법은 또한 데이터 벡터들에 의해 표현되는 정보를 수신기로 전송하기 위한 조건에 응답하여, 복수의 버퍼들 중 어느 버퍼로부터, 수신기가 송신기에 의해 복수의 버퍼들에 완전히 기입된 가장-최근에 업데이트된 정보를 수신할 수 있는지를 결정하는 단계를 포함할 수 있다. 방법은 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 가장-최근에 업데이트된 버퍼로부터의 정보의 수신기에 의한 원자적 수신을 차단하지 않으면서 복수의 버퍼들 중 어느 버퍼에 송신기가 업데이트된 정보를 기입할지를 결정하는 단계를 더 포함할 수 있다.
본 개시내용의 이들 및 다른 실시예들에 따라, 시스템은 데이터 벡터들의 송신을 위한 송신기, 데이터 벡터들을 수신하기 위한 수신기, 데이터 벡터들을 저장하도록 구성된 복수의 메모리 버퍼들로서, 각각의 버퍼는 한번에 데이터 벡터들 중 하나의 벡터를 저장하도록 구성되고, 복수의 메모리 버퍼들은 적어도 3개의 메모리 버퍼들을 포함하는, 상기 복수의 메모리 버퍼, 및 복수의 메모리 버퍼들을 제어하고 데이터 벡터들의 송신기로부터 데이터 벡터들의 수신기로 데이터 벡터들을 원자적으로 전송하는 제어기를 포함할 수 있다. 제어기는 데이터 벡터들에 의해 표현되는 정보를 수신기로 전송하기 위한 조건에 응답하여, 복수의 버퍼들 중 어느 버퍼로부터, 수신기가 송신기에 의해 복수의 버퍼들에 완전히 기입된 가장-최근에 업데이트된 정보를 수신할 수 있는지를 결정하도록 구성될 수 있다. 제어기는 추가로 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 가장-최근에 업데이트된 버퍼로부터의 정보의 수신기에 의한 원자적 수신을 차단하지 않으면서 복수의 버퍼들 중 어느 버퍼에 송신기가 업데이트된 정보를 기입할지를 결정하도록 구성될 수 있다.
본 개시내용의 기술적 장점들은 본원에 포함된 도면들, 설명 및 청구범위들로부터 통상의 기술자에게 쉽게 명백할 수 있다. 실시예들의 목적들 및 장점들은 특히 청구범위들에서 지적된 적어도 요소들, 특징들, 및 조합들에 의해 실현되고 달성될 것이다.
전술한 일반적인 설명 및 다음의 상세한 설명 둘 모두가 예들이고 설명적이며 본 개시내용에서 설명된 청구범위들로 제한하지 않는 것이 이해되어야 한다.
본 실시예들 및 이의 장점들의 보다 완전한 이해는 첨부 도면들과 함께 취해진 다음 설명을 참조함으로써 습득될 수 있고, 여기서 유사한 참조 번호들은 유사한 피처(feature)들을 나타낸다.
도 1은 본 개시내용의 실시예들에 따른, 예시적인 모바일 디바이스의 선택된 구성요소들의 블록도를 예시한다.
도 2는 본 개시내용의 실시예들에 따른, 예시적인 공유 메모리의 선택된 구성요소들의 블록도를 예시한다.
도 3은 본 개시내용의 실시예들에 따른, 포인터 변수(pointer variable)들의 예시적인 시간 진행을 묘사하는 타이밍도를 예시한다.
도 4는 본 개시내용의 실시예들에 따른, 빈 버퍼의 예시적인 선택, 카메라 제어기로부터 기입된 데이터로 버퍼 충전, 및 애플리케이션 프로세서에 의한 데이터 판독을 묘사하는 타이밍도를 예시한다.
본 개시내용의 실시예들에 따르면, 삼중 버퍼 방식은 구성가능한-길이 벡터 원자 시변 데이터의 효율적인 비동기식 및 비-차단 전송을 가능하게 할 수 있다. 트랜잭션들의 원자성은 사용 중인 버퍼들을 지정할 수 있는 버퍼 포인터들과 데이터 송신기에 의해 기입될 데이터 벡터를 저장하기 위한 빈 버퍼를 결정하는 절차에 의해 보장될 수 있다.
도 1은 본 개시내용의 실시예들에 따른, 예시적인 모바일 디바이스(102)의 선택된 구성요소들의 블록도를 예시한다. 도 1에 도시된 바와 같이, 모바일 디바이스(102)는 인클로저(101), 애플리케이션 프로세서(103), 마이크로폰(106), 카메라(107), 라디오 송신기/수신기(108), 스피커(110), 및 카메라 제어기(112)를 포함할 수 있다.
인클로저(101)는 모바일 디바이스(102)의 다양한 구성요소를 하우징하기 위한 임의의 적합한 하우징, 케이싱, 또는 다른 인클로저를 포함할 수 있다. 인클로저(101)는 플라스틱, 금속, 및/또는 임의의 다른 적합한 재료들로 구성될 수 있다. 또한, 인클로저(101)는 모바일 디바이스(102)가 모바일 디바이스(102) 사용자의 사람 상에서 쉽게 운반되도록 적응(예를 들어, 크기결정 및 형상화)될 수 있다. 따라서, 모바일 디바이스(102)는 스마트폰, 태블릿 컴퓨팅 디바이스, 핸드헬드 컴퓨팅 디바이스, 개인 휴대 정보 단말기, 노트북 컴퓨터, 비디오 게임 제어기, 또는 모바일 디바이스(102) 사용자의 사람 상에서 쉽게 운반될 수 있는 임의의 다른 디바이스를 포함할 수 있지만 이에 제한되지 않는다.
애플리케이션 프로세서(103)는 인클로저(101) 내에 하우징될 수 있고 프로그램 명령들 및/또는 프로세스 데이터를 해석 및/또는 실행하도록 구성된 임의의 시스템, 디바이스, 또는 장치를 포함할 수 있고, 제한 없이, 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 또는 프로그램 명령들 및/또는 프로세스 데이터를 해석 및/또는 실행하도록 구성된 임의의 다른 디지털 또는 아날로그 회로를 포함할 수 있다. 일부 실시예들에서, 애플리케이션 프로세서(103)는 메모리(명시적으로 도시되지 않음) 및/또는 애플리케이션 프로세서(103)에 액세스가능한 다른 컴퓨터-판독가능 매체에 저장된 프로그램 명령들을 해석 및/또는 실행할 수 있다.
마이크로폰(106)은 인클로저(101) 내에 적어도 부분적으로 하우징될 수 있고, 애플리케이션 프로세서(103)에 통신가능하게 결합될 수 있고, 마이크로폰(106)에 입사되는 사운드를 애플리케이션 프로세서(103)에 의해 프로세싱될 수 있는 전기 신호로 변환하도록 구성된 임의의 시스템, 디바이스 또는 장치를 포함할 수 있고, 이러한 사운드는 진동판 또는 멤브레인(membrane)에서 수신된 음파 진동들에 기반하여 변하는 전기 커패시턴스를 갖는 진동판 또는 멤브레인을 사용하여 전기 신호로 변환된다. 마이크로폰(106)은 정전 마이크로폰, 콘덴서 마이크로폰, 일렉트릿 마이크로폰, MEM(microelectromechanical systems) 마이크로폰, 또는 임의의 다른 적합한 용량성 마이크로폰을 포함할 수 있다.
라디오 송신기/수신기(108)는 인클로저(101) 내에 하우징될 수 있고, 애플리케이션 프로세서(103)에 통신가능하게 결합될 수 있고, 안테나의 도움으로, 라디오-주파수 신호들을 생성하여 송신할 뿐 아니라 라디오-주파수 신호들을 수신하고 이러한 수신된 신호들에 의해 반송된 정보를 애플리케이션 프로세서(103)에 의해 사용가능한 형태로 변환하도록 구성된 임의의 시스템, 디바이스 또는 장치를 포함할 수 있다. 라디오 송신기/수신기(108)는 제한 없이, 셀룰러 통신들(예를 들어, 2G, 3G, 4G, LTE 등), 단거리 무선 통신들(예를 들어, , BLUETOOTH), 상업용 라디오 신호들, 텔레비전 신호들, 위성 라디오 신호들(예를 들어, GPS), 무선 충실도 등을 포함하는 다양한 유형들의 라디오-주파수 신호들을 송신 및/또는 수신하도록 구성될 수 있다.
스피커(110)는 인클로저(101) 내에 적어도 부분적으로 하우징될 수 있거나 인클로저(101) 외부에 있을 수 있고, 애플리케이션 프로세서(103)에 통신가능하게 결합될 수 있고, 전기 오디오 신호 입력에 응답하여 사운드를 생성하도록 구성된 임의의 시스템, 디바이스 또는 장치를 포함할 수 있다. 일부 실시예들에서, 스피커는 자기 갭을 통해 축방향으로 이동하도록 음성 코일을 제약하는 유연한 서스펜션을 통해 강성 프레임에 기계적으로 결합된 경량 진동판을 사용하는 동적 확성기를 포함할 수 있다. 음성 코일에 전기 신호를 가하면, 음성 코일의 전류에 의해 자기장이 생성되어, 가변 전자석이 된다. 음성 코일과 드라이버의 자기 시스템은 상호 작용하여, 음성 코일(따라서, 부착된 콘(cone))이 앞뒤로 움직이게 하는 기계적 힘을 생성하고, 이에 의해 앰프에서 오는 인가된 전기 신호의 제어 하에 사운드를 재생한.
카메라(107)는 (카메라(107)의 렌즈에 광이 진입하게 하도록) 적어도 부분적으로 인클로저(101) 내에(그리고 부분적으로 인클로저(101) 외부에) 하우징될 수 있고, 애플리케이션 프로세서(103)에 의해 프로세싱될 수 있는 하나 이상의 전기 신호들로 이미지들(움직이는 또는 정지된)을 기록하기 위한 임의의 적합한 시스템, 디바이스 또는 장치를 포함할 수 있다. 도 1에 도시된 바와 같이, 카메라(107)는 복수의 모터들(114), 센서들(116), 및 이미지 캡처링 구성요소들(118)을 포함할 수 있다.
이미지 캡처링 구성요소들(118)은 수신된 광의 세기들 및 파장들을 감지하기 위한 하나 이상의 렌즈들 및 이미지 센서들을 제한 없이 포함하는, 이미지를 캡처하도록 구성된 구성요소들의 집합을 포함할 수 있다. 이러한 이미지 캡처링 구성요소들(118)은 카메라(107)가 캡처된 이미지들을 애플리케이션 프로세서(103)에 통신할 수 있도록 애플리케이션 프로세서(103)에 결합될 수 있다.
모터들(114)은 이미지 캡처링 구성요소들(118) 중 하나 이상에 기계적으로 결합될 수 있고, 각각의 모터(114)는 원하는 카메라 위치를 나타내는 카메라 제어기(112)로부터 수신된 제어 신호들에 기반하여 그러한 원하는 카메라 위치로의 그러한 하나 이상의 이미지 캡처링 구성요소들의 기계적 움직임을 구동하도록 구성된 임의의 적합한 시스템, 디바이스 또는 장치를 포함할 수 있다.
센서들(116)은 이미지 캡처링 구성요소들(118) 및/또는 모터들(114) 중 하나 이상에 기계적으로 결합될 수 있고 카메라(107)와 연관된 위치를 감지하도록 구성될 수 있다. 예를 들어, 제1 센서(116)는 제1 선형 방향에 관한 카메라(107)의 제1 위치(예를 들어, x-위치)를 감지할 수 있고, 제2 센서(116)는 제1 선형 방향에 수직인 제2 선형 방향에 관하여 카메라(107)의 제2 위치(예를 들어, y-위치)를 감지할 수 있고, 제3 센서(116)는 제1 선형 방향 및 제2 선형 방향에 수직인 제3 선형 방향에 관련한 카메라(107)의 제3 위치(예를 들어, z-위치)(예를 들어, 렌즈의 위치)를 감지할 수 있다.
카메라 제어기(112)는 인클로저(101) 내에 하우징될 수 있고, (예를 들어, I2C(Inter-Integrated Circuit) 인터페이스를 통해) 카메라(107) 및 애플리케이션 프로세서(103)에 통신 가능하게 결합될 수 있고, 카메라(107)의 구성요소들을 원하는 위치에 배치하기 위해 모터들(114) 또는 카메라(107)의 다른 구성요소들을 제어하도록 구성된 임의의 시스템, 디바이스 또는 장치를 포함할 수 있다. 카메라 제어기(112)는 또한 카메라(107)의 실제 위치 및/또는 카메라(107)의 상태에 관한 신호들을 센서들(116)로부터 수신하도록 구성될 수 있다. 도 1에 도시된 바와 같이, 카메라 제어기(112)는 임베디드 프로세서(111), 인터페이스 제어 회로(109), 및 인터페이스 제어 회로(109) 및 임베디드 프로세서(111) 각각에 통신가능하게 결합된 공유 메모리(104)를 포함할 수 있다.
임베디드 프로세서(111)는 카메라 제어기(112)에 통합될 수 있고, 프로그램 명령들 및/또는 프로세스 데이터를 해석 및/또는 실행하도록 구성된 임의의 시스템, 디바이스 또는 장치를 포함할 수 있고, 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 또는 프로그램 명령들 및/또는 프로세스 데이터를 해석 및/또는 실행하도록 구성된 임의의 다른 디지털 또는 아날로그 회로를 제한 없이 포함할 수 있다. 일부 실시예들에서, 애플리케이션 프로세서(103)는 메모리(예를 들어, 공유 메모리 또는 다른 메모리) 및/또는 임베디드 프로세서(111)에 액세스가능한 다른 컴퓨터-판독가능 매체에 저장된 프로그램 명령들 및/또는 프로세스 데이터를 해석 및/또는 실행할 수 있다. 구체적으로, 임베디드 프로세서(111)는 공유 메모리(104)의 제어 및 관리, 모터들(114)의 제어, 및 센서들(116)로부터 데이터의 수신 및 프로세싱을 포함하지만 이에 제한되지 않는 카메라 제어기(112)의 기능을 수행하도록 구성될 수 있다.
공유 메모리(104)는 카메라 제어기(112)에 통합될 수 있고, 인터페이스 제어 회로(109) 및 임베디드 프로세서(111) 각각에 결합될 수 있다. 공유 메모리(104)는 일정 기간 동안 프로그램 명령들 및/또는 데이터를 보유하도록 구성된 임의의 시스템, 디바이스 또는 장치(예를 들어, 컴퓨터-판독가능 매체)를 포함할 수 있다. 공유 메모리(104)는 RAM(random access memory), EEPROM(electrically erasable programmable read-only memory), PCMCIA(Personal Computer Memory Card International Association) 카드, 플래시 메모리, 자기 스토리지, 광자기 스토리지, 또는 임의의 적합한 선택 및/또는 휘발성 또는 모바일 디바이스(102)에 대한 전원이 꺼진 후에도 데이터를 유지하는 휘발성 또는 비휘발성 메모리의 어레이를 포함할 수 있다.
인터페이스 제어 회로(109)는 애플리케이션 프로세서(103)와 공유 메모리(104) 사이의 통신 인터페이스의 역할을 하도록 구성된 임의의 적합한 시스템, 디바이스 또는 장치를 포함할 수 있고/있거나 아래에서 더 상세히 설명된 공유 메모리(104)(도 2 참조)의 복수의 버퍼들(202)을 제어할 수 있다.
도 2는 본 개시내용의 실시예들에 따른 예시적인 공유 메모리(104)의 선택된 구성요소들의 블록도를 예시한다. 도 2에 도시된 바와 같이, 공유 메모리(104)는 복수의 적어도 3개의 메모리 버퍼들(202A, 202B, 및 202C)(이는 개별적으로 "메모리 버퍼(202)"로 지칭될 수 있고 집합적으로 "메모리 버퍼들(202)"로 지칭될 수 있음)을 포함할 수 있고, 복수의 포인터 변수들(204A 및 204B)(예를 들어, 공유 메모리(104)의 일부에 의해 각각 구현될 수 있음)을 포함할 수 있다.
각각의 메모리 버퍼(202)는 데이터의 벡터를 저장하도록 구성될 수 있다. 데이터의 벡터는 카메라(107)에 의해 공유 메모리(104)에 통신되는 카메라(107)와 관련된 위치 및/또는 상태 정보를 포함할 수 있다. 포인터 변수(204A)는 임베디드 프로세서(111)에 의해 정보가 완전히 기입된 복수의 버퍼들(202) 중 가장-최근에 업데이트된 버퍼를 정의할 수 있다. 포인터 변수(204B)는 애플리케이션 프로세서(103)가 인터페이스 제어 회로(109)를 통해 정보를 능동적으로 수신할 수 있는 복수의 버퍼들(202) 중 활성 버퍼(202)를 정의할 수 있다. 따라서, 카메라 제어기(112)는 수신기(예를 들어, 애플리케이션 프로세서(103))가 정보를 수신하는 복수의 버퍼들(202) 중 활성 버퍼(202)를 정의하는 제1 변수(포인터 변수(204B))를 유지하도록 구성될 수 있고 또한 정보가 송신기(예를 들어, 카메라(107))에 의해 완전히 기입된 복수의 버퍼들(202) 중 가장-최근에 업데이트된 버퍼(202)를 정의하는 제2 변수(포인터 변수(204A))를 유지할 수 있다.
도 2는 3개의 버퍼들(202)을 갖는 공유 메모리(104)를 묘사하지만, 공유 메모리(104)는 3개 이상의 버퍼들(202) 중 임의의 적합한 수를 가질 수 있다.
동작 시, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 데이터 벡터들에 의해 표현된 정보를 애플리케이션 프로세서(103)로 전송하기 위한 조건에 응답하여(예를 들어, 벡터 데이터를 판독하기 위한 애플리케이션 프로세서(103)로부터의 "판독" 커맨드에 응답하여), 복수의 버퍼들(202) 중 어느 버퍼로부터 애플리케이션 프로세서(103)가 임베디드 프로세서(111)에 의해 복수의 버퍼들(202)에 완전히 기입된 가장-최근에 업데이트된 정보를 수신할 수 있는지를 결정하도록 구성될 수 있다. 이러한 버퍼(202)는 포인터 변수(204A)에 의해 정의된 바와 같이 복수의 버퍼들(202) 중 가장-최근에 업데이트된 버퍼로 정의된 버퍼(202)일 수 있다. 또한, 동작 시, 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 복수의 버퍼들(202) 중 어느 버퍼에, 임베디드 프로세서(111)가 포인터 변수(204A)에 의해 정의된 바와 같이 가장-최근에 업데이트된 버퍼(202)로부터의 정보의 애플리케이션 프로세서(103)에 의한 원자적 수신을 차단하지 않고 업데이트된 정보를 기입할지를 결정하도록 구성될 수 있다. 예를 들어, 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 포인터 변수(204B)에 의해 정의된 활성 버퍼(존재하는 경우) 및 포인터 변수(204A)에 의해 정의된 바와 같이 송신기가 업데이트된 정보를 기입하기 위한 가장-최근에 업데이트된 버퍼 이외의 복수의 버퍼들(202)로부터 선택된 버퍼(202)를 선택할 수 있다.
또한, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 임베디드 프로세서(111)에 의해 선택된 버퍼(202)에 업데이트된 정보 기입 완료에 응답하여, 선택된 버퍼(202)를 가장-최근에 업데이트된 버퍼(202)로서 정의하기 위해 포인터 변수(204A)를 수정하도록 추가로 구성될 수 있다.
또한, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 데이터 벡터들에 의해 표현된 정보를 애플리케이션 프로세서(103)로 전송하기 위한 조건에 응답하여(예를 들어, 벡터 데이터를 판독하기 위한 애플리케이션 프로세서(103)로부터의 "판독" 커맨드에 응답하여), 애플리케이션 프로세서(103)가 포인터 변수(204A)에 의해 정의된 바와 같이 가장-최근에 업데이트된 버퍼(202)로부터 정보를 수신하게 하고, 애플리케이션 프로세서(103)가 포인터 변수(204A)에 의해 정의된 바와 같이 가장-최근에 업데이트된 버퍼(202)로부터 정보를 수신하게 하는 것과 실질적으로 동시에, 가장-최근에 업데이트된 버퍼(202)를 활성 버퍼(202)로서 재정의하도록 포인터 변수(204B)를 수정하도록 추가로 구성될 수 있다.
카메라 제어기(112)의 기능의 추가 논의는 아래의 도 3 및 도 4와, 그에 대한 설명들에 설명되어 있다.
도 3은 본 개시내용의 실시예들에 따른 포인터 변수들(204A 및 204B)의 예시적인 시간 진행을 묘사하는 타이밍도를 예시한다. 도 4는 본 개시내용의 실시예들에 따른, 빈 버퍼(202)의 예시적인 선택, 임베디드 프로세서(111)로부터 기입된 데이터로 버퍼(202) 충전, 및 애플리케이션 프로세서(103)에 의한 데이터 판독을 묘사하는 타이밍도를 예시한다.
도 3 및 도 4에 도시된 바와 같이, 시간(t0) 이전의 어떤 시간에서, 모든 버퍼들(202)은 비어 있을 수 있고, 카메라 제어기(112)는 버퍼(202A)를 벡터 데이터로 채울 수 있다. 시간(t0)에서, 벡터 데이터를 사용하여 버퍼(202A)에 기입을 완료한 후, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 버퍼(202A)를, 애플리케이션 프로세서(103)로부터의 판독 커맨드에 응답하여 판독되어야 하는 버퍼로서 지정하도록 포인터 변수(204A)를 설정할 수 있다.
시간(t1)에서, 애플리케이션 프로세서(103)로부터의 판독 커맨드가 발생할 수 있고, 인터페이스 제어 회로(109)는 포인터 변수(204A)에 의해 지정된 버퍼(202A) 내의 데이터가 애플리케이션 프로세서(103)에 의해 판독되게 할 수 있고, 또한 버퍼(202A)를 데이터가 판독되는 활성 버퍼로 지정하도록 포인터 변수(204B)를 설정할 수 있다.
애플리케이션 프로세서(103)가 데이터를 능동적으로 수신하는 시간 동안 임베디드 프로세서(111)에 의해 추가 데이터 벡터가 기입되면, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 데이터가 활성 버퍼(202A) 및 포인터 변수(204A)에 의해 지적된 버퍼(202)(존재하는 경우) 이외의 버퍼(202)(예를 들어, 버퍼(202B))에 기입되게 할 수 있다. 시간(t2)에서, 벡터 데이터를 사용하여 버퍼(202B)에 기입을 완료한 후, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 버퍼(202B)를, 애플리케이션 프로세서(103)로부터의 판독 커맨드에 응답하여 판독되어야 하는 버퍼로서 지정하도록 포인터 변수(204A)를 설정할 수 있다.
시간(t3)에서, 애플리케이션 프로세서(103)로부터의 판독 커맨드가 발생할 수 있고, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 포인터 변수(204A)에 의해 지정된 바와 같은 버퍼(202B) 내의 데이터가 애플리케이션 프로세서(103)에 의해 판독되게 할 수 있고, 또한 버퍼(202B)를 데이터가 판독되는 활성 버퍼로 지정하도록 포인터 변수(204B)를 설정할 수 있다.
시간(t3) 이후의 시간에서, 애플리케이션 프로세서(103)가 데이터를 능동적으로 수신하는 시간 동안 임베디드 프로세서(111)에 의해 추가 데이터 벡터가 기입되면, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 데이터가 활성 버퍼(202B) 및 포인터 변수(204A)에 의해 지적된 버퍼(202)(존재하는 경우) 이외의 버퍼(202)(예를 들어, 버퍼(202A))에 기입되게 할 수 있다. 시간(t4)에서, 데이터가 버퍼(202A)에 기입된 후, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 버퍼(202A)를, 애플리케이션 프로세서(103)로부터의 판독 커맨드에 응답하여 판독되어야 하는 버퍼로서 지정하도록 포인터 변수(204A)를 설정할 수 있다.
시간(t4) 이후의 시간에서, 임베디드 프로세서(111)는 데이터를 다시 기입할 수 있고, 카메라 제어기(112)는 데이터가 포인터 변수(204A)에 의해 지정된 활성 버퍼(202B) 및 포인터 변수(204B)에 의해 지정된 바와 같이 가장-최근에 업데이트된 버퍼(202A) 이외의 버퍼(202)(예를 들어, 버퍼(202C))에 기입되게 할 수 있다. 시간(t5)에서, 데이터가 버퍼(202C)에 기입된 후, 카메라 제어기(112)는 버퍼(202C)를, 애플리케이션 프로세서(103)로부터의 판독 커맨드에 응답하여 판독되어야 하는 버퍼로서 지정하도록 포인터 변수(204A)를 설정할 수 있다. 따라서, 임베디드 프로세서(111)는 비동기식으로 버퍼들(202)에 기입할 수 있고, (예를 들어, 시간(t4) 직전에 발생하는 버퍼(202A)에 대한 기입 같은) 버퍼(202)에 대한 모든 기입이 애플리케이션 프로세서(103)에 의해 판독되지 않을 수 있다.
시간(t6)에서, 애플리케이션 프로세서(103)로부터의 판독 커맨드가 발생할 수 있고, 카메라 제어기(112)는 (예를 들어, 인터페이스 제어 회로(109) 및/또는 임베디드 프로세서(111)를 통해) 포인터 변수(204A)에 의해 지정된 바와 같은 버퍼(202C) 내의 데이터가 애플리케이션 프로세서(103)에 의해 판독되게 할 수 있고, 또한 버퍼(202C)를 데이터가 판독되는 활성 버퍼로 지정하도록 포인터 변수(204B)를 설정할 수 있다. 또한, 3개(또는 그 이상)의 버퍼(202)의 사용은 카메라 제어기(112)가 이미 사용 중이 아닌 버퍼(202)에 기입할 수 있는 것을 보장할 수 있다. 또한, 본원에 설명된 아키텍처는 애플리케이션 프로세서(103)가 가장 최근에 기록된 벡터의 비동기식 판독을 수행하는 것을 허용할 수 있다.
본원에 사용된 바와 같이, 2개 이상의 요소들이 서로 "결합된" 것으로 언급될 때, 그러한 용어는 그러한 2개 이상의 요소들이 개재 요소들에 의해 간접적으로 연결되든 개재 요소들 없이 직접적으로 연결되든 적용가능한 경우 전자 통신 또는 기계적 통신하는 것을 나타낸다.
본 개시내용은 통상의 기술자가 이해할 수 있는 본원의 예시적인 실시예들에 대한 모든 변화들, 대체들, 변형들, 변경들, 및 수정들을 포함한다. 유사하게, 적절한 경우, 첨부된 청구범위들은 통상의 기술자가 이해할 수 있는 본원의 예시적인 실시예들에 대한 모든 변경들, 대체들, 변형들, 변경들 및 수정들을 포함한다. 또한, 특정 기능을 수행하도록 적응, 배열, 가능, 구성, 활성, 동작가능 또는 동작하는 장치 또는 시스템 또는 장치 또는 시스템의 구성요소에 대한 첨부된 청구항들의 참조는, 해당 장치, 시스템, 또는 구성요소가 그렇게 적응, 배열, 가능, 구성, 활성화, 동작가능, 또는 동작되는 한, 특정 기능이 활성화되든, 턴 온 되든, 또는 잠금해제되든 아니든, 해당 장치, 시스템, 구성요소를 포함한다. 따라서, 본 개시내용의 범위를 벗어나지 않고 본원에 설명된 시스템들, 장치들, 및 방법들에 수정들, 추가들, 또는 생략들이 이루어질 수 있다. 예를 들어, 시스템들 및 장치들의 구성요소들은 통합되거나 분리될 수 있다. 또한, 본원에 개시된 시스템들 및 장치들의 동작들은 더 많거나 더 적은 또는 다른 구성요소들에 의해 수행될 수 있고 설명된 방법들은 더 많거나 더 적거나 다른 단계들을 포함할 수 있다. 또한, 단계들은 임의의 적합한 순서로 수행될 수 있다. 이 문서에서 사용된 바와 같이, "각각"은 세트의 각각의 구성원 또는 세트의 서브세트의 각각의 구성원을 지칭한다.
예시적인 실시예들이 도면들에 예시되고 아래에 설명되지만, 본 개시내용의 원리들은 현재 알려져 있든 알려지지 않았든 임의의 수의 기법들을 사용하여 구현될 수 있다. 본 개시내용은 도면들에 예시되고 위에서 설명된 예시적인 구현들 및 기법들로 결코 제한되어서는 안 된다.
달리 구체적으로 언급되지 않는 한, 도면들에 묘사된 물품들은 반드시 축척대로 그려진 것은 아니다.
본원에 나열된 모든 예들 및 조건부 언어는 독자가 본 개시내용 및 본 발명이 기술을 발전시키기 위해 기여한 개념들을 이해하는 데 도움이 되는 교육적 목적들을 위한 것이고, 구체적으로 나열된 예들 및 조건들로 제한되지 않는 것으로 해석된다. 본 개시내용의 실시예들이 상세히 설명되었지만, 다양한 변화들, 대체들, 및 변경들이 본 개시내용의 사상 및 범위에서 벗어나지 않고 여기에 이루어질 수 있다는 것이 이해되어야 한다.
특정 장점들이 위에서 열거되었지만, 다양한 실시예들은 열거된 장점들의 일부 또는 모두를 포함하거나, 전혀 포함하지 않을 수 있다. 또한, 다른 기술적 장점들은 전술한 도면들 및 설명을 검토한 후에 통상의 기술자에게 쉽게 명백해질 수 있다.
특허청과 본 출원에 대해 발행된 모든 특허 독자들이 본원에 첨부된 청구범위들을 해석하는 것을 돕기 위해, 출원인들은, "~을 위한 수단" 또는 "~을 위한 단계"라는 단어들이 특정 청구범위에서 명시적으로 사용되지 않는 한, 첨부된 청구범위들 또는 청구 요소들 중 임의의 것이 35 U.S.C. § 112(f)를 원용하도록 의도하지 않는 것을 유의하기를 원한다.

Claims (20)

  1. 데이터 벡터들의 송신기로부터 상기 데이터 벡터들의 수신기로 상기 데이터 벡터들을 원자적으로 전송하기 위한 시스템에 있어서,
    상기 데이터 벡터들을 저장하도록 구성된 복수의 메모리 버퍼들로서, 각각의 버퍼는 한번에 상기 데이터 벡터들 중 하나의 벡터를 저장하도록 구성되고, 상기 복수의 메모리 버퍼들은 적어도 3개의 메모리 버퍼들을 포함하는, 상기 복수의 메모리 버퍼들; 및
    상기 복수의 메모리 버퍼들을 제어하기 위한 제어기를 포함하고, 상기 제어기는:
    상기 데이터 벡터들에 의해 표현되는 정보를 상기 수신기로 전송하기 위한 조건에 응답하여, 상기 복수의 버퍼들 중 어느 버퍼로부터, 상기 수신기가 상기 송신기에 의해 상기 복수의 버퍼들에 완전히 기입된 가장-최근에 업데이트된 정보를 수신할 수 있는지를 결정하고;
    상기 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 가장-최근에 업데이트된 버퍼로부터의 정보의 상기 수신기에 의한 원자적 수신을 차단하지 않으면서 상기 복수의 버퍼들 중 어느 버퍼에 상기 송신기가 업데이트된 정보를 기입할지를 결정하도록 구성되는, 데이터 벡터들을 원자적으로 전송하기 위한 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 데이터 벡터들의 송신기로부터 상기 데이터 벡터들의 수신기로 상기 데이터 벡터들을 원자적으로 전송하기 위한 방법에 있어서,
    상기 데이터 벡터들을 복수의 메모리 버퍼들에 저장하는 단계로서, 각각의 버퍼는 한번에 상기 데이터 벡터들 중 하나의 벡터를 저장하도록 구성되고, 상기 복수의 메모리 버퍼들은 적어도 3개의 메모리 버퍼들을 포함하는, 상기 데이터 벡터들을 복수의 메모리 버퍼들에 저장하는 단계;
    상기 데이터 벡터들에 의해 표현되는 정보를 상기 수신기로 전송하기 위한 조건에 응답하여, 상기 복수의 버퍼들 중 어느 버퍼로부터, 상기 수신기가 상기 송신기에 의해 상기 복수의 버퍼들에 완전히 기입된 가장-최근에 업데이트된 정보를 수신할 수 있는지를 결정하는 단계; 및
    상기 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 가장-최근에 업데이트된 버퍼로부터의 정보의 상기 수신기에 의한 원자적 수신을 차단하지 않으면서 상기 복수의 버퍼들 중 어느 버퍼에 상기 송신기가 업데이트된 정보를 기입할지를 결정하는 단계를 포함하는, 상기 데이터 벡터들을 원자적으로 전송하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 수신기가 정보를 수신하는 상기 복수의 버퍼들 중 활성 버퍼를 정의하는 제1 변수를 유지하는 단계; 및
    정보가 상기 송신기에 의해 완전히 기입된 상기 복수의 버퍼들 중 상기 가장-최근에 업데이트된 버퍼를 정의하는 제2 변수를 유지하는 단계를 더 포함하는, 상기 데이터 벡터들을 원자적으로 전송하기 위한 방법.
  10. 제 9 항에 있어서, 상기 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 상기 활성 버퍼와 상기 송신기가 업데이트된 정보를 기입할 상기 가장-최근에 업데이트된 버퍼 이외의 상기 복수의 버퍼들로부터 선택된 버퍼를 선택하는 단계를 더 포함하는, 상기 데이터 벡터들을 원자적으로 전송하기 위한 방법.
  11. 제 10 항에 있어서, 상기 선택된 버퍼에 업데이트된 정보의 기입 완료에 응답하여, 상기 선택된 버퍼를 상기 가장-최근에 업데이트된 버퍼로 정의하도록 상기 제2 변수를 수정하는 단계를 더 포함하는, 상기 데이터 벡터들을 원자적으로 전송하기 위한 방법.
  12. 제 9 항에 있어서, 상기 데이터 벡터들에 의해 표현되는 정보를 상기 수신기로 전송하기 위한 조건에 응답하여:
    상기 수신기가 상기 제2 변수에 의해 정의된 바와 같이 상기 가장-최근에 업데이트된 버퍼로부터 정보를 수신하게 하는 단계; 및
    상기 수신기가 상기 제2 변수에 의해 정의된 바와 같이 상기 가장-최근에 업데이트된 버퍼로부터 정보를 수신하게 하는 것과 동시에, 상기 가장-최근에 업데이트된 버퍼를 상기 활성 버퍼로 재정의하도록 상기 제1 변수를 수정하는 단계를 더 포함하는, 상기 데이터 벡터들을 원자적으로 전송하기 위한 방법.
  13. 제 12 항에 있어서, 추가로
    상기 수신기는 모바일 디바이스의 애플리케이션 프로세서를 포함하고;
    상기 송신기는 상기 모바일 디바이스의 카메라를 포함하는, 상기 데이터 벡터들을 원자적으로 전송하기 위한 방법.
  14. 시스템에 있어서,
    데이터 벡터들을 송신하기 위한 송신기;
    데이터 벡터들을 수신하기 위한 수신기;
    상기 데이터 벡터들을 저장하도록 구성된 복수의 메모리 버퍼들로서, 각각의 버퍼는 한번에 상기 데이터 벡터들 중 하나의 벡터를 저장하도록 구성되고, 상기 복수의 메모리 버퍼들은 적어도 3개의 메모리 버퍼들을 포함하는, 상기 복수의 메모리 버퍼들; 및
    상기 복수의 메모리 버퍼들을 제어하고 데이터 벡터들의 송신기로부터 상기 데이터 벡터들의 수신기로 상기 데이터 벡터들을 원자적으로 전송하기 위한 제어기를 포함하고, 상기 제어기는:
    상기 데이터 벡터들에 의해 표현되는 정보를 상기 수신기로 전송하기 위한 조건에 응답하여, 상기 복수의 버퍼들 중 어느 버퍼로부터, 상기 수신기가 상기 송신기에 의해 상기 복수의 버퍼들에 완전히 기입된 가장-최근에 업데이트된 정보를 수신할 수 있는지를 결정하고;
    상기 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 가장-최근에 업데이트된 버퍼로부터의 정보의 상기 수신기에 의한 원자적 수신을 차단하지 않으면서 상기 복수의 버퍼들 중 어느 버퍼에 상기 송신기가 업데이트된 정보를 기입할지를 결정하도록 구성되는, 시스템.
  15. 제 1 항 또는 제 14 항에 있어서, 상기 제어기는 추가로:
    상기 수신기가 정보를 수신하는 상기 복수의 버퍼들 중 활성 버퍼를 정의하는 제1 변수를 유지하고;
    정보가 상기 송신기에 의해 완전히 기입된 상기 복수의 버퍼들 중 상기 가장-최근에 업데이트된 버퍼를 정의하는 제2 변수를 유지하도록 구성되는, 시스템.
  16. 제 15 항에 있어서, 상기 제어기는, 상기 데이터 벡터들에 의해 표현되는 정보를 업데이트하기 위한 조건에 응답하여, 상기 활성 버퍼와 상기 송신기가 업데이트된 정보를 기입할 상기 가장-최근에 업데이트된 버퍼 이외의 상기 복수의 버퍼들로부터 선택된 버퍼를 선택하도록 구성되는, 시스템.
  17. 제 16 항에 있어서, 상기 제어기는, 상기 선택된 버퍼에 업데이트된 정보의 기입 완료에 응답하여, 상기 선택된 버퍼를 상기 가장-최근에 업데이트된 버퍼로 정의하도록 상기 제2 변수를 수정하도록 구성되는, 시스템.
  18. 제 15 항에 있어서, 상기 제어기는, 상기 데이터 벡터들에 의해 표현되는 정보를 상기 수신기로 전송하기 위한 조건에 응답하여:
    상기 수신기가 상기 제2 변수에 의해 정의된 바와 같이 상기 가장-최근에 업데이트된 버퍼로부터 정보를 수신하게 하고;
    상기 수신기가 상기 제2 변수에 의해 정의된 바와 같이 상기 가장-최근에 업데이트된 버퍼로부터 정보를 수신하게 하는 것과 동시에, 상기 가장-최근에 업데이트된 버퍼를 상기 활성 버퍼로 재정의하도록 상기 제1 변수를 수정하도록 구성되는, 시스템.
  19. 제 1 항 또는 제 14 항에 있어서, 상기 제어기는 카메라의 하나 이상의 구성요소들을 제어하기 위한 카메라 제어기를 포함하는, 시스템.
  20. 제 19 항에 있어서, 추가로:
    상기 수신기는 모바일 디바이스의 애플리케이션 프로세서를 포함하고;
    상기 송신기는 상기 모바일 디바이스의 카메라를 포함하는, 시스템.
KR1020217039902A 2019-05-06 2020-05-01 시변 원자 데이터의 유연한 비-차단 비동기식 전송 KR102632020B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/404,323 US11288193B2 (en) 2019-05-06 2019-05-06 Flexible, non-blocking asynchronous transfer of time-variant atomic data
US16/404,323 2019-05-06
PCT/US2020/031079 WO2020227116A1 (en) 2019-05-06 2020-05-01 Flexible, non-blocking asynchronous transfer of time-variant atomic data

Publications (2)

Publication Number Publication Date
KR20220004208A KR20220004208A (ko) 2022-01-11
KR102632020B1 true KR102632020B1 (ko) 2024-02-02

Family

ID=70775579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217039902A KR102632020B1 (ko) 2019-05-06 2020-05-01 시변 원자 데이터의 유연한 비-차단 비동기식 전송

Country Status (5)

Country Link
US (1) US11288193B2 (ko)
EP (1) EP3966694A1 (ko)
KR (1) KR102632020B1 (ko)
CN (1) CN113796065B (ko)
WO (1) WO2020227116A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006058051A2 (en) 2004-11-24 2006-06-01 Qualcomm Incorporated Methods and systems for updating a buffer
US20060212662A1 (en) 2005-02-25 2006-09-21 Nec Electronics Corporation Data transfer control device, image processing device, and data transfer control method
US20080060042A1 (en) 2006-07-18 2008-03-06 Via Technologies, Inc. Video Data Packing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179665A (en) * 1987-06-24 1993-01-12 Westinghouse Electric Corp. Microprocessor information exchange with updating of messages by asynchronous processors using assigned and/or available buffers in dual port memory
US5315707A (en) 1992-01-10 1994-05-24 Digital Equipment Corporation Multiprocessor buffer system
JP2005244494A (ja) * 2004-02-25 2005-09-08 Nec Corp 移動通信端末,移動通信端末の制御方法,プログラムおよびメールによる遠隔制御システム
KR102531741B1 (ko) * 2016-01-12 2023-05-11 삼성전자 주식회사 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법
US11989555B2 (en) * 2017-06-29 2024-05-21 Intel Corporation Instructions for remote atomic operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006058051A2 (en) 2004-11-24 2006-06-01 Qualcomm Incorporated Methods and systems for updating a buffer
US20060212662A1 (en) 2005-02-25 2006-09-21 Nec Electronics Corporation Data transfer control device, image processing device, and data transfer control method
US20080060042A1 (en) 2006-07-18 2008-03-06 Via Technologies, Inc. Video Data Packing

Also Published As

Publication number Publication date
KR20220004208A (ko) 2022-01-11
CN113796065B (zh) 2023-05-26
WO2020227116A1 (en) 2020-11-12
CN113796065A (zh) 2021-12-14
US11288193B2 (en) 2022-03-29
EP3966694A1 (en) 2022-03-16
US20200356477A1 (en) 2020-11-12

Similar Documents

Publication Publication Date Title
KR102289369B1 (ko) 플렉서블 디스플레이에 이미지를 표시하는 전자 장치 및 방법
US20220360710A1 (en) Electronic device including multiple cameras and method of controlling electronic device
CN110163296B (zh) 图像识别的方法、装置、设备及存储介质
CN105163035A (zh) 移动终端拍摄系统和移动终端拍摄方法
CN113837920A (zh) 一种图像渲染方法及电子设备
KR102632020B1 (ko) 시변 원자 데이터의 유연한 비-차단 비동기식 전송
CN104967772A (zh) 拍照方法和装置
US20140148227A1 (en) Apparatus and method for controlling current consumption of mobile terminal
US10963187B2 (en) Discrete exchange and update of multiple consistent subset views of an evolving data store
US20230007149A1 (en) Electronic device including camera module and method for operating the electronic device
CN110321059B (zh) 数据处理方法、装置及计算机可读存储介质
CN110851435B (zh) 一种存储数据的方法及装置
CN108733831B (zh) 一种对词库进行处理的方法及装置
US20230379592A1 (en) Systems and methods for relaying a message for a physical level/data link level communication protocol
US20230324955A1 (en) Flexible electronic device and method for controlling display of application execution screen
EP4358529A1 (en) Electronic device for controlling photography composition and control method therefor
EP4365721A1 (en) Electronic device including flexible display and method for operating same
EP4325874A1 (en) Electronic device and operation method of electronic device
KR20220054003A (ko) 이미지 표시 방법 및 이를 지원하는 전자 장치
KR20240057293A (ko) 이미지를 제공하는 방법 및 이를 지원하는 전자 장치
KR20240022953A (ko) 이미지를 제공하는 방법 및 이를 지원하는 전자 장치
KR20230135285A (ko) 파일 저장 방법 및 이를 수행하는 전자 장치
KR20240016847A (ko) 상호작용에 기반하여 이미지를 표시하기 위한 전자 장치 및 방법
WO2023229905A1 (en) Systems and methods for relaying a message for a physical level/data link level communication protocol
KR20220124472A (ko) 복수의 렌즈들을 구비하는 전자 장치 및 그 제어 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant