CN113796065B - 时变原子数据的灵活、无阻塞异步传输 - Google Patents
时变原子数据的灵活、无阻塞异步传输 Download PDFInfo
- Publication number
- CN113796065B CN113796065B CN202080033878.9A CN202080033878A CN113796065B CN 113796065 B CN113796065 B CN 113796065B CN 202080033878 A CN202080033878 A CN 202080033878A CN 113796065 B CN113796065 B CN 113796065B
- Authority
- CN
- China
- Prior art keywords
- buffer
- data
- vector
- receiver
- buffers
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/617—Upgrading or updating of programs or applications for camera control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/66—Remote control of cameras or camera parts, e.g. by remote control devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details 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)
- Mobile Radio Communication Systems (AREA)
- Studio Devices (AREA)
Abstract
一种用于将数据的向量从数据的向量的发射器原子地传输到数据的向量的接收器的系统可以包括被配置为存储数据的向量的多个存储器缓冲区,每个缓冲区被配置为一次存储数据的向量中的一个向量,多个存储器缓冲区包括至少三个存储器缓冲区和用于控制多个存储器缓冲区的控制器。控制器可以被配置为响应于将由数据的向量表示的信息传输到接收器的条件,确定接收器可以从多个缓冲区中的哪个接收由发射器完全写入多个缓冲区的最近更新的信息。控制器还可以被配置为响应于更新由数据的向量表示的信息的条件,确定在不阻塞接收器从最近更新的缓冲区原子性接收信息的情况下,多个缓冲区中的哪个用于发射器写入更新的信息。
Description
技术领域
本公开总体上涉及电子设备,并且更具体地涉及可以在用于控制移动设备中的相机的位置的系统中和/或其他合适的应用中使用的时变原子数据的灵活、无阻塞异步传输。
背景技术
许多传统的移动设备(例如,移动电话)包括用于捕获图像的一个或多个相机。为了提供图像稳定和对焦,相机在与图像的对象基本平行的平面内的位置以及相机镜头在垂直于该平面的方向上的位置可以由受控于相机控制器的多个电机来控制。可以使用移动设备的应用处理器来实现控制系统,所述移动设备经由通信接口(例如,内部集成电路或I2C接口)耦合到相机及其多个电机的本地的相机控制器。例如,应用处理器可以向相机控制器传送关于应用处理器的目标位置的数据的向量,而相机控制器可以向应用处理器传送关于由多个磁传感器(例如,霍尔传感器)和/或其他合适的传感器感测到的相机的实际位置的向量。
向量数据从相机控制器到应用处理器的传输可以是其中数据由相机控制器异步产生并由应用处理器异步消耗的传输。此外,可能期望消耗的数据向量是最新的可用向量。此外,可能期望数据向量的产生和消耗是原子的,因为数据向量在消耗期间可以不改变以防止数据损坏、数据错误通信和数据错误解释。此外,可能期望传输是无阻塞的,这意味着即使在应用处理器正在消耗现有数据向量时,相机控制器也必须能够产生新的数据向量。另外还可能期望传输涉及最小的通信开销并且具有可配置的向量长度和内容。
发明内容
根据本公开的教导,可以减少或消除与通过通信接口传输数据向量相关联的缺点和问题。
根据本公开的实施例,一种用于将数据的向量从数据的向量的发射器原子地传输到数据的向量的接收器的系统可以包括被配置为存储数据的向量的多个存储器缓冲区,每个缓冲区被配置为一次存储数据的向量中的一个向量,多个存储器缓冲区包括至少三个存储器缓冲区和用于控制多个存储器缓冲区的控制器。控制器可以被配置为响应于将由数据的向量表示的信息传输到接收器的条件,确定接收器可以从多个缓冲区中的哪一个接收由发射器完全写入多个缓冲区的最近更新的信息。控制器还可以被配置为响应于更新由数据的向量表示的信息的条件,确定在不阻塞接收器从最近更新的缓冲区原子性接收信息的情况下,多个缓冲区中的哪个用于发射器写入更新的信息。
根据本公开的这些和其他实施例,一种用于将数据的向量从数据的向量的发射器原子地传输到数据的向量的接收器的方法可以包括将数据的向量存储在多个存储器缓冲区中,每个缓冲区被配置为一次存储数据的向量中的一个向量,多个存储器缓冲区包括至少三个存储器缓冲区。该方法还可以包括,响应于将由数据的向量表示的信息传输到接收器的条件,确定接收器可以从多个缓冲区中的哪一个接收由发射器完全写入多个缓冲区的最近更新的信息。该方法还可以包括响应于更新由数据的向量表示的信息的条件,确定在不阻塞接收器从最近更新的缓冲区原子性接收信息的情况下,多个缓冲区中的哪个用于发射器写入更新的信息。
根据本公开的这些和其他实施例,系统可以包括用于发射数据的向量的发射器、用于接收数据的向量的接收器、被配置为存储数据的向量的多个存储器缓冲区,每个缓冲区被配置为一次存储数据的向量中的一个向量,多个存储器缓冲区包括至少三个存储器缓冲区以及控制器,该控制器用于控制多个存储器缓冲区并且原子地将数据的向量从数据的向量的发射器传输到数据的向量的接收器。控制器可以被配置为响应于将由数据的向量表示的信息传输到接收器的条件,确定接收器可以从多个缓冲区中的哪一个接收由发射器完全写入多个缓冲区的最近更新的信息。控制器还可以被配置为响应于更新由数据的向量表示的信息的条件,确定在不阻塞接收器从最近更新的缓冲区原子性接收信息的情况下,多个缓冲区中的哪个用于发射器写入更新的信息。
从本文所包括的附图、描述和权利要求,本公开的技术优点对于本领域的普通技术人员来说会是显而易见的。实施例的目的和优点将至少通过权利要求中特别指出的要素、特征和组合来实现和达到。
应当理解,前面的总体性描述和以下详细描述都是示例和说明性的,而不是对本公开中阐述的权利要求的限制。
附图说明
本实施例及其优点可以通过参考以下结合附图的描述获得更完整的理解,其中相同的附图标记表示相同的特征,其中:
图1示出了根据本公开的实施例的示例移动设备的选定组件的框图;
图2示出了根据本公开的实施例的示例共享存储器的选定组件的框图;
图3示出了根据本公开的实施例的描绘指针变量的示例时间进展的时序图;和
图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,其中使用具有基于在隔膜或隔膜处接收的声波振动而变化的电容的隔膜或膜片将这种声音转换为电信号。麦克风106可包括静电麦克风、电容式麦克风、驻极体麦克风、微机电系统(MEM)麦克风或任何其他合适的电容式麦克风。
无线电发射器/接收器108可以容纳在外壳101内,可以通信地耦合到应用处理器103,并且可以包括被配置为在天线的帮助下生成和发射射频信号以及接收射频信号并将由这种接收到信号所承载的信息转换成由应用处理器103可使用的形式的任何系统、设备或装置。无线电发射器/接收器108可以被配置为发射和/或接收各种类型的射频信号,包括但不限于蜂窝通信(例如,2G、3G、4G、LTE等)、短程无线通信(例如,BLUETOOTH)、商业无线电信号、电视信号、卫星无线电信号(例如GPS)、无线保真等。
扬声器110可以至少部分地容纳在外壳101内或者可以在外壳101的外部,可以通信地耦合到应用处理器103,并且可以包括被配置为响应于电音频信号输入而产生声音的任何系统、设备或装置。在一些实施例中,扬声器可以包括动态扬声器,其采用经由柔性悬架机械耦合到刚性框架的轻质隔膜,该柔性悬架约束音圈轴向移动穿过磁隙。当电信号施加到音圈时,音圈中的电流会产生磁场,使其成为可变电磁铁。音圈和驱动器的磁性系统相互作用,产生机械力,该机械力使音圈(以及连接的音盆)前后移动,从而在来自放大器的施加电信号的控制下再现声音。
相机107可以至少部分地容纳在外壳101内(并且部分地在外壳101之外,以使光能够进入相机107的镜头),并且可以包括用于将图像(移动或静止)记录成可由应用处理器103处理的一个或多个电信号的任何合适的系统、设备或装置。如图1所示,相机107可以包括多个电机114、传感器116和图像捕获组件118。
图像捕获组件118可以包括被配置为捕获图像的一组组件,包括但不限于用于感测接收到的光的强度和波长的一个或多个镜头和图像传感器。这种图像捕获组件118可以耦合到应用处理器103,使得相机107可以将捕获到的图像传送到应用处理器103。
电机114可以机械地耦合到一个或多个图像捕获组件118,并且每个电机114可以包括任何合适的系统、设备或装置,所述系统、设备或装置被配置为基于从相机控制器112接收到的指示期望的相机位置的控制信号,驱动这样的一个或多个图像捕获组件机械运动到这种期望的相机位置。
传感器116可以机械地耦合到图像捕获组件118和/或电机114中的一个或多个并且可以被配置为感测与相机107相关联的位置。例如,第一传感器116可以感测相机107相对于第一线性方向的第一位置(例如,x位置),第二传感器116可以感测相机107相对于垂直于第一线性方向的第二线性方向的第二位置(例如,y位置),第三传感器116可以感测相机107(例如,相机的镜头)相对于第三线性方向的第三位置(例如,z位置),第三线性方向垂直于第一线性方向和第二线性方向。
相机控制器112可以容纳在外壳101内,可以通信地耦合到相机107和应用处理器103(例如,经由集成电路间(I2C)接口),并且可以包括被配置为控制相机107的电机114或其他组件以将相机107的组件放置成期望位置的任何系统、设备或装置。相机控制器112还可以被配置为从传感器116接收关于相机107的实际位置和/或关于相机107的状态的信号。如图1所示,相机控制器112可以包括嵌入式处理器111、接口控制电路109和共享存储器104,共享存储器104通信地耦合到接口控制电路109和嵌入式处理器111中的每一个。
嵌入式处理器111可以集成到相机控制器112中,并且可以包括被配置为解释和/或执行程序指令和/或处理数据的任何系统、设备或装置,并且可以包括但不限于微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)或任何其他被配置为解释和/或执行程序指令和/或处理数据的数字或模拟电路。在一些实施例中,应用处理器103可以解释和/或执行程序指令和/或处理存储在存储器(例如,共享存储器或其他存储器)和/或嵌入式处理器111可访问的其他计算机可读介质中的数据。具体地,嵌入式处理器111可以被配置为执行相机控制器112的功能,包括但不限于共享存储器104的控制和管理、电机114的控制以及来自传感器116的数据的接收和处理。
共享存储器104可以集成到相机控制器112,可以耦合到接口控制电路109和嵌入式处理器111中的每一个。共享存储器104可以包括被配置为将程序指令和/或数据保留一段时间的任何系统、设备或装置(例如,计算机可读介质)。共享存储器104可以包括随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、个人计算机存储卡国际协会(PCMCIA)卡、闪存、磁存储、光磁存储或在移动设备102断电后保存数据的易失性和非易失性存储器的任何合适的选择和/或阵列。
接口控制电路109可以包括任何合适的系统、设备或装置,所述系统、设备或装置被配置为用作应用处理器103和共享存储器104之间的通信接口和/或控制共享存储器104(参见图2)的多个缓冲区202,如在下面更详细描述的。
图2示出了根据本公开的实施例的示例共享存储器104的选定组件的框图。如图2所示,共享存储器104可以包括至少三个的多个存储器缓冲区202A、202B和202C(它们可以单独称为“存储器缓冲区202”以及统称为“存储器缓冲区202”),以及多个指针变量204A和204B(例如,它们每个都可以由共享存储器104的一部分来体现)。
每个存储器缓冲区202可以被配置为存储数据的向量。数据的向量可以包括关于相机107的位置和/或状态信息,该信息由相机107传送到共享存储器104。指针变量204A可以定义多个缓冲区202的一个最近更新的缓冲区,已经由嵌入式处理器111将信息完全写入该更新的缓冲区。指针变量204B可以定义多个缓冲区202中的一个主动缓冲区202,应用处理器103可以经由接口控制电路109从该主动缓冲区主动地接收信息。因此,相机控制器112可以被配置为保持第一变量(指针变量204B),该第一变量定义多个缓冲区202中的一个主动缓冲区202,接收器(例如,应用处理器103)从该主动缓冲区接收信息,并且还可以保持第二变量(指针变量204A),该第二变量定义了多个缓冲区202中的最近更新的缓冲区202,信息已经由发射器(例如,相机107)完全写入到最近更新的缓冲区202中。
尽管图2描绘了具有三个缓冲区202的共享存储器104,但是共享存储器104可以具有任何合适数量的三个或更多个缓冲区202。
在操作中,相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以被配置为响应于将由数据的向量表示的信息传输到应用处理器103的条件(例如,响应于“read”命令从应用处理器103读取向量数据),确定应用处理器103可以从多个缓冲区202中的哪个接收由嵌入式处理器111完全写入多个缓冲区202的最近更新的信息。这种缓冲区202可以是被定义为多个缓冲区202中的由指针变量204A定义的最近更新的缓冲区的缓冲区202。此外,在操作中,响应于更新由数据的向量表示的信息的条件,相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以被配置为确定在不阻塞应用处理器103从指针变量204A定义的最近更新的缓冲区202原子性接收信息的情况下,嵌入式处理器111向多个缓冲区202中的哪一个写入更新的信息。例如,响应于更新由数据的向量表示的信息的条件,相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以从多个缓冲区202中选择一个选定的缓冲区202,而不是由指针变量204B定义的主动缓冲区(如果有的话),并且也不是由指针变量204A定义的用于发射器写入更新信息的最近更新的缓冲区。
此外,相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以进一步配置为响应于嵌入式处理器111完成将更新信息写入选定的缓冲区202,修改指针变量204A以将选定的缓冲区202定义为最近更新的缓冲区202。
此外,相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以进一步被配置为响应于将由数据的向量表示的信息传输到应用处理器103的条件(例如,响应于来自应用处理器103的读取向量数据的“read”命令),使应用处理器103从由指针变量204A定义的最近更新的缓冲区202接收信息,并且基本上同时地,使应用处理器103从指针变量204A定义的最近更新的缓冲区202接收信息,修改指针变量204B以将最近更新的缓冲区202重新定义为主动缓冲区202。
相机控制器112的功能的进一步讨论在下面的图3和图4及其描述中阐述。
图3示出了根据本公开的实施例的描绘指针变量204A和204B的示例时间进展的时序图。图4示出了根据本公开的实施例的描绘空闲缓冲区202的示例选择、用从嵌入式处理器111写入的数据填充缓冲区202以及由应用处理器103读取数据的时序图。
如图3和图4所示,在时间t0之前的某个时间,所有缓冲区202可以是空闲的,并且相机控制器112可以用向量数据填充缓冲区202A。在时间t0,在用向量数据写入缓冲区202A完成之后,相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以设置指针变量204A以将缓冲区202A指定为应该响应于来自应用处理器103的读取命令而被读取的缓冲区202A。
在时间t1,来自应用处理器103的读取命令可以发生,并且接口控制电路109可以使由指针变量204A指定的缓冲区202A中的数据被应用处理器103读取,并且还可以设置指针变量204B以将缓冲区202A指定为正从其读取数据的主动缓冲区。
如果在应用处理器103正在主动接收数据期间嵌入式处理器111写入附加数据向量,则相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以使数据写入缓冲区202(例如,缓冲区202B)而不是主动缓冲区202A和指针变量204A指向的缓冲区202(如果有的话)。在时间t2,在用向量数据写入缓冲区202B完成之后,相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以设置指针变量204A以将缓冲区202B指定为应该响应于来自应用处理器103的读取命令而被读取的缓冲区。
在时间t3,来自应用处理器103的读取命令可以发生,并且相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以使得由指针变量204A指定的缓冲区202B中的数据被应用处理器103读取,并且还可以设置指针变量204B以将缓冲区202B指定为正在从中读取数据的主动缓冲区。
在时间t3之后的某个时间,如果在应用处理器103正在主动接收数据期间由嵌入式处理器111写入附加数据向量,则相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以使数据被写入除主动缓冲区202B和指针变量204A指向的缓冲区202(如果有的话)之外的缓冲区202(例如,缓冲区202A)。在时间t4,在将数据写入缓冲区202A之后,相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以设置指针变量204A以将缓冲区202A指定为应该响应于来自应用处理器103读取命令而被读取的缓冲区。
在时间t4之后的某个时间,嵌入式处理器111可以再次写入数据,并且相机控制器112可以使数据被写入除指针变量204A指定的主动缓冲区202B和指针变量204B指定的最近更新的缓冲区202A以外的缓冲区202(例如,缓冲区202C)。在时间t5,在数据被写入缓冲区202C之后,相机控制器112可以设置指针变量204A以将缓冲区202C指定为应该响应于来自应用处理器103的读取命令而被读取的缓冲区。因此,嵌入式处理器111可以异步地写入缓冲区202,并且并非对缓冲区202的每次写入都可以被应用处理器103读取(例如,在时间t4之前且接近t4发生的对缓冲区202A的写入)。
在时间t6,来自应用处理器103的读取命令可以发生,并且相机控制器112(例如,经由接口控制电路109和/或嵌入式处理器111)可以使由指针变量204A指定的缓冲区202C中的数据被应用处理器103读取,并且还可以设置指针变量204B以将缓冲区202C指定为正在从中读取数据的主动缓冲区。此外,三个(或更多)缓冲区202的使用可确保相机控制器112将能够写入尚未使用的缓冲区202。此外,本文描述的架构可以允许应用处理器103执行对最近写入的向量的异步读取。
如本文所用,当两个或更多个元件被称为彼此“耦合”时,该术语表示这样的两个或更多个元件进行电子通信或机械通信,视情况为间接连接或直接连接,有中间元件或没有中间元件。
本公开涵盖本领域普通技术人员将理解的对本文示例实施例的所有改变、替换、变化、变更和修改。类似地,在适当的情况下,所附权利要求涵盖本领域普通技术人员将理解的对本文示例实施例的所有改变、替换、变型、变更和修改。此外,在所附权利要求中提及适于、布置成、能够、配置成、使能、可操作或起作用以执行特定功能的装置或系统、或者装置或系统的组件包括该装置、系统或组件,无论它或该特定功能是否被激活、开启或解锁,只要该装置、系统或组件如此适配、布置、有能力、配置、使能、可操作或起作用。因此,在不脱离本公开的范围的情况下,可以对本文描述的系统、装置和方法进行修改、添加或省略。例如,系统和设备的组件可以集成或分离。此外,本文公开的系统和装置的操作可以由更多组件、更少组件或其他组件来执行,并且所描述的方法可以包括更多步骤、更少步骤或其他步骤。此外,可以以任何合适的顺序执行步骤。本文档中使用的“每个”是指集合的每个成员或集合子集的每个成员。
尽管示例性实施例在附图中示出并在下面进行描述,但是本公开的原理可以使用任意数量的技术来实现,无论当前是否已知。本公开不应以任何方式限于在附图中示出和在上面描述的示例性实施方式和技术。
除非另有特别说明,否则附图中描绘的物品不一定按比例绘制。
在此引用的所有示例和条件语言旨在用于教导目的,以帮助读者理解本发明的公开内容和发明人为进一步发展本领域所贡献的构思,并且被解释为不限于这些具体引用的示例和条件。尽管已经详细描述了本公开的实施例,但是应当理解,在不脱离本公开的精神和范围的情况下可以对其进行各种改变、替换和变型。
尽管上面已经列举了特定的优点,但是各种实施例可以包括列举的优点中的一些、不包括列举的优点的一个或包括列举的优点的全部。此外,其他技术优势对于阅读了上述图和描述的本领域普通技术人员而言将变得显而易见。
为了帮助在本申请上发布的任何专利的专利商标局和任何读者解释所附权利要求,申请人希望注意,他们不打算任何所附权利要求或权利要求元素援引35U.S.C.§112(f),除非在特定权利要求中明确地使用了词语“用于……的器件”或“用于……的步骤”。
Claims (20)
1.一种用于将数据的向量从数据的向量的发射器原子地传输到数据的向量的接收器的系统,包括:
被配置为存储所述数据的向量的多个存储器缓冲区,每个缓冲区被配置为一次存储所述数据的向量中的一个向量,所述多个存储器缓冲区包括至少三个存储器缓冲区;和
用于控制所述多个存储器缓冲区的控制器,所述控制器被配置为:
响应于将所述数据的向量表示的信息传输到所述接收器的条件,确定所述接收器能够从所述多个缓冲区中的哪个接收由所述发射器完全写入所述多个缓冲区的最近更新的信息;和
响应于更新由所述数据的向量表示的信息的条件,确定在不阻塞所述接收器从最近更新的缓冲区原子性接收信息的情况下,所述多个缓冲区中的哪个用于所述发射器写入更新的信息。
2.根据权利要求1所述的系统,其中,所述控制器还被配置为:
保持第一变量,所述第一变量定义所述接收器正从中接收信息的所述多个缓冲区中的主动缓冲区;和
保持第二变量,所述第二变量定义信息已被发射器完全写入其中的所述多个缓冲区中的最近更新的缓冲区。
3.根据权利要求2所述的系统,其中,所述控制器被配置为响应于更新由所述数据的向量表示的信息的条件,从除了所述主动缓冲区和最近更新的缓冲区之外的多个缓冲区中选择选定的缓冲区,所述选定的缓冲区用于所述发射器写入更新的信息。
4.根据权利要求3所述的系统,其中,所述控制器被配置为响应于将更新的信息写入所述选定的缓冲区的完成,修改所述第二变量以将所述选定的缓冲区定义为最近更新的缓冲区。
5.根据权利要求2所述的系统,其中,所述控制器被配置为响应于将所述数据的向量表示的信息传输到所述接收器的条件:
使所述接收器从所述第二变量定义的最近更新的缓冲区接收信息;和
与使所述接收器从所述第二变量定义的最近更新的缓冲区接收信息基本上同时地修改所述第一变量以将最近更新的缓冲区重新定义为主动缓冲区。
6.根据权利要求1所述的系统,其中,所述控制器包括用于控制相机的一个或多个组件的相机控制器。
7.根据权利要求6所述的系统,其特征还在于,其中:
所述接收器包括移动设备的应用处理器;和
所述发射器包括所述移动设备的相机。
8.一种用于将数据的向量从数据的向量的发射器原子地传输到数据的向量的接收器的方法,包括:
将所述数据的向量存储在多个存储器缓冲区中,每个缓冲区被配置为一次存储所述数据向量中的一个向量,所述多个存储器缓冲区包括至少三个存储器缓冲区;
响应于将所述数据的向量表示的信息传输到所述接收器的条件,确定所述接收器能够从所述多个缓冲区中的哪个接收由所述发射器完全写入所述多个缓冲区的最近更新的信息;和
响应于更新所述数据的向量表示的信息的条件,确定在不阻塞所述接收器从最近更新的缓冲区原子性接收信息的情况下,所述多个缓冲区中的哪个用于所述发射器写入更新的信息。
9.根据权利要求8所述的方法,还包括:
保持第一变量,所述第一变量定义所述接收器正从中接收信息的所述多个缓冲区中的主动缓冲区;和
保持第二变量,所述第二变量定义信息已被发射器完全写入其中的所述多个缓冲区中的最近更新的缓冲区。
10.根据权利要求9所述的方法,还包括,响应于更新由所述数据的向量表示的信息的条件,从除了所述主动缓冲区和最近更新的缓冲区之外的多个缓冲区中选择选定的缓冲区,所述选定的缓冲区用于所述发射器写入更新的信息。
11.根据权利要求10所述的方法,还包括,响应于将更新的信息写入所述选定的缓冲区的完成,修改所述第二变量以将所述选定的缓冲区定义为最近更新的缓冲区。
12.根据权利要求9所述的方法,还包括,响应于将所述数据的向量表示的信息传输到所述接收器的条件:
使所述接收器从所述第二变量定义的最近更新的缓冲区接收信息;和
与使所述接收器从所述第二变量定义的最近更新的缓冲区接收信息基本上同时地修改所述第一变量以将最近更新的缓冲区重新定义为主动缓冲区。
13.根据权利要求12所述的方法,其特征还在于,其中:
所述接收器包括移动设备的应用处理器;和
所述发射器包括所述移动设备的相机。
14.一种用于原子地传输数据的向量的系统,包括:
用于发射数据的向量的发射器;
用于接收数据的向量的接收器;
被配置为存储所述数据的向量的多个存储器缓冲区,每个缓冲区被配置为一次存储所述数据的向量中的一个向量,所述多个存储器缓冲区包括至少三个存储器缓冲区;和
控制器,用于控制所述多个存储器缓冲区并且将所述数据的向量从所述数据的向量的发射器原子地传输到所述数据的向量的接收器,所述控制器被配置为:
响应于将所述数据的向量表示的信息传输到所述接收器的条件,确定所述接收器能够从所述多个缓冲区中的哪个接收由所述发射器完全写入所述多个缓冲区的最近更新的信息;和
响应于更新由所述数据的向量表示的信息的条件,确定在不阻塞所述接收器从最近更新的缓冲区原子性接收信息的情况下,所述多个缓冲区中的哪个用于所述发射器写入更新的信息。
15.根据权利要求14所述的系统,其中,所述控制器还被配置为:
保持第一变量,所述第一变量定义所述接收器正从中接收信息的所述多个缓冲区中的主动缓冲区;和
保持第二变量,所述第二变量定义信息已被发射器完全写入其中的所述多个缓冲区中的最近更新的缓冲区。
16.根据权利要求15所述的系统,其中,所述控制器被配置为响应于更新由所述数据的向量表示的信息的条件,从除了所述主动缓冲区和最近更新的缓冲区之外的多个缓冲区中选择选定的缓冲区,所述选定的缓冲区用于所述发射器写入更新的信息。
17.根据权利要求16所述的系统,其中,所述控制器被配置为响应于将更新的信息写入所述选定的缓冲区的完成,修改所述第二变量以将所述选定的缓冲区定义为最近更新的缓冲区。
18.根据权利要求15所述的系统,其中,所述控制器被配置为响应于将所述数据的向量表示的信息传输到接收器的条件:
使所述接收器从所述第二变量定义的最近更新的缓冲区接收信息;和
与使所述接收器从所述第二变量定义的最近更新的缓冲区接收信息基本上同时地修改第一变量以将最近更新的缓冲区重新定义为主动缓冲区。
19.根据权利要求14所述的系统,其中,所述控制器包括用于控制相机的一个或多个组件的相机控制器。
20.根据权利要求19所述的系统,其特征还在于,其中:
所述接收器包括移动设备的应用处理器;和
所述发射器包括所述移动设备的相机。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/404,323 | 2019-05-06 | ||
US16/404,323 US11288193B2 (en) | 2019-05-06 | 2019-05-06 | Flexible, non-blocking asynchronous transfer of time-variant atomic data |
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 |
---|---|
CN113796065A CN113796065A (zh) | 2021-12-14 |
CN113796065B true CN113796065B (zh) | 2023-05-26 |
Family
ID=70775579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080033878.9A Active CN113796065B (zh) | 2019-05-06 | 2020-05-01 | 时变原子数据的灵活、无阻塞异步传输 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11288193B2 (zh) |
EP (1) | EP3966694A1 (zh) |
KR (1) | KR102632020B1 (zh) |
CN (1) | CN113796065B (zh) |
WO (1) | WO2020227116A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0551242A2 (en) * | 1992-01-10 | 1993-07-14 | Digital Equipment Corporation | Multiprocessor buffer system |
WO2006058051A2 (en) * | 2004-11-24 | 2006-06-01 | Qualcomm Incorporated | Methods and systems for updating a buffer |
CN106960412A (zh) * | 2016-01-12 | 2017-07-18 | 三星电子株式会社 | 包括多个缓冲区的存储器设备和驱动存储器的方法 |
CN109213522A (zh) * | 2017-06-29 | 2019-01-15 | 英特尔公司 | 远程原子操作指令 |
Family Cites Families (4)
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 |
JP2005244494A (ja) * | 2004-02-25 | 2005-09-08 | Nec Corp | 移動通信端末,移動通信端末の制御方法,プログラムおよびメールによる遠隔制御システム |
JP4749002B2 (ja) * | 2005-02-25 | 2011-08-17 | ルネサスエレクトロニクス株式会社 | データ転送装置、画像処理装置及びデータ転送制御方法 |
US7752647B2 (en) * | 2006-07-18 | 2010-07-06 | Via Technologies, Inc. | Video data packing |
-
2019
- 2019-05-06 US US16/404,323 patent/US11288193B2/en active Active
-
2020
- 2020-05-01 EP EP20727098.4A patent/EP3966694A1/en active Pending
- 2020-05-01 WO PCT/US2020/031079 patent/WO2020227116A1/en unknown
- 2020-05-01 CN CN202080033878.9A patent/CN113796065B/zh active Active
- 2020-05-01 KR KR1020217039902A patent/KR102632020B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0551242A2 (en) * | 1992-01-10 | 1993-07-14 | Digital Equipment Corporation | Multiprocessor buffer system |
WO2006058051A2 (en) * | 2004-11-24 | 2006-06-01 | Qualcomm Incorporated | Methods and systems for updating a buffer |
CN106960412A (zh) * | 2016-01-12 | 2017-07-18 | 三星电子株式会社 | 包括多个缓冲区的存储器设备和驱动存储器的方法 |
CN109213522A (zh) * | 2017-06-29 | 2019-01-15 | 英特尔公司 | 远程原子操作指令 |
Also Published As
Publication number | Publication date |
---|---|
KR102632020B1 (ko) | 2024-02-02 |
KR20220004208A (ko) | 2022-01-11 |
CN113796065A (zh) | 2021-12-14 |
US11288193B2 (en) | 2022-03-29 |
WO2020227116A1 (en) | 2020-11-12 |
EP3966694A1 (en) | 2022-03-16 |
US20200356477A1 (en) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190051594A (ko) | 복수의 카메라들을 이용하여 영상을 촬영하는 전자 장치와 이의 동작 방법 | |
EP4184284A1 (en) | Electronic device including camera module and operation method of same electronic device | |
US20220360710A1 (en) | Electronic device including multiple cameras and method of controlling electronic device | |
CN113796065B (zh) | 时变原子数据的灵活、无阻塞异步传输 | |
US10963187B2 (en) | Discrete exchange and update of multiple consistent subset views of an evolving data store | |
KR20200087401A (ko) | 이미지 센서의 프레임 레이트를 제어하기 위한 전자 장치 및 그에 관한 방법 | |
US11846973B1 (en) | Systems and methods for context-dependent multicore interrupt facilitation | |
KR20220130481A (ko) | 카메라 모듈의 화각을 이용하여 이미지를 촬영하는 전자 장치 및 방법 | |
US20230379592A1 (en) | Systems and methods for relaying a message for a physical level/data link level communication protocol | |
US20230396885A1 (en) | Electronic device including camera module and electronic device operating method | |
EP4375820A1 (en) | Flexible electronic device and method for controlling display of application execution screen | |
KR102518167B1 (ko) | 이미지 처리 방법 및 그 전자 장치 | |
CN115037827B (zh) | 一种驱动电压的调整方法、电子设备及存储介质 | |
US11184538B2 (en) | Electronic device for selectively generating video by using image data acquired at frame rate changed according to distance between subject and reference region, and operation method therefor | |
EP4365721A1 (en) | Electronic device including flexible display and method for operating same | |
KR20240057293A (ko) | 이미지를 제공하는 방법 및 이를 지원하는 전자 장치 | |
KR20230135285A (ko) | 파일 저장 방법 및 이를 수행하는 전자 장치 | |
KR20240016847A (ko) | 상호작용에 기반하여 이미지를 표시하기 위한 전자 장치 및 방법 | |
KR20240116321A (ko) | 이미지에 대한 후-처리 기능을 실행하기 위한 전자 장치 및 그 방법 | |
WO2023229905A1 (en) | Systems and methods for relaying a message for a physical level/data link level communication protocol | |
KR20230132336A (ko) | 이미지 안정화를 수행하는 전자 장치 및 그 동작 방법 | |
KR20240054127A (ko) | 프리뷰 이미지를 표시하기 위한 전자 장치 및 방법 | |
KR20220061811A (ko) | 카메라 모듈을 포함하는 전자 장치 및 그 전자 장치의 동작 방법 | |
KR20240035289A (ko) | 압전 모터를 포함하는 카메라 모듈 | |
KR20220124472A (ko) | 복수의 렌즈들을 구비하는 전자 장치 및 그 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |