CN101861585A - 用于实时信号处理的方法和装置 - Google Patents

用于实时信号处理的方法和装置 Download PDF

Info

Publication number
CN101861585A
CN101861585A CN200880110367A CN200880110367A CN101861585A CN 101861585 A CN101861585 A CN 101861585A CN 200880110367 A CN200880110367 A CN 200880110367A CN 200880110367 A CN200880110367 A CN 200880110367A CN 101861585 A CN101861585 A CN 101861585A
Authority
CN
China
Prior art keywords
processor
data pipeline
application
instruction
software
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.)
Pending
Application number
CN200880110367A
Other languages
English (en)
Inventor
X·王
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.)
Axis Semiconductor Inc
Original Assignee
Axis Semiconductor Inc
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 Axis Semiconductor Inc filed Critical Axis Semiconductor Inc
Publication of CN101861585A publication Critical patent/CN101861585A/zh
Pending legal-status Critical Current

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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/30181Instruction operation extension or modification
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/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
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了新的信号处理器技术和装置,其将微处理器技术与切换构造电信技术进行组合以实现可编程处理器架构,其中,通过经由切换构造以动态、并行和灵活方式进行的通信,由针对每一个具体应用的软件来配置处理器及其功能块间的连接,以实现可重配置的流水线,所述流水线中的流水线级的长度和流水线级的顺序随时间和应用的不同而改变,来应对在诸如手持装置、机顶盒等的单个设备中对各种不同信号处理的需要的爆发性增长,从而具有前所未有的性能、成本和功率节省并且具有充分的应用灵活性。

Description

