CN104054049B - 用于复制源数据从而实现对源数据的并行处理的方法和系统 - Google Patents

用于复制源数据从而实现对源数据的并行处理的方法和系统 Download PDF

Info

Publication number
CN104054049B
CN104054049B CN201280066069.3A CN201280066069A CN104054049B CN 104054049 B CN104054049 B CN 104054049B CN 201280066069 A CN201280066069 A CN 201280066069A CN 104054049 B CN104054049 B CN 104054049B
Authority
CN
China
Prior art keywords
buffer
source data
replica
buffers
data
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.)
Expired - Fee Related
Application number
CN201280066069.3A
Other languages
English (en)
Other versions
CN104054049A (zh
Inventor
Y·H·周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104054049A publication Critical patent/CN104054049A/zh
Application granted granted Critical
Publication of CN104054049B publication Critical patent/CN104054049B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/127Updating a frame memory using a transfer of data from a source area to a destination area
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Abstract

用于减少由CPU执行的读写操作的数量的方法及装置可涉及复制源数据以便实现对源数据的并行处理。存储器控制器可被配置成用于将写入第一缓冲器的数据分别复制到分配给一个或多个处理线程的一个或多个复制缓冲器中。在某些实现方式中,一个或多个复制缓冲器是专用缓冲器,并且第一缓冲器和一个或多个复制缓冲器的地址被存储在存储器控制器的寄存器中。

Description

用于复制源数据从而实现对源数据的并行处理的方法和系统
背景技术
某些启用视频的计算机系统可使用多个处理线程,以便实现更快速的视频处理。为了实现由可在计算机系统中实现不同视频处理算法的多个处理线程对同一源数据进行并行处理,可分别在分配给多个处理器线程的多个缓冲器中复制源数据。以此方式,每个处理线程可在不干扰任意其他处理线程使用源数据的情况下处理该源数据。
将源数据复制到多个缓冲器中可涉及计算机系统的中央处理单元(CPU)从存储器读取该源数据并且然后将该源数据写入多个缓冲器。在视频处理中,例如,当视频帧数据从视频文件或外部设备(诸如相机)加载到帧缓冲器中时,针对每个被加载的视频帧,CPU可从帧缓冲器读取帧数据并且然后将帧数据写入多个缓冲器。因此,视频的并行处理可要求CPU为每个帧执行读/写操作。执行这种读/写操作可降低并行处理计算系统的整体性能。
附图说明
通过阅读以下说明书和所附权利要求书并且通过参考以下附图,本发明实施例的各种优点将对本领域普通技术人员将变得明显,在附图中:
图1是根据实施例示出被配置成用于减少读/写操作的示例系统的框图;
图2A和图2B根据实施例示出分别由图1的示例系统的存储器控制器和处理器执行的示例进程;
图3是示出本公开的示例系统的框图;以及
图4是示出示例小形状因数设备的框图,图3中系统的组件可在该设备中实现。
具体实施方式
本公开的不同实现提供了用于减少由CPU执行以便复制源数据从而实现对源数据的并行处理的读写操作的数量的方法及装置。
图1示出用于减少由CPU执行的读写操作的数量的示例系统100,其中,源数据被复制,以便实现对源数据的并行处理。系统100可包括通过CPU总线120耦合到总线控制器110的处理器105。在某些实现方式中,系统100可包括多个处理器。总线控制器110可包括存储器控制器115。在某些实现方式中,存储器控制器115可位于总线控制器110的外部。存储器控制器115可通过存储器总线130将处理器105接口到系统存储器125。系统存储器125可由被存储器控制器115访问的动态随机存取存储器(DRAM)模块组成。在某些实现方式中,如以下更详细描述的,系统存储器125可包括用于存储将被第一处理线程处理的数据的第一缓冲器126以及用于存储分别由一个或多个其他处理线程处理的第一缓冲器126中所存储的相同数据的一个或多个复制缓冲器127(1)...127(n)。在某些实现方式中,如以下更详细描述的,存储器控制器115还包括用于存储第一缓冲器126的地址和一个或多个复制缓冲器127(1)...127(n)的地址的寄存器112,以及用于存储复制缓冲器位以便指示是否应当将存储在第一缓冲器126中的数据分别复制到一个或多个复制缓冲器127(1)...127(n)中的寄存器114。
在某些实现方式中,系统存储器125可存储将被处理器105执行的信息和指令。具体而言,系统存储器125可存储当被处理器105执行时致使处理器105执行参照图2B所描述的过程的指令。系统存储器125还可存储将被处理器105访问以便执行一个或多个处理器线程的数据。在某些实现方式中,系统存储器125可存储像素,这些像素是从数据源135接收的要被处理器105执行的一个或多个图像帧的部分。在某些实现方式中,图形处理器可处理存储在第一缓冲器126和一个或多个复制缓冲器127(1)...127(n)中的帧数据。
为了减少由处理器105执行以便复制源数据从而实现对源数据的并行处理的读/写操作的数量,存储器控制器115可被配置成用于将写入第一缓冲器126的数据分别复制到分配给一个或多个处理线程的一个或多个复制缓冲器127(1)...127(n)。在某些实现方式中,一个或多个复制缓冲器127(1)...127(n)是专用缓冲器。附加地,第一缓冲器126和一个或多个复制缓冲器127(1)...127(n)的地址可被存储在存储器控制器115的寄存器112中。在某些实现中,当处理线程分配缓冲器以便存储并处理存储在第一缓冲器126中的数据时,处理线程将其缓冲器的地址写入寄存器112。因此,当存储器控制器115接收到将数据写入第一缓冲器126的命令时,存储器控制器115自动地将写入第一缓冲器126的数据复制到具有存储在寄存器112中的地址的复制缓冲器,而不使用处理器105。因此,与现有系统不同,为了将源数据复制到多个缓冲器以便实现对源数据的并行处理,所示出的处理器105不从第一地址126读取源数据并且然后将源数据写入复制缓冲器127(1)...127(n)。
在某些实现方式中,只有在寄存器114中与复制缓冲器相对应的复制缓冲器位被设置的情况下,存储器控制器115才将存储在第一缓冲器126中的数据复制到复制缓冲器。在某些实现方式中,一旦数据被复制到复制缓冲器,则重置相应的复制缓冲器位。在某些实现方式中,一旦数据被复制到复制缓冲器,存储器控制器115向处理器105发送帧就绪信号以便通知处理器105数据可用于处理。
继续参照图1、图2A和图2B,示出了分别由存储器控制器115和处理器105执行的示例进程200A和200B,其中进程200A和200B可减少与对源数据进行并行处理相关的源数据复制所需的读/写操作的数量。
在阶段205,处理器105可分配用于存储源数据以便由第一线程(例如,第一视频处理线程或视频加载线程)处理的第一缓冲器(例如第一缓冲器126)。
在阶段210,所示出的处理器105分配用于存储要被存储在第一缓冲器中的源数据以便分别由一个或多个其他处理线程处理的一个或多个复制缓冲器(例如,复制缓冲器127(1),...,127(n))。
在阶段215,处理器105可以将第一缓冲器和一个或多个复制缓冲器的地址发送到存储器控制器115,以便实现存储器控制器115基于这些地址将写入第一缓冲器的数据复制到一个或多个复制缓冲器(例如复制缓冲器127(1),...,127(n))。
在阶段220,存储器控制器115可接收这些地址并将其存储在寄存器中(例如寄存器112)。
在阶段225,对于用于处理将被存储在第一缓冲器中的数据的每个处理线程而言,所示出的处理器105向存储器控制器112发送相应的复制缓冲器位以便通知存储器控制器112针对处理线程在相应的复制缓冲器中复制将被存储在第一缓冲器中的源数据。
在阶段230,存储器控制器115可接收并存储(例如,在寄存器114中)复制缓冲器位。
在阶段235,存储器控制器115可接收将数据写入系统存储器125的指令(例如,从处理器105或数据源135)。
在阶段240,所示出的存储器控制器115确定写入指令是否是针对第一缓冲器。
如果写入指令不是针对第一缓冲器(在阶段240“否”),存储器控制器115可在阶段245在不复制数据的情况下向系统存储器125进行写入。
如果写入指令是针对第一缓冲器(在阶段240“是”),存储器控制器115可在阶段250将数据写入第一缓冲器并且还将数据写入其相应的复制缓冲器位被设置的每个复制缓冲器。
在阶段255,可重置这些复制缓冲器位(例如,由存储器控制器115),从而使得不复制未来的源数据,除非被处理器105设置。在某些实现方式中,复制缓冲器位将保持设置,直至它们被处理器105重置。
在阶段260,所示出的存储器控制器115向处理器105发送缓冲器就绪信号,以便通知处理器105数据已经被存储到第一缓冲器和一个或多个复制缓冲器中。
存储器控制器115可重复阶段230-265,直至所有数据被加载到第一缓冲器中。
在阶段265,处理器105可从存储器控制器115接收缓冲器就绪信号。
在阶段270,所示出的处理器105,更具体而言处理线程,并行地处理存储在第一缓冲器和一个或多个复制缓冲器中的数据。处理器105可重复阶段225和265-270,直至所有数据被复制到复制缓冲器中。
如上所述,在某些实施例中,复制缓冲器位将保持设置,直至它们被处理器105重置。在这些实施例中,写入第一缓冲器的所有数据将总是被复制到一个或多个复制缓冲器中,直至所有数据被加载到第一缓冲器中。
被考虑在本公开的范围内的计算设备包括个人计算机(PC)、膝上型计算机、超极膝上型计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备等等。
图3示出本公开的系统300的示例实施例,该系统包括平台302、显示器320、内容服务设备330、内容传送设备340、以及导航控制器350。在实施例中,系统300可以是媒体系统,尽管系统300不限于此上下文。例如,系统300的组件可被结合到个人计算机(PC)、膝上型计算机、超极膝上型计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备等等。
在实施例中,系统300包括耦合到显示器320的平台302。平台302可从内容设备(诸如内容服务设备330或内容传送设备340或其他类似的内容源)接收内容。包括一个或多个导航特征的导航控制器350可用于与平台302和/或显示器320交互。以下更详细地描述这些组件中的每一个。
在实施例中,平台302可包括芯片组305、处理器310、存储器312、存储314、图形子系统315、应用317、网络组件317、和/或无线电318的任意组合。芯片组305可提供处理器310、存储器312、存储314、图形子系统315、应用316和/或无线电318之间的互通。例如,芯片组305可包括能够提供与存储314的互通的存储适配器(未示出)。
处理器310可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核、或任意其他微处理器或中央处理单元(CPU)。在实施例中,处理器310可包括单核或双核处理器、单核或双核移动处理器等等。
存储器312可被实现为易失性存储器设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM(SRAM)。在某些实施例中,存储器312可被实现为非易失性存储器,诸如闪存设备。
存储314可被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池备份SDRAM(同步DRAM)、和/或网络可访问存储设备。在实施例中,存储314可包括用于当例如包括多个硬盘驱动器时提高有价值数字媒体的存储性能增强保护的技术。
图形子系统315可执行图像(诸如静态图像或视频)的处理用于显示。图形子系统315可以例如是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可用于通信地耦合图形子系统315和显示器320。例如,接口可以是高清多媒体接口、显示器端口、无线HDMI、和/或无线HD兼容技术中的任意一种。在实施例中,图形子系统315可被集成到处理器310或芯片组305中。在实施例中,图形子系统315可以是通信地耦合到芯片组305的独立卡。
在此所述的图形和/或视频处理技术可在各种硬件架构中实现。例如,可将图形和/或视频功能集成在芯片组中。可替代地,可使用离散图形和/或视频处理器。作为仍另一个实施例,可通过通用处理器(包括多核处理器)实现图形和/或视频功能。在另一个实施例中,可在消费电子设备中实现这些功能。
无线电318可包括能够使用各种合适的无线通信技术发送和接收信号的一个或多个无线电。这种技术可涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网、以及卫星网。在跨这种网络的通信中,无线电318可根据一个或多个任意版本的可应用标准来操作。
网络组件317可包括能够使用各种合适的有线和/或无线通信技术发送和接收信号的一个或多个网络组件。这种技术可涉及跨一个或多个有线和/或无线网络的通信。在跨这种网络的通信中,网络组件517可根据一个或多个任意版本的可应用标准来操作。
在实施例中,显示器320可包括任意电视类型的监视器或显示器。显示器320可包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备、和/或电视。显示器320可以是数字的和/或模拟的。在实施例中,显示器320可以是全息显示器。而且,显示器320可以是可接收视觉投影的透明表面。这种投影可传递各种形式的信息、图像、和/或对象。例如,这种投影可以是移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用316的控制下,平台302可在显示器320上显示用户界面322。
在实施例中,内容服务设备330可由任意国内、国际和/或独立服务主存并且因此可通过例如互联网由平台302访问。内容服务设备330可耦合到平台302和/或显示器320。平台302和/或内容服务设备330可耦合到网络360,以便与网络360传递媒体信息(例如,发送和/或接收)。内容服务设备330还可耦合到平台302和/或显示器320。
在实施例中,内容服务设备330可包括有线电视盒、个人计算机、网络、电话、相机、能够传送数字信息和/或内容的启用互联网的设备或电器、以及能够单向地或双向地通过网络360或直接地在内容提供商和平台302和/显示器320之间传递内容的任意其他类似的设备。将认识到可通过网络360与系统300中的任意一个组件和内容提供商单向地和/或双向地传递内容。内容的示例可包括任意媒体信息,包括例如视频、音乐、医疗和游戏信息等等。
内容服务设备330接收内容,诸如有线电视节目,包括媒体信息、数字信息、和/或其他内容。内容提供商的示例可包括任意有线或卫星电视或无线电或互联网内容提供商。所提供的示例不旨在限制本发明的实施例。
在实施例中,平台320可从具有一个或多个导航特征的导航控制器350接收控制信号。控制器350的导航特征可用于与例如用户界面322交互。在实施例中,导航控制器350可以是定点设备、控制垫、键盘、或触摸屏设备,其可以是允许用户将空间(例如,连续和多维的)数据输入到计算机中的计算机硬件组件(尤其是人类接口设备)。许多系统(诸如图形用户接口(GUI)、以及电视和监视器)允许用户使用物理姿势控制并向计算机或电视提供数据。
控制器350的导航特征的移动可通过显示器上显示的指针、光标、聚焦环、或其他视觉指示器在显示器(例如,显示器320)上得到回应。例如,在软件应用316的控制下,位于导航控制器350上的导航特征可被映射到例如用户界面322上显示的虚拟导航特征。在实施例中,控制器350可以不是分离的组件但是被集成到平台302和/或显示器320中。然而,实施例不限于在此示出或描述的上下文中的元素。
在实施例中,驱动器(未示出)可包括用于使得用户能够例如在初始启动后、当启用时通过触摸按钮来瞬间打开和关闭平台302(像电视)的技术。当平台“关闭”时,程序逻辑可允许平台302将内容流送到媒体适配器或其他内容服务设备330或内容传送设备340。附加地,芯片组305可包括对例如5.1环绕立体声音频和/或高清7.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在实施例中,图形驱动器可包括外围组件互连(PCI)快速图形卡。
在各种实施例中,系统300中所示出的组件中的任意一个或多个可被集成。例如,平台302和内容服务设备330可被集成,或者平台302和内容传送设备340可被集成,或者例如平台302、内容服务设备330和内容传送设备340可被集成。在各种实施例中,平台302和显示器320可以是集成电路。例如,显示器320和内容服务设备330可被集成,或者显示器320和内容传送设备340可被集成。这些示例不旨在限制本发明。
在各种实施例中,系统300可被实现为无线系统、有线系统、或二者的组合。当被实现为无线系统时,系统300可包括适合在无线共享媒体(诸如一个或多个天线、发射器、接收器、收发器、放大器、过滤器、控制逻辑等等)上通信的组件和接口。无线共享媒体的示例可包括无线频谱(诸如RF频谱等等)的部分。当被实现为有线系统时,系统300可包括适合在有线通信媒体(诸如输入/输出(I/O)适配器、用于将I/O适配器与相应的有线通信系统连接的物理连接器、网络接口卡(NIC)、网络控制器(例如以太网控制器和端口(集成的或外部的))、盘控制器、视频控制器、音频控制器等等)上通信的组件和接口。有线通信媒体的示例可包括电线、电缆、金属引线、印刷电路板(PCB)、背板、开关结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台302可建立一个或多个逻辑或物理通道以便传递信息。信息可包括媒体信息和控制信息。媒体信息可指代表示对用户有意义的内容的任意数据。内容的示例可包括例如来自语音对话、视频会议、流媒体、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音对话的数据可以是例如语音信息、静默期、背景噪音、舒适噪音、音调等等。控制信息可指代表示对自动化系统有意义的命令、指令或控制字的任意数据。例如,控制信息可用于将媒体信息路由通过系统,或者指示节点以预定的方式处理媒体信息。然而,实施例不限于图3中所示出或描述的上下文中的元素。
如上所述,系统300可以用各种物理风格或形状因数实现。图4示出其中可实现系统300的组件的小形状因数设备400的实施例。在实施例中,例如,设备400可被实现为具有无线能力的移动计算设备。移动计算设备可指代具有例如处理系统以及移动电源(诸如一个或多个电池)的任意设备。
如上所述,移动计算设备的示例可包括个人计算机(PC)、膝上型计算机、超极膝上型计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备等等。
移动计算设备的示例还可包括被安排成由个人穿戴的计算机,诸如腕式计算机、指式计算机、环形计算机、眼镜计算机、夹带计算机、臂章计算机、鞋靴计算机、服装计算机、以及其他可穿戴计算机。在实施例中,例如,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管已经结合通过举例被实现为智能电话的移动计算设备描述了某些实施例,可认识到还可使用其他无线移动计算设备实现其他实施例。实施例不限于此上下文。
如图4所示,设备400可包括外壳402、显示器404、输入/输出(I/O)设备406、以及天线408。设备400还可包括导航特征412。显示器404可包括用于显示适合于移动计算设备的信息的任意合适的显示单元,诸如用户接口410。I/O设备406可包括用于向移动计算设备输入信息的任意合适的I/O设备。I/O设备406的示例可包括字母数字键盘、数字键盘、触摸板、输入键、按钮、开关、摇杆开关、麦克风、扬声器、语音识别设备和软件等等。信息还可通过麦克风输入到设备400中。可通过语音识别设备将这种信息数字化。实施例不限于此上下文。
可使用硬件元件、软件元件、或二者的组合实现各种实施例。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、驱动器、中间软件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。确定使用硬件元件和/或还是软件元件实现实施例可根据任意数量的因素而不同,诸如所希望的计算速率、功率等级、热容限、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
至少一个实施例的一个或多个方面可由存储在表示处理器内的各种逻辑的机器可读介质上的指令实现,当由机器读取时,这些指令致使机器构造逻辑以便执行在此所述的技术。这种表示(称为“IP核”)可被存储在有形机器可读介质上并且被提供给各种消费者或制造设施以便加载到实际上制造逻辑或处理器的制造机器内。
因此,实施例可包括一种方法,包括:分配用于存储源数据以便由第一处理线程处理的第一缓冲器;分配用于存储将被存储在所述第一缓冲器中的所述源数据以便分别由一个或多个其他处理线程处理的一个或多个复制缓冲器;接收将数据写入所述第一缓冲器的指令;以及当接收到将数据写入所述第一缓冲器的所述指令时,将所述源数据写入所述第一缓冲器以及所述一个或多个复制缓冲器中。
实施例还可包括一种系统,包括:数据源,用于提供源数据;第一缓冲器,用于存储所述源数据以便由第一处理线程处理;一个或多个复制缓冲器,用于存储所述源数据以便分别由一个或多个其他处理线程处理;控制器,用于如果所述控制器接收到将所述源数据写入所述第一缓冲器的命令则将所述元数据存储在所述第一缓冲器中以及所述一个或多个复制缓冲器中;以及处理器;用于处理存储在所述第一缓冲器以及所述一个或多个复制缓冲器中的所述源数据。
实施例还可包括一种计算机可读介质,包括指令集,如果被处理器执行,所述指令集致使计算机:分配用于存储源数据以便由第一处理线程处理的第一缓冲器;分配用于存储将被存储在所述第一缓冲器中的所述源数据以便分别由一个或多个其他处理线程处理的一个或多个复制缓冲器;将所述第一缓冲器以及所述一个或多个复制缓冲器的地址发送到存储器控制器,以便能够由所述存储器控制器基于所述地址将写入所述第一缓冲器中的所述源数据存储到所述一个或多个复制缓冲器中;以及当接收到来自所述存储器控制器的缓冲器就绪信号时,处理存储在所述第一缓冲器以及所述一个或多个复制缓冲器中的所述源数据。
实施例还可包括一种系统,包括:控制器,用于当所述控制器接收到将源数据写入所述第一缓冲器的命令时将所述源数据存储到第一缓冲器和一个或多个复制缓冲器中;以及存储器,用于存储所述第一缓冲器和所述一个或多个复制缓冲器的一个或多个地址。
实施例可适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等等。附加地,在某些附图中,可用线表示信号导线。某些可能不同以指示更多组成信号路径,具有号码标签以指示多个组成信号路径,和/或在一个或多个端部具有箭头以指示主信息流向。然而,这不应当以限制性的方式解释。相反,这种附加细节可结合一个或多个示例性实施例使用,以便促进更容易地理解电路。任何所表示的信号线(不管是否具有附加信息)可实际上包括一个或多个信号,一个或多个信号可在多个方向上行进并且可用任意合适类型的信号方案实现,例如用差分对、光纤线路、和/或单端线路实现的数字或模拟线路。
示例尺寸/模型/值/范围可已经被给出,尽管本发明实施例不限于此。随着制造技术(例如,光刻法)日益成熟,期望可制造具有更小尺寸的设备。附加地,为了示出和讨论的简单,并且为了不混淆本发明实施例的某些方面,到IC芯片和其他组件的公知的电源/接地连接可以或可以不在附图中示出。进一步地,可以用框图的形式示出安排,以便避免混淆本发明实施例,并且还鉴于以下事实:针对这种框图安排的实现的详情高度地依赖于将在其中实现实施例的平台,即,这些详情应当在本领域普通技术人员的范围内。当列出特定细节(例如,电路)以便描述本发明的示例实施例时,对于本领域普通技术人员而言应当明显的是本发明实施例可在不具有或具有这些特定细节的变体的情况下实践。因此,本说明书应当被认为是说明性的而不是限制性的。
可例如使用可存储指令或指令集的机器或有形计算机可读介质或制品实现某些实施例,如果被机器执行,指令或指令集可致使机器执行根据实施例的方法和/或操作。这种机器可包括例如任意合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等等并且可使用硬件和/或软件的任意合适的组合实现。机器可读介质或制品可包括例如任意合适类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,例如,存储器、可移除或不可移除介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(CD-ROM)、可记录紧致盘(CD-R)、可重写紧致盘(CD-RW)、光盘、磁介质、磁光介质、可移除存储器卡或盘、各种类型的数字多用途盘(DVD)、磁带、磁盒等等。这些指令可包括任意合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等等,使用任何合适的高级、低级、面向对象的、视觉、编译和/或解释编程语言实现。
除非明确地以其他方式声明,可认识到术语诸如“计算”、“运算”、“确定”等等是指操纵表示为计算机系统的寄存器和/或存储器内的物理量的数据和/或将其转换为类似地表示为计算机系统的存储器、寄存器或其他这种信息存储、传输或显示设备内的物理量的其他数据的计算机或计算系统或类似的电子计算设备的动作和/或过程。实施例不限于此上下文。术语“耦合”可在此用于指代有关组件之间的任意类型的关系(直接的或间接的)并且可应用到电、机器、流体、光、电磁、电机械或其他连接。附加地,术语“第一”、“第二”等等可在此仅用于促进讨论并且不带有任何特定的时间或时间顺序的意义,除非另外指明。
本领域普通技术人员将从前述说明中认识到本发明实施例的大量技术可以用不同的形式实现。因此,尽管已经结合其具体示例描述了本发明实施例,本方面实施例的真实范围不应当被如此限制,因为当学习附图、说明书和以下权利要求书时,其他修改将对本领域普通技术人员变得明显。

Claims (23)

1.一种计算系统,包括:
数据源,用于提供源数据;
第一缓冲器,用于存储所述源数据以便由第一处理线程处理;
一个或多个复制缓冲器,用于存储所述源数据以便分别由一个或多个其他处理线程处理;
控制器,用于如果所述控制器接收到将所述源数据写入所述第一缓冲器的命令,将所述源数据存储在所述第一缓冲器以及所述一个或多个复制缓冲器中;
处理器,用于处理存储在所述第一缓冲器以及所述一个或多个复制缓冲器中的所述源数据;以及
存储器,所述存储器用于为所述一个或多个复制缓冲器的每一个存储标志以控制所述控制器是否将所述源数据存储到所述复制缓冲器中。
2.如权利要求1所述的系统,其中,所述源数据是帧数据。
3.如权利要求1所述的系统,其中,所述第一缓冲器以及所述一个或多个复制缓冲器是帧缓冲器。
4.如权利要求1所述的系统,其中,所述第一缓冲器以及所述一个或多个复制缓冲器是图像缓冲器。
5.如权利要求1所述的系统,其中,所述处理器是图形处理器。
6.如权利要求1所述的系统,其中,所述一个或多个复制缓冲器是专用缓冲器。
7.如权利要求1所述的系统,进一步包括用于存储所述一个或多个复制缓冲器的一个或多个地址的存储器。
8.如权利要求1所述的系统,进一步包括用于如果所述一个或多个复制缓冲器被填充则发送缓冲器就绪信号的信号生成器。
9.一种用于写入数据的方法,包括:
分配用于存储源数据以便由第一处理线程处理的第一缓冲器;
分配用于存储将被存储在所述第一缓冲器中的所述源数据以便分别由一个或多个其他处理线程处理的一个或多个复制缓冲器;
接收将数据写入所述第一缓冲器的指令;
当接收到将数据写入所述第一缓冲器的所述指令时,将所述源数据写入所述第一缓冲器以及所述一个或多个复制缓冲器中;以及
为所述一个或多个复制缓冲器中的每一个设置标志以便控制是否将所述源数据写入所述复制缓冲器中。
10.如权利要求9所述的方法,进一步包括处理存储在所述第一缓冲器以及所述一个或多个复制缓冲器中的所述源数据。
11.如权利要求9所述的方法,进一步包括存储所述第一缓冲器以及所述一个或多个复制缓冲器的一个或多个地址,以便实现基于所存储的地址将写入所述第一缓冲器的所述源数据存储到所述一个或多个复制缓冲器中。
12.如权利要求9所述的方法,进一步包括一旦所述源数据被写入所述复制缓冲器中就重置所述标志。
13.如权利要求9所述的方法,进一步包括如果所述一个或多个复制缓冲器被填充,发送缓冲器就绪信号。
14.一种计算机可读介质,包括指令集,如果被处理器执行,所述指令集致使计算机:
分配用于存储源数据以便由第一处理线程处理的第一缓冲器;
分配用于存储将被存储在所述第一缓冲器中的所述源数据以便分别由一个或多个其他处理线程处理的一个或多个复制缓冲器;
将所述第一缓冲器以及所述一个或多个复制缓冲器的地址发送到存储器控制器,以便实现由所述存储器控制器基于所述地址将写入所述第一缓冲器中的所述源数据存储到所述一个或多个复制缓冲器中;
为所述一个或多个复制缓冲器中的每一个设置标志以便控制是否将所述源数据写入所述复制缓冲器中;以及
当接收到来自所述存储器控制器的缓冲器就绪信号时,处理存储在所述第一缓冲器以及所述一个或多个复制缓冲器中的所述源数据。
15.如权利要求14所述的计算机可读介质,其中,所述源数据是帧数据。
16.如权利要求14所述的计算机可读介质,其中,所述源数据是图像数据。
17.如权利要求14所述的计算机可读介质,其中,所述第一缓冲器以及所述一个或多个复制缓冲器是帧缓冲器。
18.如权利要求14所述的计算机可读介质,其中,所述第一缓冲器以及所述一个或多个复制缓冲器是图像缓冲器。
19.一种计算系统,包括:
控制器,用于当所述控制器接收到将源数据写入第一缓冲器的命令时,将所述源数据存储到第一缓冲器和一个或多个复制缓冲器中;
存储器,用于存储所述第一缓冲器和所述一个或多个复制缓冲器的一个或多个地址,以及
用于为所述一个或多个复制缓冲器中的每一个存储标志以便控制所述控制器是否将所述源数据存储到所述复制缓冲器中的存储器。
20.如权利要求19所述的系统,进一步包括用于存储所述第一缓冲器以及所述一个或多个复制缓冲器的一个或多个地址以便实现基于所存储的地址将写入所述第一缓冲器的所述源数据存储到所述一个或多个复制缓冲器中的存储器。
21.如权利要求19所述的系统,进一步包括用于如果所述一个或多个复制缓冲器被填充则发送缓冲器就绪信号的信号生成器。
22.一种机器可读介质,其上存储有指令,所述指令在被执行时致使机器执行如权利要求9-13中任一项所述的方法。
23.一种用于写入数据的设备,包括多个装置,每个装置用于执行如权利要求9-13中任一项所述的方法的相应步骤。
CN201280066069.3A 2012-01-06 2012-12-27 用于复制源数据从而实现对源数据的并行处理的方法和系统 Expired - Fee Related CN104054049B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
MYPI2012000073 2012-01-06
MYPI2012000073 2012-01-06
PCT/US2012/071721 WO2013103571A1 (en) 2012-01-06 2012-12-27 Reducing the number of read/write operations performed by a cpu to duplicate source data to enable parallel processing on the source data

Publications (2)

Publication Number Publication Date
CN104054049A CN104054049A (zh) 2014-09-17
CN104054049B true CN104054049B (zh) 2018-04-13

Family

ID=48745377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280066069.3A Expired - Fee Related CN104054049B (zh) 2012-01-06 2012-12-27 用于复制源数据从而实现对源数据的并行处理的方法和系统

Country Status (4)

Country Link
US (1) US9864635B2 (zh)
EP (1) EP2801024A4 (zh)
CN (1) CN104054049B (zh)
WO (1) WO2013103571A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864635B2 (en) 2012-01-06 2018-01-09 Intel Corporation Reducing the number of read/write operations performed by a CPU to duplicate source data to enable parallel processing on the source data
CN106257434B (zh) * 2015-06-16 2019-04-30 深圳市中兴微电子技术有限公司 一种基于增强型外设互连协议总线的数据传输方法及装置
KR102548581B1 (ko) * 2016-01-26 2023-06-29 삼성전자주식회사 데이터 처리 속도를 높이는 터치 스크린 컨트롤러, 및 이를 포함하는 터치 시스템
US10141972B2 (en) * 2016-01-26 2018-11-27 Samsung Electronics Co., Ltd. Touch screen controller for increasing data processing speed and touch system including the same
KR102583787B1 (ko) * 2018-11-13 2023-10-05 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344842A (zh) * 2007-07-10 2009-01-14 北京简约纳电子有限公司 多线程处理器及其多线程处理方法
CN101639930A (zh) * 2008-08-01 2010-02-03 辉达公司 一连串绘图处理器处理绘图数据的方法及系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173389B1 (en) 1997-12-04 2001-01-09 Billions Of Operations Per Second, Inc. Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
US6100906A (en) * 1998-04-22 2000-08-08 Ati Technologies, Inc. Method and apparatus for improved double buffering
US6862635B1 (en) * 1998-11-13 2005-03-01 Cray Inc. Synchronization techniques in a multithreaded environment
US6785751B1 (en) * 2000-09-19 2004-08-31 Intel Corporation Method and apparatus for minimizing bus contention for I/O controller write operations
US20040078630A1 (en) * 2002-06-28 2004-04-22 Niles Ronald Steven System and method for protecting data
US6943804B2 (en) 2002-10-30 2005-09-13 Hewlett-Packard Development Company, L.P. System and method for performing BLTs
US7477205B1 (en) * 2002-11-05 2009-01-13 Nvidia Corporation Method and apparatus for displaying data from multiple frame buffers on one or more display devices
US7019752B1 (en) 2003-06-04 2006-03-28 Apple Computer, Inc. Method and apparatus for frame buffer management
US7617369B1 (en) * 2003-06-30 2009-11-10 Symantec Operating Corporation Fast failover with multiple secondary nodes
US20050050115A1 (en) * 2003-08-29 2005-03-03 Kekre Anand A. Method and system of providing cascaded replication
JP2006065697A (ja) * 2004-08-27 2006-03-09 Hitachi Ltd 記憶デバイス制御装置
JP4456123B2 (ja) 2004-12-02 2010-04-28 富士通株式会社 データバッファ装置、キャッシュ装置、データバッファ制御方法
US8810480B2 (en) * 2006-08-04 2014-08-19 Apple Inc. Methods and apparatuses for controlling display devices
CN101553780A (zh) 2006-12-11 2009-10-07 Nxp股份有限公司 Vliw处理器的虚拟功能单元
KR101313330B1 (ko) * 2007-02-28 2013-09-27 삼성전자주식회사 이미지 티어링 효과를 방지할 수 있는 영상 표시 시스템 및그것의 영상 표시 방법
US20110069833A1 (en) 2007-09-12 2011-03-24 Smith Micro Software, Inc. Efficient near-duplicate data identification and ordering via attribute weighting and learning
US8854320B2 (en) * 2008-07-16 2014-10-07 Sony Corporation Mobile type image display device, method for controlling the same and information memory medium
US8749568B2 (en) * 2010-01-11 2014-06-10 Apple Inc. Parameter FIFO
US9058334B2 (en) * 2010-02-11 2015-06-16 Emc Corporation Parallel file system processing
US8723877B2 (en) * 2010-05-20 2014-05-13 Apple Inc. Subbuffer objects
US8963799B2 (en) * 2011-01-11 2015-02-24 Apple Inc. Mirroring graphics content to an external display
US8615614B2 (en) * 2011-11-30 2013-12-24 Freescale Semiconductor, Inc. Message passing using direct memory access unit in a data processing system
US9864635B2 (en) 2012-01-06 2018-01-09 Intel Corporation Reducing the number of read/write operations performed by a CPU to duplicate source data to enable parallel processing on the source data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344842A (zh) * 2007-07-10 2009-01-14 北京简约纳电子有限公司 多线程处理器及其多线程处理方法
CN101639930A (zh) * 2008-08-01 2010-02-03 辉达公司 一连串绘图处理器处理绘图数据的方法及系统

Also Published As

Publication number Publication date
EP2801024A4 (en) 2016-08-03
EP2801024A1 (en) 2014-11-12
WO2013103571A1 (en) 2013-07-11
US9864635B2 (en) 2018-01-09
US20140310721A1 (en) 2014-10-16
CN104054049A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
CN104471540B (zh) 通过统一存储器架构的存储器共享
CN104380258B (zh) 对图形硬件实施调度操作
CN103959235B (zh) 在操作系统初始化过程中显示多媒体数据的技术
CN104952033B (zh) 分布式图形处理器分级中的系统一致性
CN104054049B (zh) 用于复制源数据从而实现对源数据的并行处理的方法和系统
CN104781845B (zh) 处理视频内容
CN104050416A (zh) 显示表面的安全绘制
CN104782136B (zh) 在云中处理视频数据
CN104756150B (zh) 深度缓冲
CN104025031B (zh) 减少应用中对共享存储器单元执行的顺序操作的数量
CN104011623A (zh) 包括基于观看条件的动态用户接口在内的用于能量效率和能量节约的方法、装置和系统
CN104951358A (zh) 基于优先级的上下文抢占
CN104737198B (zh) 在输入几何对象粒度上记录可见度测试的结果
CN104050040A (zh) 媒体重放工作负荷调度器
CN104012059A (zh) 协处理器之间的直接链路同步通信
CN105518634B (zh) 与外部终端交互的方法、装置和记录介质
CN104067318A (zh) 使用三维光栅化的时间连续碰撞检测
CN103533286A (zh) 用于带静态区域排除的时间帧内插的方法和系统
US20190070500A1 (en) Method and system for providing game based on video call and object recognition
CN103997687A (zh) 用于向视频增加交互特征的技术
CN104125480B (zh) 改进的代码转换管理技术
CN104040589A (zh) 使用随机光栅化生成随机采样分布
CN103927223A (zh) 对图形资源的串行化访问
CN105103512A (zh) 分布式图形处理
CN104011789B (zh) 减少用于在屏幕上显示多个图像的显示控制器中使用的缩放引擎的数量

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180413

Termination date: 20191227