用于实时信号处理的方法和装置
技术领域
本发明总体上涉及实时信号处理的领域,并且更具体地说,关注于以下问题:由于期望在诸如手持装置或机顶盒这样的单个设备或单个封装中呈现越来越多的各种不同数据通信特征的聚合,而增加了对信号处理的需要。
背景技术
当今,手持装置、机顶盒和其它单个设备封装中用于数字信号处理(DSP)软件算法计算的处理器要面对以下问题:适应各种不同实时信号处理需要的聚合以及要求在单个设备中操控多种受控处理能力。越来越多混合了不断演进的技术标准的特征在单个设备中的这种聚合已经导致信号处理的需求成指数增加,从而带来了新的技术挑战。在各种应用中,对于移动设备和家庭网络标准应用与服务来说尤其如此。
对于新兴市场中当前的片上系统(SoC)设计而言,现有的技术选择包括:上述DSP、通用处理器(GPP)和专用集成电路(ASIC)块。但是,不利之处在于,这些技术中的每一种技术都不能完全解决所述问题。在这些不能完全解决所述问题的技术中,DSP是可编程的。然而,虽然DSP对于不同应用是可编程的,并且为以DSP作为中心的算法(例如,语音和数据通信)提供了良好的实时性能,但是DSP具有有限的内容处理能力。对于GPP,其对于不同应用也是可编程的,但是实时性能差并且要求非常广泛的受控处理能力。至于ASIC块方法,虽然就处理性能而言可以针对具体应用算法进行优化,但是该技术具有非常有限的可编程性并且对新的应用、技术和标准来说通常是不可重用的。此外,为了尝试组合这三种技术方法,提供了折衷的几乎不可能性(trade-off near-impossibility)(例如,Qualcomm3GMM基带——试图在单个SoC中组合2DSP+2GPP+13ASIC加速器块来满足要求)。此外,这种方法需要用于许多可能的特征的专用硬件,其中,所述硬件在这种使用模式下未同时被运用,但是却始终占据管芯区域并消耗功率。
作为“解决方案”的当前技术的问题在于以下事实:随着部件和系统的可扩展性成为不断紧迫的问题,系统变得越来越复杂、不灵活并且昂贵,需要更多导致高度复杂的系统的专用核心。此外,新的特征、应用和标准变得更难于合并。更复杂的系统还意味着更长的开发周期和更高的成本/性能比。
实际上,如之后充分解释的,本发明通过提供一种新颖的可编程核心而提出了解决方案,所述可编程核心满足当前设备应用的所有处理需要,而这是尽管本领域一直在努力提出改进,但当前处理器架构仍不能实现的。
无论如何,从CISC(复杂指令集计算机)到RISC(精简指令集计算机),流水线处理器的出现的确显著地提高了执行速度。以5个指令为例,CISC需要31个周期来串行地执行这些指令;而流水线RISC提供了350%的改进。当前的深流水线多发射(multi-issue)DSP架构允许针对流水线的实现而增加硬件和增加功能单元,从而以更快的总线和提高的时钟速率提高数据流的并行度。但是,这会导致增加复杂度、更大的管芯尺寸以及更高的功耗。更为重要的是,随着新兴应用需要更多不同的信号处理算法,很多算法超出传统DSP技术(例如语音、音频、视频图像处理、数据通信等)所能适应的范围。虽然流水线架构提高了CPU的性能,但是当计算的顺序不同于在流水线中对齐的功能块时,流水线解决方案丧失了其优势。在该情况下,计算花费更长时间。流水线解决方案在操作中也不总是非常有效率的。例如,加载和存储指令从不使用用于算术计算的级。此外,特定的流水线不能满足所有算法的需要——在移动和消费设备中期望的各种实时信号处理正成爆发性增长,而当前的DSP和GPP技术不能充分地满足这些新兴的信号处理需要。
相信本发明通过可编程核心和可重配置流水线提供了突破性解决方案,所述可编程核心和可重配置流水线通过以下技术的新颖组合很好地满足了当今不同应用的处理需要:为优化基于固定流水线架构的控制程序而开发的基于微处理器的技术,和用于不同领域的电信设备(包括互联网路由器/交换机和嵌入式处理器)的切换(switch)构造技术。实际上,本发明是将CISC架构和RISC架构两者的长处进行组合,但是却超过当前高性能DSP核心的性能,其为适于各种处理需要(包括通信算法、多媒体处理(音频、视频、成像)、网络协议、控制功能等)的通用处理器和架构提供了可编程性和灵活性——简而言之,提供了用于“聚合的”(converged)世界的应用“不可知的”(agnostic)架构。
发明内容
因此,本发明的主要目的是提供新的并且改进的方法和架构装置或系统,用于处理各种不同实时信号处理应用的软件计算指令,包括用于处理单个设备中的聚合,该方法、架构装置或系统将没有现有技术方法的任何上面描述的限制和/或缺点,相反,其满足当今设备和不断扩展的应用的处理需求。
进一步的目的是通过将基于微处理器的技术与来自切换电信的不同领域的切换构造技术进行新颖的组合来提供这种改进。
再一个目的是提供可编程嵌入式处理器与可重配置的流水线级的新颖组合,其中,对处理器功能部件的配置允许灵活的、针对具体应用设置的流水线,这与之前的固定的单一流水线数据流是不同的。
另一个目的是通过交叉连接的切换构造以动态、并行和灵活的方式来提供这种灵活性,其中,通过每个应用的指令集在操作期间实时地配置所述切换构造。
又一个目的是提供这种新颖技术,其中,在应用软件指令解码之后,流水线级的长度和流水线级的顺序根据时间或应用的不同而改变。
再又一个目的是提供这种新的可编程嵌入式处理器和可重配置的流水线,其中,该架构是可扩展的,并且其中,该处理器被配置来执行并行处理,从而充分使用内部处理器功能部件的计算能力。
其它和进一步的目的将被在后面指出并且在所附权利要求中更完整地描述。
但是,总的来说,从其新颖方法方面来说,本发明包括一种用于处理馈送到处理器的计算机软件计算指令的方法,所述方法包括:编译并分析输入的用户软件应用以确定每个软件应用需要执行的具体计算任务;实时生成指令集,用于所述处理器和具体应用所需的所述处理器的功能部件间的连接的每种应用配置;通过切换件将所述处理器连接到数据流水线,所述数据流水线的流水线级的长度和顺序是可不同配置的;以及在针对每个具体应用而配置的所述处理器部件间通过所述切换件以动态、并行和灵活的方式进行通信,从而相应地为每一个具体应用配置适当长度和顺序的流水线级。
对于针对本发明的实践的装置实现来说,设想一种灵活的数据流水线架构,用于适应基本上所有类型的用于不同应用的软件计算指令集,所述数据流水线架构具有组合的可编程嵌入式处理器和可重配置的流水线级,响应于不同应用的指令集,所述流水线级的顺序和长度发生改变,从而建立相对应的处理器及其功能部件间的连接的配置,以特别适用于所述应用。
相对于之前提及的现有DSP和GPP技术,本发明的新颖的嵌入式处理器架构实现了更大的可扩展性和灵活性,并且重要的是应用不可知性和需要较短的应用开发周期以及较低的成本/性能比。
后文详细地描述了优选和最佳模式的实施例。
附图说明
现在将参照附图来描述本发明,图1是由Nokia在2005年所公布的饼图,其说明了之前讨论的各种实时信号处理应用需求,以及与互联网一起使用的单个设备中所需的良好的控制处理能力——用于说明性的“媒体、电信、消费电子、信息技术和娱乐”应用的数字内容、服务、软件和设备。
图2是类似的Nokia的无需说明的图,其示出了在单个设备(“聚合设备”)中混合了不断增加的技术标准的许多特征的聚合,这些不断增加的技术标准推动了信号处理需求(如所示出的“蜂窝接入”、“热点接入”、“邻近的和个人区域接入”以及“广播大众媒体TV”)的增长;
图3是类似的聚合家庭网络系统图,其涉及公用服务的提供、电信/有线广播以及家庭装置应用,再次表明需要在网络中适应大量不同技术、不同家庭网络标准和不同服务——所有这些导致信号处理需求的增加;
图4是以简化形式示出本发明的可编程嵌入式核心处理器-可重配置的流水线系统和方法的优选实施例的组合框图和电路示意图;
图5是说明了对图4的核心处理器进行编程的步骤的流程图;
图6是用一条指令对图4的多个存储器单元进行配置的图;
图7是图4的详细的切换控制指令和控制单元的框图和电路示意图;
图8类似地说明了图4的系统用于对三条汇编指令进行示例性并行处理的灵活的流水线和并行处理;
图9是说明本发明的核心编译器操作(图5)的图表;以及
图10示出了本发明的通用信号处理应用-操控的灵活性。
具体实施方式
首先参照图4中所示的本发明的基本且通用的流水线结构和方法图,在P处总体地示出可编程嵌入式处理器的灵活的数据流水线架构,在PS处示出可重配置的流水线级。在程序存储器1中存储的软件应用指令可以在2处被获取并且在3处被解码,以用于控制交叉连接的切换矩阵5的切换控制4。
尽管本发明的处理器P可以具有与在当前RISC处理器中所使用的功能部件的类型相同的功能部件(示出为算术执行单元EX1-EXn(例如,乘法器、加法器、移位器或流水线乘法器)和存储器单元(例如,在MU1-MUn处的数据存储器组)),但是在本发明的可编程处理器中的这些部件以与RISC处理器基本不同的方式来彼此通信。在当今的固定级流水线的RISC处理器中,以固定的顺序来执行指令。因此,在这种处理器中的功能单元没有被有效率地使用并且它们变得越来越复杂和昂贵。
取代将类似功能单元排列到流水线中的是,本发明使用切换矩阵5来提供连接类似功能单元的灵活性,以针对具体的软件应用指令集所要求的特定任务来对它们进行调整或配置。此外,交叉连接的切换矩阵5将执行单元EX1-EXn连接到一侧,而将存储器块MU1-MUn连接到另一侧,从而在不同时间根据不同应用的不同软件算法来将它们配置为不同结构。
在图5中示出了对程序存储器1进行的编程,其中,编译器6将C/C++源代码程序转换成机器代码指令7,并且将其馈送到程序存储器1。这些指令包括:用于将执行单元设置为操作模式的传统指令、用于实现在不同硬件执行单元之间的连接的专用切换控制指令SC,以及用于设置存储器单元操作的参数的专用存储器单元配置指令MU。编译器6基于特定指令序列和硬件可用性来对任意具体给定的程序采用并行操作。然后,编译器以适当时序产生机器指令,用于配置硬件单元EX、MU和DMA(直接存储器存取),以及它们之间的连接,如在图9的图表中所示。
如之前所提及的,在RISC类型操作中,指令用固定流水线级且全部在相同的固定时钟周期内被执行,而如之前所提及的,本发明的交叉连接的切换矩阵5连接执行单元EX和存储器块MU,从而在不同时间针对不同算法将它们配置成不同结构。在程序编译时间期间确定交叉连接的切换矩阵5的连接。编译器分析程序中的每一个任务。基于此时可用的资源,决定为当前任务配置可用资源或者拖延指令执行。在图中的执行单元EX和存储器组被设置路线成允许并行执行多个任务的网络。或者将所有资源配置到一个大流水线。但是,每个执行单元EX的功能可能花费多个周期来完成。每个EX可以具有唯一的功能并且可以针对更复杂的功能来进行配置。这些是很难通过固定流水线解决方案来实现的。从一个EX到另一个EX的所有此类数据都通过该切换矩阵而不是现有技术的总线,然后到存储器或其它部件。这很大程度上减少了所需的总线带宽。
如之前所解释的,符号EX是算术单元——乘法器、加法器、移位器或流水线乘法器等。一个乘法器可以例如由许多加法器构建。例如,一个16×16乘法器可以由16个加法器构建。此外,这些加法器可以被流水线化。这意味着可以在一定数量的周期之后完成一个乘法器。例如,A+B+C+C通常必须在四个周期中执行。如果加法器被作为乘法器,那么四个加法可以在一个周期中执行。因此,EX可以非常的灵活并且在运行时可以由操作码来构建。连接到切换矩阵5的多个存储器组MU为并行处理提供数据。与仅具有一个存储器并且在每个周期仅可以获取一段数据的通用CPU设计不同,每个EX可以要求其自身的数据。此外,可以针对等式配置EX单元。使用本发明的方法,在通用处理器或DSP中可以处理多个EX而不仅是一个EX。这在解决更复杂的问题中提供了效率。
本发明的架构可以同时处理多个数据并且将其写回,这使得可以更有效率地完全使用在设备内的硬件,而不像传统的通用处理器和DSP那样,任何时刻都只能使用一个资源而使剩下的资源处于空闲。在编译时间期间的可配置性不仅最小化了逻辑设计的复杂性而且还可以支持更多的应用。
为了应对不断增加的计算力的需要,当今的流水线DSP和通用处理器设计采用两种常用的方法——增加时钟速率以及集成越来越多的加速器。但是,所需的不是更快的指令解码器或更快的指令获取。当需要更强的计算力时,本发明在设计阶段期间简单地使用更多执行单元并且保持处理器设计的其它部分不变。管芯将有非常有限的增大。结果,与当前固定级流水线方法相比,将功耗将更低并且管芯尺寸将更小。本发明的架构覆盖通用处理器和DSP二者。
返回到图4,在3处解码的应用指令为切换矩阵5的切换控制4提供切换控制数据SC,继而,切换控制4提供在9处示意性说明的切换控制矢量,用于实现切换逻辑。该控制提供切换矢量,如所示出的,用于为每个应用设置从一个EX单元的输出到另一个EX单元的输入的连接;从任何MU单元到EX输入的连接;从DMA(直接存储器存取)到任何MU的连接;以及从指令解码3到任何EX、MU或DMA的连接。这在图7中更详细地描述,其中,四个触发器FF1-FF4在上电之后都被设置为默认的切换控制矢量值。切换扩展指令的控制信号将设置适当的矢量位(1,5,7),在9处设置控制矢量逻辑以为切换控制选择正确的时隙,来针对期望的单元切换连接激励适当的触发器,从而通过矩阵5来配置处理器。可以例如从之前的美国专利Nos.6,999,464;6,684,317;7,039,851以及本文所引用的参考中,获得这种切换结构的切换控制时隙的公知矢量位逻辑选择的其它细节。
如图6所示,如果期望的话,指令解码3可以用一条指令配置多个处理器存储器单元。存储器单元配置指令为给定存储器单元设置以下参数:存储器访问的起始地址;在每次访问之后自动存储器地址增量(+1、+2、+4等);以及存储器访问频率,例如每1,2,3,...个时钟周期。
在图8中针对并行处理三条汇编指令的情况呈现了本发明的具有灵活可重配置的流水线和并行处理能力的示例,其具有乘法器单元MULT1和2以及单元ALU1和2(算术逻辑单元)以及存储器单元MU1-4,在其下列出了矢量积、移动和矢量和的细节。用虚线示出了在单元MULT1与MU1、MU2以及ALU1间配置的连接,而用实线箭头示出了从ALU1到MU1的连接。MU3到ALU2的配置的连接用点线来指示,而在MU4和DMA之间的连接由点划线来指示。
图9是切换矩阵5的内部关联配置汇编指令的矩阵图。图5的核心编译器6检查具体应用的资源需求、完成处理器硬件单元的期望配置的切换矩阵需求以及每个指令的传播延迟。其将这些汇编指令翻译为三种类型的机器指令(OP、SG、MU)。如果能适当地最佳使用所有处理器硬件单元,则可以将这些机器指令进行组合和重排序。最后,确定将机器指令释放到流水线PS的时间。
相对于现有的信号处理技术,本发明提供的架构优势还包括:通过将中间数据存储到ALU最小化了存储器和寄存器访问;减轻了互连总线的负担;通过使得可以进行实际的并行处理消除了并行指令执行的瓶颈;以及使处理器硬件资源被更充分并有效率地使用。此外,对于大多数信号处理算法来说,减少了总共所需的周期并且能够以比当前信号处理架构更低的时钟速率来处理同一应用。本发明降低了功耗,需要更少的流水线级,更小的逻辑复杂性和更小的管芯尺寸。
例如,考虑通常用在视频压缩中的离散余弦变换计算的情况。用通用的5级流水线处理器来计算该等式,要花费22个周期。对于使用乘法器累积的DSP来说,要花费10个时钟周期。使用一个执行单元的本发明的架构花费6个时钟周期;使用两个执行单元时花费3个周期加上一个用于时延的周期;用三个执行单元时花费2个周期加上用于延迟的2个周期;当执行单元的数量增加到5时,花费1个周期加上4个时延周期。
作为另一个示例,在RISC系统中典型的流水线需要三条指令。如果等式需要被执行N次,那么典型的RISC系统所需的总周期是3*N,而用本发明的方法,仅需要N+1个周期,从而节省了大量的总周期数量。
总而言之,本发明提供了新颖的软件解决方案,其能够支持在单个设备中的多个协议和多个功能。可配置的硬件结构使得其适合于许多应用。多个执行单元和存储器块被配置以使得等式在可配置的流水线下进行处理,这最小化了上述存储器寄存器访问率并且减轻了互连总线的负担。多个存储器组增加了存储器访问带宽,这实现了实际的并行处理并且显著地减少了所需的总周期。硬件的更有效率的使用允许更低的时钟速率并且使得功耗更低。更低的时钟速率还使得流水线级更少,由此减少了管芯尺寸和逻辑复杂性。
当今的计算机是用固定的硬件(处理器)来建立。而本发明提出的是动态可配置的硬件,其不仅更有效率地使用硬件资源,而且能够并行处理多线程的应用。
如之前所提及的,该架构通过降低数据访问的频率来减轻现有技术的信号处理器内部总线上的一部分负担。此外,因为存储器被划分成数个组中并且连接到切换矩阵,因此在特定条件下增加了存储器访问带宽,使得能够充分使用多个数学单元。这些特征允许要被配置的设备执行实际的并行处理,由此充分使用内部功能块的计算能力。
总体来说,使用切换技术对处理器内部的功能块进行连接而不是将它们置入固定流水线级的新的处理器架构是动态可配置的,因为其内部结构可以随时间而改变。如之前所阐述的,其是可容易扩展的,因为功能块的数量仅由目标应用来确定。其还是可编程的,因为其是实际的处理器并且可以被应用到许多不同的应用。
最后,为了用图来说明本发明在其信号处理的灵活适应性方面的通用性,以及在克服现有技术限制、获得前所未有的成本和功率节省方面的成果,参照图10示出了针对ASID设计(圆圈)、主流DSP(叉)、主流GPP(点)的适应性的软件处理弧(arc),并用实线外圈示出本发明的适应性的总的圆(circle)。
本领域技术人员还将进行进一步修改,并且认为这些修改落入如所附权利要求中所定义的本发明的精神和范围内。

Claims (30)

1.一种灵活的数据流水线架构,用于适应基本上所有类型的用于不同应用的软件计算指令集,所述数据流水线架构具有组合的可编程嵌入式处理器和可重配置的流水线级,响应于不同应用的指令集,所述流水线级的顺序和长度发生改变,从而建立相对应的处理器及其功能部件间的连接的配置,以特别适用于所述应用。
2.根据权利要求1所述的数据流水线架构,其中,所述功能部件通过切换件以动态、并行以及灵活的方式进行通信。
3.根据权利要求2所述的数据流水线架构,其中,所述切换件是在实时操作期间通过每一个指令集来配置的。
4.根据权利要求3所述的数据流水线架构,其中,所述指令集由软件编译器来生成,所述软件编译器接收应用软件指令并且对所述应用软件指令进行分析,以确定在每个应用中需要执行哪些计算任务,以及如何配置所述处理器和所述功能部件间的连接,来适应所述应用软件指令。
5.根据权利要求4所述的数据流水线架构,其中,在指令解码之后,流水线级的长度和所述流水线级的顺序随时间和应用的不同而改变。
6.根据权利要求5所述的数据流水线架构,其中,与固定的单一流水线数据流形成对比的是,对所述功能部件的所述配置允许有灵活的结构。
7.根据权利要求4所述的数据流水线架构,其中,不同大小的简单软件指令集和复杂软件指令集二者都被有效率实现,以同时使用同一流水线。
8.根据权利要求4所述的数据流水线架构,其中,所述切换件是交叉连接的切换矩阵类型,并且所述处理器的功能部件包括通过所述切换件可动态且并行互连的存储器单元和加法器与乘法器这样的数学执行单元。
9.根据权利要求8所述的数据流水线架构,其中,所述架构可以针对计算密集型应用而扩展,与复杂性较低的应用相比,所述计算密集型应用需要更多数学执行单元。
10.根据权利要求9所述的数据流水线架构,其中,在具体应用的设计周期期间确定数学和/或存储器单元的数量,而不需要对所述编译器进行修改,并且对开发时间具有很小的影响。
11.根据权利要求8所述的数据流水线架构,其中,所述存储器单元被划分成连接到所述切换件的数个组,由此增加存储器访问带宽并且使得能够充分使用多个数学单元。
12.根据权利要求11所述的数据流水线架构,其中,所述处理器被配置来执行并行处理,从而有效率地充分使用内部处理器的功能部件的计算能力。
13.根据权利要求12所述的数据流水线架构,其中,所述有效率性使得能够减少每一个应用所需的总时钟速率周期。
14.根据权利要求13所述的数据流水线架构,其中,较低的时钟速率降低了功耗,并且允许在两个流水线级之间有更多的逻辑,从而使得流水线级减少。
15.根据权利要求13所述的数据流水线架构,其中,较低的时钟速率提供更强的计算力,从而允许处理更复杂的计算和应用。
16.根据权利要求2所述的数据流水线架构,其中,所述切换件连接所述处理器内部的处理器功能部件,这与将所述处理器功能部件置入固定流水线级中是不同的。
17.根据权利要求2所述的数据流水线架构,其中,所述处理器的特征在于:(1)是动态可配置的,因为其内部结构能够随时间改变,(2)是可扩展的,因为功能部件的数量仅由具体应用来确定,以及(3)是可编程的,因为其是可应用到许多不同应用的实际的处理器。
18.一种灵活的数据流水线结构,用于适应用于不同程序应用的软件计算指令,所述数据流水线结构组合的可编程嵌入式处理器和可重配置的流水线级,响应于不同程序应用的指令,所述流水线级的顺序和长度发生改变;所述处理器包括:程序存储器,用于存储来自编译器的应用指令;连接到所述程序存储器的指令获取和解码单元;切换矩阵,其选择性地将多个数学执行单元和存储器单元进行互连,并且受指令解码单元馈送的切换控制单元控制;所述切换矩阵通过两个单元之间任何允许的连接以及所述切换矩阵连接到DMA来提供全部访问切换。
19.根据权利要求18所述的数据流水线结构,其中,所述数学执行单元是从由整数乘法器、整数ALU、浮点乘法器和浮点ALU所组成的组中选择的。
20.根据权利要求18所述的数据流水线结构,其中,所述存储器单元是数据存储器组和L2存储器组中的一个。
21.根据权利要求18所述的数据流水线结构,其中,所述处理器被提供有包括专用计算函数的C库,所述专用计算函数被直接馈送到所述编译器,并且将所述程序转换为用于设置所述数学执行单元操作的期望的处理器机器码指令、用于连接不同的执行单元的切换控制指令,以及用于设置所述存储器单元操作的参数的指令。
22.根据权利要求21所述的数据流水线结构,其中,所述编译器基于每一个程序的指令序列和需要执行任务的执行单元来针对所述每一个程序采用并行处理,从而以适当时序产生机器指令来配置所述执行单元、存储器单元和DMA以及它们间的连接。
23.根据权利要求21所述的数据流水线结构,其中,为每一个存储器单元提供专用存储器单元配置指令,用于提供存储器访问的起始地址、在每次访问之后的自动存储器地址增量,以及存储器访问时钟周期频率。
24.根据权利要求23所述的数据流水线结构,其中,馈送通过所述切换矩阵的一条指令对多个存储器单元进行配置,来提供地址和模式信息。
25.根据权利要求18所述的数据流水线结构,其中,所述切换控制单元通过切换控制矢量操作来设置:从一个数学执行单元的输出到另一个数学执行单元的输入的连接;从任意存储器单元到执行单元输入的连接;所述DMA到任意存储器单元的连接;以及从指令解码器到任意执行单元、存储器单元和/或DMA的连接。
26.根据权利要求1所述的数据流水线结构,其被提供在单个封装中,用于以并行处理来适应各种不同信号-处理应用需求的聚合。
27.一种处理馈送到处理器的计算机软件计算指令的方法,所述方法包括:编译并分析输入的用户软件应用以确定每个软件应用需要执行的具体计算任务;实时生成指令集,用于所述处理器和该具体应用所需的所述处理器的功能部件间的连接的每种应用配置;通过切换件将所述处理器连接到数据流水线,所述数据流水线的流水线级的长度和顺序是可不同配置的;以及在针对每个应用而配置的所述处理器部件间通过所述切换件以动态、并行和灵活的方式进行通信,从而相应地为每一个具体应用配置适当长度和顺序的流水线级。
28.根据权利要求27所述的方法,其中,所述功能部件包括多个数学执行单元和多个存储器单元或组。
29.根据权利要求28所述的方法,其中,所述切换件是在所述执行单元和所述存储器单元之间交叉连接的切换件,用于在不同时间针对不同应用算法并与不同的具体软件应用相对应地将它们配置为不同的结构。
30.一种将微处理器技术与切换构造电信技术进行组合以实现可编程处理器架构的信号处理方法,其中,通过经由切换构造以动态、并行和灵活方式进行的通信,由针对每一个具体应用的软件来配置处理器及其功能块间的连接,以实现可重配置的流水线,其中,流水线级的长度和所述流水线级的顺序随时间和应用的不同而改变,从而能够适应对于在诸如手持装置、机顶盒等的单个设备中的各种不同信号处理需要的爆发性增长。
CN200880110367A 2007-10-06 2008-07-07 用于实时信号处理的方法和装置 Pending CN101861585A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/973,184 2007-10-06
US11/973,184 US8099583B2 (en) 2006-08-23 2007-10-06 Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
PCT/IB2008/001867 WO2009044239A1 (en) 2007-10-06 2008-07-07 Method and apparatus for real time signal processing

Publications (1)

Publication Number Publication Date
CN101861585A true CN101861585A (zh) 2010-10-13

Family

ID=40085403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880110367A Pending CN101861585A (zh) 2007-10-06 2008-07-07 用于实时信号处理的方法和装置

Country Status (7)

Country Link
US (1) US8099583B2 (zh)
EP (1) EP2198373A1 (zh)
JP (1) JP2010541088A (zh)
CN (1) CN101861585A (zh)
AU (1) AU2008306613B2 (zh)
CA (1) CA2701711A1 (zh)
WO (1) WO2009044239A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105190542A (zh) * 2012-12-20 2015-12-23 英特尔公司 可伸缩计算结构
CN113076277A (zh) * 2021-03-26 2021-07-06 大唐微电子技术有限公司 实现流水线调度的方法、装置、计算机存储介质及终端

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
US9008464B2 (en) * 2009-06-16 2015-04-14 University-Industry Cooperation Group Of Kyung Hee University Media data customization
JP5590849B2 (ja) * 2009-10-08 2014-09-17 キヤノン株式会社 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム
WO2012051577A1 (en) * 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system
US20130054939A1 (en) * 2011-08-26 2013-02-28 Cognitive Electronics, Inc. Integrated circuit having a hard core and a soft core
CN104067309A (zh) * 2011-12-28 2014-09-24 英特尔公司 流水线化的图像处理序列发生器
US9378055B1 (en) 2012-08-22 2016-06-28 Societal Innovations Ipco Limited Configurable platform architecture and method for use thereof
US9430239B2 (en) * 2013-03-12 2016-08-30 Qualcomm Incorporated Configurable multicore network processor
US10154095B2 (en) 2014-05-21 2018-12-11 N.Io Innovation, Llc System and method for aggregating and acting on signals from one or more remote sources in real time using a configurable platform instance
US9891893B2 (en) 2014-05-21 2018-02-13 N.Io Innovation, Llc System and method for a development environment for building services for a platform instance
WO2015177639A1 (en) 2014-05-21 2015-11-26 Societal Innovations Ipco Limited System and method for fully configurable real time processing
WO2016151398A1 (en) 2015-03-23 2016-09-29 Societal Innovations Ipco Limited System and method for configuring a platform instance at runtime
US9870339B2 (en) 2015-06-26 2018-01-16 Intel Corporation Hardware processors and methods for tightly-coupled heterogeneous computing
US20170177542A1 (en) * 2015-12-16 2017-06-22 Cognitive Systems Corp. Operating a VLIW Processor in a Wireless Sensor Device
CN107315717B (zh) * 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行向量四则运算的装置和方法
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
EP3611722A1 (en) * 2018-08-13 2020-02-19 Axis AB Controller and method for reducing a peak power consumption of a video image processing pipeline
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication
CN113064852B (zh) * 2021-03-24 2022-06-10 珠海一微半导体股份有限公司 一种可重构处理器及配置方法

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3137117B2 (ja) 1987-03-27 2001-02-19 将容 曽和 高速処理計算機
US5212777A (en) 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
US5226125A (en) 1989-11-17 1993-07-06 Keith Balmer Switch matrix having integrated crosspoint logic and method of operation
US6070003A (en) 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US5239654A (en) 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
EP0429733B1 (en) 1989-11-17 1999-04-28 Texas Instruments Incorporated Multiprocessor with crossbar between processors and memories
US5471626A (en) * 1992-05-06 1995-11-28 International Business Machines Corporation Variable stage entry/exit instruction pipeline
US5706459A (en) * 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
JP3547482B2 (ja) * 1994-04-15 2004-07-28 株式会社日立製作所 情報処理装置
US6052773A (en) 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5771362A (en) 1996-05-17 1998-06-23 Advanced Micro Devices, Inc. Processor having a bus interconnect which is dynamically reconfigurable in response to an instruction field
US5784636A (en) 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications
US5937203A (en) 1996-09-16 1999-08-10 Advanced Micro Devices, Inc. Port for fine tuning a central processing unit
US5887160A (en) * 1996-12-10 1999-03-23 Fujitsu Limited Method and apparatus for communicating integer and floating point data over a shared data path in a single instruction pipeline processor
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US6085317A (en) 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
US6023753A (en) 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
IL135953A0 (en) 1997-11-07 2001-05-20 Bops Inc Methods and apparatus for efficient synchronous mimd operations with ivliw pe-to-pe communication
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
US6101592A (en) 1998-12-18 2000-08-08 Billions Of Operations Per Second, Inc. Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
US6216223B1 (en) 1998-01-12 2001-04-10 Billions Of Operations Per Second, Inc. Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US6539438B1 (en) 1999-01-15 2003-03-25 Quickflex Inc. Reconfigurable computing system and method and apparatus employing same
JP2001169068A (ja) 1999-12-14 2001-06-22 Ricoh Co Ltd 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6704857B2 (en) 1999-12-23 2004-03-09 Pts Corporation Methods and apparatus for loading a very long instruction word memory
JP3922859B2 (ja) 1999-12-28 2007-05-30 株式会社リコー 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
EP1199629A1 (en) * 2000-10-17 2002-04-24 STMicroelectronics S.r.l. Processor architecture with variable-stage pipeline
GB2370381B (en) * 2000-12-19 2003-12-24 Picochip Designs Ltd Processor architecture
GB2370380B (en) * 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US6574764B2 (en) * 2001-04-25 2003-06-03 Agilent Technologies, Inc. Algorithmically programmable memory tester with history FIFO's that aid in error analysis and recovery
US20030088757A1 (en) 2001-05-02 2003-05-08 Joshua Lindner Efficient high performance data operation element for use in a reconfigurable logic environment
US6859873B2 (en) * 2001-06-08 2005-02-22 Infineon Technologies Ag Variable length instruction pipeline
US7200735B2 (en) 2002-04-10 2007-04-03 Tensilica, Inc. High-performance hybrid processor with configurable execution units
AU2003254126A1 (en) * 2002-07-23 2004-02-09 Gatechance Technologies Inc Pipelined reconfigurable dynamic instruciton set processor
US7571303B2 (en) 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
TW200504592A (en) 2003-07-24 2005-02-01 Ind Tech Res Inst Reconfigurable apparatus with high hardware efficiency
JP2006018412A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd アドレス生成器および演算回路
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
EP1780644A4 (en) 2004-07-30 2007-11-21 Fujitsu Ltd CONVERTIBLE CIRCUIT AND CONTROL PROCEDURE OF A CONVERTIBLE CIRCUIT
US7395411B2 (en) * 2005-03-14 2008-07-01 Sony Computer Entertainment Inc. Methods and apparatus for improving processing performance by controlling latch points
JP4527571B2 (ja) * 2005-03-14 2010-08-18 富士通株式会社 再構成可能演算処理装置
US8966223B2 (en) 2005-05-05 2015-02-24 Icera, Inc. Apparatus and method for configurable processing
TWI259659B (en) * 2005-05-13 2006-08-01 Ind Tech Res Inst Pipelined datapath with dynamically reconfigurable pipeline stages
US7454598B2 (en) * 2005-05-16 2008-11-18 Infineon Technologies Ag Controlling out of order execution pipelines issue tagging
US20060259742A1 (en) * 2005-05-16 2006-11-16 Infineon Technologies North America Corp. Controlling out of order execution pipelines using pipeline skew parameters

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105190542A (zh) * 2012-12-20 2015-12-23 英特尔公司 可伸缩计算结构
US9798551B2 (en) 2012-12-20 2017-10-24 Intel Corporation Scalable compute fabric
CN105190542B (zh) * 2012-12-20 2019-05-28 英特尔公司 提供可伸缩计算结构的方法、计算设备和打印设备
CN113076277A (zh) * 2021-03-26 2021-07-06 大唐微电子技术有限公司 实现流水线调度的方法、装置、计算机存储介质及终端
CN113076277B (zh) * 2021-03-26 2024-05-03 大唐微电子技术有限公司 实现流水线调度的方法、装置、计算机存储介质及终端

Also Published As

Publication number Publication date
US20080301413A1 (en) 2008-12-04
AU2008306613B2 (en) 2013-07-18
AU2008306613A1 (en) 2009-04-09
JP2010541088A (ja) 2010-12-24
US8099583B2 (en) 2012-01-17
WO2009044239A1 (en) 2009-04-09
EP2198373A1 (en) 2010-06-23
CA2701711A1 (en) 2009-04-09

Similar Documents

Publication Publication Date Title
CN101861585A (zh) 用于实时信号处理的方法和装置
US11593295B2 (en) Apparatuses, methods, and systems for operations in a configurable spatial accelerator
CN108268278B (zh) 具有可配置空间加速器的处理器、方法和系统
US10140124B2 (en) Reconfigurable microprocessor hardware architecture
US10564980B2 (en) Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
KR101072707B1 (ko) 스칼라/벡터 명령들을 사용하여 데이터를 처리하는 시스템 및 방법
US7159099B2 (en) Streaming vector processor with reconfigurable interconnection switch
US20190005161A1 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US20060026578A1 (en) Programmable processor architecture hirarchical compilation
US20220100680A1 (en) Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits
EP0497772A1 (en) High performance, low cost microprocessor
AU2009252885A1 (en) Method & apparatus for real-time data processing
US11907713B2 (en) Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
De Beeck et al. Crisp: A template for reconfigurable instruction set processors
KR101445794B1 (ko) 소프트웨어 기반 무선통신 터미널을 위한 프로그래밍 가능한 장치
US10445099B2 (en) Reconfigurable microprocessor hardware architecture
Bauer et al. Efficient resource utilization for an extensible processor through dynamic instruction set adaptation
WO2006136943A2 (en) High-level language processor apparatus and method
US7577824B2 (en) Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
JP2004102988A (ja) データ処理装置
Lambers et al. REAL DSP: Reconfigurable Embedded DSP Architecture for Low-Power/Low-Cost Telecom Baseband Processing
GB2386443A (en) Predicting configurations in programmable devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20101013

C20 Patent right or utility model deemed to be abandoned or is abandoned