CN101523345B - 在主处理器和协处理器之间进行接口连接的方法和装置 - Google Patents

在主处理器和协处理器之间进行接口连接的方法和装置 Download PDF

Info

Publication number
CN101523345B
CN101523345B CN2007800365511A CN200780036551A CN101523345B CN 101523345 B CN101523345 B CN 101523345B CN 2007800365511 A CN2007800365511 A CN 2007800365511A CN 200780036551 A CN200780036551 A CN 200780036551A CN 101523345 B CN101523345 B CN 101523345B
Authority
CN
China
Prior art keywords
write
interface
coprocessor
primary processor
address
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
Application number
CN2007800365511A
Other languages
English (en)
Other versions
CN101523345A (zh
Inventor
沙钦·加尔
保罗·D·克里瓦切克
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.)
MediaTek Inc
Original Assignee
MediaTek 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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN101523345A publication Critical patent/CN101523345A/zh
Application granted granted Critical
Publication of CN101523345B publication Critical patent/CN101523345B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • 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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • G06F9/3881Arrangements for communication of instructions and data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

在本发明的一个方面,提供了一种适于在主处理器和外部协处理器之间传输数据的接口。该接口适于在多个写模式下工作,其中在第一写模式中按两个时钟周期跨接口传输该写操作,而在第二写模式中按单个时钟周期跨接口传输该写操作。在另一方面,该接口适于执行由主处理器发起的第一读操作和由外部协处理器发起的第二读操作。在另一方面,该接口包括存储读操作和写操作的多个缓冲器以及选择性地切断向多个缓冲器提供的时钟信号以对往来于缓冲器的数据传输进行同步的多个时钟闸。在另一方面,该接口包括在读操作和写操作同时排队等待传输时能够被修改以在控制经由该接口进行传输操作的优先权的多个优先级之间进行选择的可选优先级方案。

Description

在主处理器和协处理器之间进行接口连接的方法和装置
技术领域
本发明涉及主处理器和协处理器之间的接口,并且更具体地说,本发明涉及主处理器的内部总线和外部协处理器之间的接口。 
背景技术
在例如包括数字信号处理器(DSP)芯片的处理系统的设计中,有利的是能够实现未在该DSP芯片上实现的功能、计算能力和/或专门任务。例如,DSP可以是用于支持各种无线通信标准的无线基带。然而,可能需要对基带平台进行修改以添加对新的和/或不同的标准的支持。例如,在无线环境中,基带处理器可能需要支持全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、时分多址(TDMA)、宽带TDMA、通用分组无线业务(GPRS)和其他标准,并且该基带处理器可能需要被修改为例如支持TDSCDMA、其他第三代(3G)标准或要在未来开发的标准。 
对基带处理器进行扩展以支持一种标准所需的附加硬件不一定能支持另一种标准,或者没有成熟到值得并入到基带架构中的程度。为了解决该问题,可以在外部协处理器(例如,设置在基带芯片外部的协处理器)上实现用于支持基带处理器上不可用的特定标准和/或具体加速器或优化的专用硬件。随着新标准或能力的出现,专用协处理器可以被设计为在不需要对DSP本身进行专门修改和/或添加(即,无需修改集成在芯片上的核心DSP(core DSP))的情况下实现期望的功能。 
另外,这还有利于DSP利用未驻留在DSP芯片上的其他功能来实现特定处理应用。例如,各种硬件加速器、专用滤波组件、噪声减少算法以及其他信号处理功能可以使本身无法实现期望的特定功能的DSP获益。相应地,各种设计情况可以从具有能够与外部协处理器通信以利用由该外部协处理器 提供的功能的DSP的系统结构中获益。 
要在DSP和协处理器之间进行接口连接,就必须将信息从DSP内部的总线传输到协处理器内部的总线。即,通常必须在芯片外传输并获取数据。存在多种总线接口标准(例如,通用串行总线(USB)、PCI-Express、PCI-X、RapidIO等),这些总线接口标准为串行和并行总线传输建立了各种协议。然而,这些标准是在特定设计考量的情况下开发出来的并且具有具体目标和优先级,因此可能不适用于DSP和协处理器之间的接口连接。 
发明内容
根据本发明的一个实施方式包括一种在主处理器上实现的并适于在主处理器和外部协处理器之间传输数据的接口,该接口包括:写缓冲器,其被配置为存储与所述协处理器上的位置相关的多个写地址并且存储待写入到所述多个写地址中的写数据;多个外部接入连接,其支持用于将所述主处理器电连接到所述协处理器的多条物理线,经由所述物理线来传输所述写地址和写数据;以及同步组件,其适于根据时钟从所述写缓冲器向所述多个外部接入连接传输数据,当处于第一写模式时,所述同步组件被配置为在写操作的第一时钟周期向所述多个外部接入连接传输存储在所述写缓冲器中的写地址,而在所述写操作的第二时钟周期向所述多个外部接入连接传输存储在所述写缓冲器中的相关写数据,并且当处于第二写模式时,依据先前传输给所述多个外部接入连接的最后写地址,所述同步组件被配置为在所述第一时钟周期向所述多个外部接入连接传输存储在所述写缓冲器中的所述写数据。 
根据本发明的另一实施方式包括一种在协处理器上实现的并适于在主处理器和所述协处理器之间传输数据的接口,该接口包括:写缓冲器,其被配置为存储与所述协处理器上的位置相关的写地址以及待写入到所述写地址中的写数据;多个外部接入连接,其支持用于将所述主处理器电连接到所述协处理器的多条物理线,经由所述物理线来传输所述写地址和写数据;以及同步组件,其适于根据时钟从所述多个外部接入连接向所述写缓冲器传输数据, 当处于第一写模式时,所述同步组件被配置为在写操作的第一时钟周期向所述写缓冲器传输从所述多个外部接入连接接收到的写地址,而在所述写操作的第二时钟周期向所述写缓冲器传输从所述多个外部接入连接接收到的相关写数据,并且当处于第二写模式时,依据先前传输给所述多个外部接入连接的最后写地址,所述同步组件被配置为在所述第一时钟周期向所述写缓冲器传输从所述多个外部接入连接接收到的写数据。 
根据本发明的另一实施方式包括一种适于在主处理器和外部协处理器之间传输数据的接口,该接口包括:在所述主处理器上实现的主侧接口;以及在所述协处理器上实现的从侧接口,其中所述主侧接口被配置成传输往来于所述主处理器内部的主处理器总线和所述从侧接口的信息,并且所述从侧接口被配置成传输往来于所述主侧接口和所述协处理器内部的协处理器总线的信息,所述接口适于执行由所述主侧接口发起的第一读操作和由所述从侧接口发起的第二读操作。 
根据本发明的另一实施方式包括一种适于在主处理器和外部协处理器之间传输数据的接口,该接口被配置为执行至少一种类型的写操作和至少一种类型的读操作,该接口包括:多条物理线,其连接所述主处理器和所述协处理器,经由该物理线来传输信息;至少一个写缓冲器,其存储与多个写操作相关的写信息;至少一个读缓冲器,其存储与多个读操作相关的读信息;同步组件,其耦接到所述多个写缓冲器和所述多个读缓冲器,该同步组件适于经由所述多条物理线来传输所述写信息和所述读信息;以及优先级寄存器,其存储当所述至少一个写缓冲器和所述至少一个读缓冲器中的一个以上的缓冲器分别含有要传输的写信息和读信息时指示多个优先级方案中的一个的值,该优先级方案用于控制所述同步组件经由所述多条物理线来传输所述写信息和所述读信息的顺序。 
根据本发明的另一实施方式包括一种在主处理器和外部协处理器之间传输数据的方法,该主处理器具有适配的主侧接口并且该协处理器具有从侧接口,该方法包括当执行第一读操作时经由所述主侧接口执行传输往来于所述 主处理器内部的主处理器总线和所述从侧接口的信息的动作,以及经由所述从侧接口传输往来于所述主侧接口和所述协处理器内部的协处理器总线的信息的动作,其中由所述主侧接口发起所述第一读操作。该方法还包括当执行第二读操作时经由所述从侧接口执行从所述协处理器总线向所述主侧接口传输信息的动作,以及经由所述主侧接口从所述主侧接口向所述主处理器接口传输信息的动作,其中由所述从侧接口来发起该第二读操作。 
根据本发明的另一实施方式包括一种经由具有连接主处理器和外部协处理器的多条物理线的接口来传输与写操作相关的信息的方法,该方法包括提供时钟信号以对经由物理线进行的写操作传输进行同步的动作,以及当处于第一写模式时,在该写操作的第一时钟周期经由多条物理线来传输写地址的动作以及在该写操作的第二时钟周期经由多条物理线来传输相关的写数据的动作,以及当处于第二写模式时,在第一时钟周期向多条物理线传输写数据的动作。 
本发明的另一实施方式包括一种经由具有连接主处理器和外部协处理器的多条物理线的接口来传输与写操作和读操作相关的信息的方法,该方法包括以下动作:对要经由多条物理线传输的写操作和读操作进行排队,从多个优先级方案中选择一个优先级方案,该多个优先级方案中的每个方案均指示当在经由多条物理线传输的队列中可进行至少一个写操作和至少一个读操作时传输写操作和读操作的顺序,以及根据所选的优先级方案来传输来自该队列的写操作和读操作。 
本发明的方面不限于此,因此以上概括的示例性实施方式可以单独使用或以任意组合使用。 
附图说明
图1例示了根据本发明的一个实施方式的包括主处理器、外部协处理器和被配置为在该主处理器和协处理器之间传输数据的外部协处理器接口(ECPI)的处理系统; 
图2例示了图1中所示的处理系统的ECPI的一个实施方式的各方面; 
图3例示了根据本发明的一个实施方式的用于切断通往包括ECPI的主侧的多个缓冲器的时钟信号的时钟闸结构;以及 
图4例示了根据本发明的一个实施方式的用于切断通往包括ECPI的从侧的多个缓冲器的时钟信号的时钟闸结构。 
具体实施方式
如上所述,多种原因使得利用主处理器(例如,DSP)外部(例如,芯片外)的协处理器来实现期望的处理系统。术语“主处理器”在这里是指系统或设备中的主处理器。主处理器总体上包括所有处理组件、总线、存储器和集成在单个芯片上的支持电路。术语“协处理器”是指主处理器外部(例如,芯片外)的一个或更多个处理器或处理组件。 
协处理器可以被设计为实现对主处理器的其他应用来说不必要的功能(例如,协处理器可以实现根据特定通信标准工作所要求的功能)。因此,在主处理器内部提供协处理器功能对于没有利用该协处理器功能的那些应用而言增加了额外尺寸、成本、复杂度和功耗。在主处理器外部设置协处理器通过在主处理器上提供核心功能同时仍允许经由一个或更多个协处理器采用专用功能,来提高设计灵活性和主处理器的通用性。 
例如在无线通信环境中,随着新通信标准的开发,不断改变核心基带处理器的设计和功能以根据新通信标准来工作同时保留原有和/或传统标准的功能是不理想的(或不可行的)。而且,如果各种期望的标准均得到支持并且将许多不同应用的功能集成在主处理器设计中,则基带处理器会变得过大、过于复杂且昂贵。因此,申请人想到了在主处理器的外部设置一个或更多个协处理器具有显著的设计优点。 
然而,至少部分地由于必须在芯片外传输信息而导致设置外部协处理器存在多个缺点。具体地说,在主处理器和协处理器之间的数据传输因经由接口(典型的是,通过一个或更多个异步时钟域)来传输信息而产生等待时间 (latency)。对于一些操作来说,该等待时间会导致主处理器总线延迟(stall),同时该主处理器等待协处理器完成操作并将数据返回给该主处理器。另外,设置与外部协处理器通信的接口增加了主处理器芯片的管脚数。现有的常规总线接口标准可能不适于主处理器(例如,基带芯片)和外部协处理器之间的通信。例如,常规标准并非为低功率操作而设计,因此可能不适于功率资源有限的移动或无线环境。 
申请人开发了一种适于在主处理器和外部协处理器之间传输数据的大体上低等待时间、低功率的接口。在一个实施方式中,在主处理器和协处理器上的接口包括支持进行信息传输的物理线(physical lines)的外部管脚连接,其中地址传输和数据传输二者共用相同物理线以减少该接口的管脚数。然而,在写地址和写数据之间的物理线的复用增加了经由接口传输写操作所需的时钟周期数。 
为了减少经由共用物理线来传输写操作(例如,写地址和写数据)所需的时钟周期数,该接口被配置为按多个写模式来工作。在第一写模式中,写操作获取经由物理线传输写地址的时钟周期和经由物理线传输写数据的时钟周期。在第二模式中,写操作获取经由物理线传输写数据的时钟周期并从先前的写操作推导写地址,从而消除了经由连接主处理器和协处理器的物理线来传输写地址的需要。因此,对于按第二模式执行的各个写操作节省了时钟周期。 
利用外部协处理器的一个缺点在于涉及协处理器的操作通常会导致主处理器的内部总线发生延迟。例如,主处理器在继续进一步处理前必须经常等待从外部协处理器返回的数据。相应地,读操作也倾向于成为相对高等待时间的操作,该操作导致相对显著的总线延迟。申请人认识到通过被配置为执行多种不同类型的读操作的接口可以减少等待时间和总线延迟。 
在一个实施方式中,第一类型的读操作由主处理器发起并通过经由接口来传播读地址而执行,协处理器对该读地址进行处理,该协处理器通过接口 返回与该读地址相关的数据。第二类型的读操作由协处理器发起,该协处理器通过接口向主处理器发送一组数据,并且该接口提醒主处理器数据可读。从主处理器的角度来看,第二类型的读操作仅需要对内部主处理器总线进行同步的时钟的单个时钟周期。 
通常在缓冲器中对经由主处理器和协处理器之间的接口执行的各种写操作和读操作分别进行排队,并按照先进先出(FIFO)优先级经由接口对其进行传输。即,按照FIFO优先级传输各种写操作并按照FIFO优先级执行各种读操作。如上所述,典型的读操作倾向于产生相对显著的总线延迟。申请人认识到:当队列中存在读操作和写操作二者中的一个或更多个时,通过将接口配置为在写操作之前传输读操作,可以理想地减少由于读操作导致的总线延迟。此外,申请人认识到:通过提供可选择的优先级方案,可以将接口定制为可以对读操作和写操作进行剪裁(tailor)以减少特定主处理器/协处理器组合的等待时间和总线延迟。 
典型的是,按异步方式来进行芯片外数据的传输。因此,必定要跨多个时钟域来传输数据。为了实现异步传输,通常在连接主处理器和外部协处理器的接口的两端设置缓冲器以存储队列中的数据,从而等待跨各个时钟域的同步。相应地,通常按单独时钟对向缓冲器的写入和从缓冲器的读出进行同步。向各缓冲器提供这些时钟信号需要大量的功率。申请人认识到:通过设置时钟闸(clock gate)结构,在未使用缓冲器时可以切断往来于缓冲器的时钟同步传输,从而节省了当时钟信号不必需时驱动时钟信号所需的功率。 
在一个实施方式中,在主处理器上实现的接口包括多个缓冲器,该缓冲器包括用于存储要跨接口的物理线传输的数据的至少一个写缓冲器和至少一个读缓冲器。通过第一时钟信号对主处理器的内部总线和多个缓冲器之间的数据传输进行同步,并且通过第二时钟信号对多个缓冲器与位于主处理器和协处理器之间的接口的物理连接之间的数据传输进行同步。多个缓冲器中的每一个具有时钟闸,该时钟闸能够在相应缓冲器未使用时切断第一时钟信号 和第二时钟信号中的至少一个,以节省向缓冲器提供时钟信号所需的功率。 
在另一实施方式中,多个缓冲器中的每一个具有在相应缓冲器为空时能够自动独立地切断第一时钟信号的第一时钟闸和能够自动独立地切断第二时钟信号的第二时钟闸。在另一实施方式中,接口包括被配置为在外部协处理器未使用时切断对缓冲器设置的所有时钟的总时钟闸。可以利用控制寄存器值来控制该总时钟闸以启用或停用该总时钟闸。 
在另一实施方式中,在协处理器上实现的接口包括多个缓冲器,该缓冲器包括用于存储要跨接口的物理线传输的数据的至少一个写缓冲器和至少一个读缓冲器。通过第一时钟信号对多个缓冲器和协处理器的内部总线之间的传输进行同步,并且通过第二时钟信号对多个缓冲器与接口的物理连接之间的数据传输进行同步。多个缓冲器中的每一个均具有时钟闸,该时钟闸能够在未使用相应缓冲器时切断第一时钟信号和第二时钟信号中的至少一个,以节省向缓冲器提供时钟信号所需的功率。在另一实施方式中,多个缓冲器中的每一个均具有在相应缓冲器为空时能够自动独立地切断第一时钟信号的第一时钟闸和能够自动独立地切断第二时钟信号的第二时钟闸。 
以下是与根据本发明的方法和装置相关的各种概念以及实施方式的更详细的说明。应该理解的是,可以按任意多种方式来实现这里所描述的本发明的各个方面。在这里仅出于例示目的提供了具体实现的示例。具体地说,由于本发明的方面不限于任意特定类型的主处理器或协处理器设计,因此可以使用任意不同的处理器实现和构造。 
图1例示了根据本发明的一个实施方式的用于实现主处理器和协处理器之间的接口的系统的框图。系统1000包括在该系统中被用作主要处理器的主处理器1100。例如,主处理器1100可以是被配置为执行多个期望处理任务的数字信号处理器。在一个实施方式中,主处理器1100是设计用于无线通信的基带处理器(例如,诸如蜂窝式电话的移动通信设备中的无线基带处理器)。然而,由于本发明的方面不限于此,因此主处理器1100可以是任意类型的处 理器。 
主处理器1100包括主数字处理器总线(DPBUS)1150,多个组件经由该总线传输信息并另外经由该总线与主核心处理器1100a通信。例如,组件1125a、1125b、1125c可以被连接到DPBUS 1150以协助执行主处理器中的处理任务。例如,主处理器1100可以是数字基带处理器,而组件1125a可以是用于对输入信号实现误差修正的维特比模块(viterbi module),组件1125b可以是一个或更多个加密组件,并且组件1125c可以是一个或更多个滤波器单元、硬件加速器等。应该理解的是,组件1125仅是示例性的并且用于例示在多个组件之间共用DPBUS 1150以与核心处理器通信,并且本发明的方面不限于此,组件可以是任意类型或任意数量。 
系统1000包括实现对主处理器1100有利的功能的协处理器1200。例如,协处理器1200被设计为根据期望的通信标准工作并且因此可以与主处理器1100结合使用以扩展主处理器的功能和/或兼容性。协处理器可以包括根据特定标准工作或满足各种性能要求所需的各种加速器和/或优化方案。另选的是,该协处理器可以是结合该核心处理器来处理各种处理任务的辅助处理器。由于本发明的方面不限于此,因此协处理器可以是具有任意数量的组件或模块并且实现任意类型功能的任意外部处理器。 
协处理器1200包括用于在包括该协处理器的各种组件和/或处理单元之间传输数据的数据处理总线(EDPBUS)1250。协处理器可以包括经由EDPBUS 1250进行通信的任意数量的组件1225。例如,协处理器1200可以包括执行协处理器的专用功能(例如,任意处理任务、硬件加速、滤波操作等)的组件1225a和组件1225b。应该理解的是,由于本发明的方面不限于此,因此协处理器可以包括执行任意期望处理功能的任意数量的组件。 
系统1000还包括适于在主处理器1100和协处理器1200之间传输信息的外部协处理器接口(ECPI:external coprocessor interface)1500。ECPI 1500包括位于主处理器1100上的主侧(master-side)ECPI 1510和位于协处理器 1200上的从侧(slave-side)ECPI 1520,以控制主处理器和协处理器之间的传输信息。通常,主处理器1100和协处理器1200按异步方式工作,即,处理器未共用单个时钟并且可以按不同的时钟频率工作。主处理器1100可以利用其中对从DPBUS 1150的读取和向DPBUS 1150的写入进行协调的系统时钟DSCLK来工作。类似地是,协处理器1200可以利用对从EDPBUS 1250的读取和向EDPBUS 1250的写入进行协调的系统时钟CPCLK来工作。 
ECPI可以包括用于经由主处理器和协处理器之间的物理连接来对信息传输进行同步的附加时钟ECP_CLK。具体地说,ECP_CLK可以由主侧ECPI和从侧ECPI共用以对经由物理线ECP_Data的信息传输进行协调。如在下面更详细地说明的,控制线ECP_CTRL被用来实现与经由ECP_Data进行数据传输相关的各种控制功能。ECP_Data和ECP_CTRL可以在分别设置在主处理器芯片和协处理器芯片上的管脚处进行连接。 
理想地是,主处理器1100和协处理器1200以好像协处理器1200直接连接到DPBUS 1150的方式通信。即,协处理器看上去似乎是直接连接到DPBUS上的组件1125的其中一个。然而,由于必须通过多个时钟域而外部地传输信息,因此接口不能是完全透明的(transparent)。然而,申请人开发了一种用于对在主处理器和协处理器之间的总体上低功率、低等待时间的信息传输进行优化的接口。以下将更详细地对接口的各方面进行说明。 
图2例示了根据本发明的一个实施方式的包括外部协处理器接口(ECPI)的处理系统。图2例示的ECPI是图1所示的ECPI 1500的一个实施方式。例如,主侧ECPI 2510和从侧ECPI 2520可以执行与图1所示的主侧ECPI1510和从侧ECPI 1520类似的功能。主侧ECPI 2510经由DPBUS接口(IF)2155耦接到DPBUS 1150。DPBUS IF 2155包括适于从DPBUS读取信息和向DPBUS写入信息的电路。类似地是,从侧ECPI 2520经由EDPBUS IF 2255耦接到EDPBUS 1250以使得能够对EDPBUS执行读操作和写操作。如在下面更详细说明的,EDPBUS IF 2255包括用于执行各种读操作和写操作的 EDPBUS主IF 2255a和EDPBUS从IF 2255b。 
DPBUS IF 2155通过对往来于DPBUS以及接口的主侧上的多个缓冲器216x的数据传输进行同步来用作DSCLK域和ECP_CLK域之间的同步组件。ECPI主IF 2170用作该多个缓冲器和接口的从侧之间的同步组件。类似地是,ECPI从IF 2270用作接口的主侧和接口的从侧上的多个缓冲器226x之间的同步组件。最后,EDPBUS IF 2255通过对往来于EDPBUS 1250和接口的从侧上的多个缓冲器226x的数据传输进行同步来用作ECP_CLK域和CPLCK域之间的同步组件。各种同步组件可以包括对数据传输进行同步的一个或更多个有限状态机(FSM)和/或其他电路。本发明的方面不限于此,因此可以按任意方式来实现同步组件。 
在接口2500的环境中,主处理器被视为主导装置,而协处理器被视为从属装置。相应地,从主处理器向协处理器的数据传输(即,去往协处理器的数据)被称为写操作,而从协处理器向主处理器的数据传输(即,去往主处理器的数据)被称为读操作。为了实现写操作,接口2500包括主侧上的写地址/数据缓冲器2160和从侧上的写地址/数据缓冲器2260。 
在一个实施方式中,位于接口两侧的写地址/数据缓冲器包括16个寄存器,每个寄存器具有32位的位宽。高16位(31:16)存储写地址,而低16位(15:0)存储写数据。深度16可以适于特定设计以确保缓冲器不会在操作期间填满并且对于实现目的而言不会过大。然而,应该理解到的是,本发明的方面不限于此,因此写缓冲器可以具有任意深度和任意宽度,并且可以进行改变以实现特定的设计目标。 
当期望向协处理器传输数据时,由主处理器发起写操作。利用DPBUS IF2155从DPBUS 1150向写地址/数据缓冲器2160传输写地址和写数据。在一个实施方式中,DPBUS的宽度足以同时传输写地址和写数据。结果,仅需要单个DSCLK周期(即,来自对DPBUS读操作和写操作进行同步的时钟的单个时钟周期)来执行写操作。因此,当主处理器希望向协处理器发送数据但 协处理器没有准备立即处理该信息时,写缓冲器可以在不延迟DPBUS的情况下存储该信息,从而从DPBUS的角度实现了单个周期写操作。这避免了不必要的总线延迟并且减少了向协处理器的写操作对DPBUS的影响。 
当在写地址/数据缓冲器2160中对数据进行排队之后,ECPI主IF 2170对经由连接主处理器和协处理器的物理线(即,ECP_Data)进行的数据传输进行同步。ECPI从IF2270接着将数据置于协处理器侧的写地址/数据缓冲器2260中。EDPBUS主IF 2255a接着向EDPBUS传输要发送给由写地址指示的适当模块的数据。相应地,从DCLCK域向ECP_CLK域并最终向CPCLK域传播该写操作,其中将写数据写入到写地址位置。 
在一个实施方式中,写地址和写数据共用ECP_Data以减少管脚数以及主处理器和协处理器之间的物理连接的数量。即,ECP_Data可以在单个时钟周期上容纳写地址或写数据中的任一个,但无法同时容纳二者。例如,ECP_Data可以具有与16位地址空间匹配的16位的宽度。对数据和地址传输共用相同物理线有助于明显减少接口的管脚数,同时所得到的管脚构造防止了在单个时钟周期中经由物理信道来传输地址和数据。 
为了减轻由于在相同物理线上对地址和数据进行复用而导致的额外时钟周期所引起的带宽减少,可以将接口配置为按多种写模式工作。例如,可以添加一条或更多条控制线来指示接口按可以推导写地址而非经由接口按物理方式获取写地址的写模式来工作。通过推导写地址,只需经由物理线来传输该写数据,并且仅需要单个时钟周期来经由ECP_Data传输完整的写操作(例如,在ECP_CLK域中仅需要单个ECP_CLK周期来处理写操作)。 
在一个实施方式中,控制线ECP_CTRL包括能够表示8个不同状态的三条控制线WRT_CTL[2:0]。使用可用状态中的至少一些来指示从侧ECPI在多个写模式的哪个模式中工作。多个写模式中的一些模式指示从侧ECPI:可以根据先前写操作来推导写操作的写地址。例如,当WRT_CTL处于第一状态时,可以使用先前经由ECP_Data来传输的同一写地址。主侧ECPI和从侧 ECPI二者均存储有经ECP_Data传输的最后地址的本地副本。因此,如果对于随后的写操作没有改变写地址,则将WRT_CTL设置为第一状态以指示从侧ECPI使用本地存储的写地址。因此,当在该写模式时仅需要经ECP_Data传输写数据,从而仅需要单个时钟周期来经物理接口传输写信息。该写模式被称为write_same模式。 
当CTL处于第二状态时,可以使用先前经由ECP_Data传输并以预定量增加的写地址。例如,在当前写地址是先前写地址加n时,其中n是预定偏移值,(例如,增加至协处理器中的下一可寻址位置),将WRT_CTL设置为第二状态并且从侧ECPI增加了本地存储的写地址以完成该写操作,从而消除了经由ECP_Data传输当前写地址的需要。从侧ECPI接着可以在本地存储增加后的地址。该写模式被称为write_preincrement模式。 
主侧ECPI可以包括比较器,该比较器对在接口的主侧上本地存储的最后地址(即,经由接口传输的最后地址的本地存储值)与经由接口正传输的当前写操作的写地址进行比较。如果该写地址与最后地址相同,则主侧ECPI将WRT_CTL设置为第一状态以指示从侧ECPI在write_same模式下工作。如果在该写地址和最后地址之间的差等于预定增加值,则主侧ECPI将WRT_CTL设置为第二状态以指示从侧ECPI在write_preincrement模式下工作。 
当WRT_CTL处于第三状态(默认写模式)时,经由ECP_Data传输写地址和写数据二者。总的来看,write_same模式和write_preincrement模式在主处理器和协处理器的操作期间可以显著减少执行写操作所需的时钟周期数,从而提高了接口的带宽并减少了处理器系统的总等待时间。例如,在许多操作(例如,滤波操作)期间,经由成千上万的写操作向同一地址(或向随后的地址空间)写入大量数据。因此,利用write_same模式和/或write_preincrement模式可以将执行这些写操作所需的时钟周期数减少约一半。 
存储最后地址的寄存器和指示接口应该工作的写模式的写控制线可以与接口所执行的读操作无关。相应地,如果在写操作之间插入读操作,则保留接口的写模式。当开始一个或更多个写操作时,保留最后地址和当前写模式,以使得接口以好像读操作从未打断过该一个或更多个写操作的方式工作。 
为了进一步减少接口等待时间并减少总线延迟的频率,将接口2500配置为执行多个不同的读操作。第一类型的读操作由主处理器发起并通过经由DPBUS IF 2155从DPBUS向读地址缓冲器2162传输读地址而进行该读操作。接着通过ECPI主IF 2170将来自读地址缓冲器2162的读地址的传输与ECP_CLK进行同步,并且通过ECPI从IF 2270将经由物理线ECP_Data传输的读地址在读地址缓冲器2262中排队。EDPBUS主IF 2255a从协处理器读地址缓冲器向EDPBUS传输该读地址以访问适当模块,从而获取存储在读地址中的数据。 
为了将读取的数据传回主处理器,将从读地址获取的读数据设置在EDPBUS上并通过EDPBUS主IF 2255a在读数据缓冲器2264中对读数据进行排队、同步并利用ECPI从IF 2270经ECP_Data进行传输,接着通过ECPI主IF 2170将读数据排队到读数据缓冲器2164中。接着通过DPBUS IF对读数据进行同步并设置在DPBUS上,并传输给发起该读取的模块。通常情况是主处理器在没有其请求的读数据的情况下无法继续处理。结果,DPBUS通常在继续其他操作前必须延迟和等待要从协处理器返回的读数据。因此,第一类型的读操作是一种对DPBUS造成显著延迟的相对高等待时间的操作。 
为了减少由于第一类型的读操作导致的DPBUS延迟,主侧ECPI可以被配置成对读操作设置最高的优先级。例如,主侧ECPI 2170可以相对于针对写操作排队的数据优先传输来自读地址缓冲器的数据和优先向读数据缓冲器传输数据,而不考虑哪个数据首先到达。因此等待时间减少到完成读操作所需的时钟周期的数量,并且该等待时间不会因必须在队列中等待较早到达的写操作以在经接口传输前完成而激增。然而,本发明的方面不限于此,因此 还可以采用其他优先级方案。如下面详细说明的,在一个实施方式中,可以从多个优先级方案中选择一个优先级方案以定制接口的操作。 
如上所述,第一类型的读操作在DPBUS上的等待时间和延迟方面是相对代价高昂的操作。申请人认识到,如果第一类型的读操作仅是用于从协处理器获取数据的机制,则处理器系统可能受到无法接受的操作等待时间(例如,相对较高的DPBUS延迟率)的困扰。为了解决这个难题,可以将第二类型的读操作实现为减少主处理器必须执行从协处理器获取信息的第一类型的读操作的频率。 
在一个实施方式中,第二类型的读操作由协处理器发起,并且通过使协处理器生成指示该协处理器具有该主处理器要读取的数据的中断来执行该第二类型的读操作。接着协处理器可以经由接口向主处理器传输该读数据,并且该主处理器可以在不产生与第一类型的读操作相关的开销的情况下读取传输的数据。 
在图2中,为了执行第二类型的读操作,当协处理器具有向主处理器传输的数据时,EDPBUS从IF从EDPBUS获取取数据,并将该数据传输给块读取缓冲器(Block Read Buffer)2266、2268中的一个。通过发布读请求信号来通知ECPI主IF:协处理器具有要传输给主处理器的数据。例如,如果块读取缓冲器2266具有要传输的数据,则可以将ECP_RDREQ_0设置为高,以提醒ECPI主IF准备进行数据传输。通知ECPI主IF而不是通知ECPI从IF的原因在于接口的主侧经由ECP_Data来控制数据传输。ECPI主IF一经通知,就可以根据队列的优先级方案来传输块读数据。 
ECPI主IF和ECPI从IF接着对存储在适当块读取缓冲器中的数据的传输进行协调,并且ECPI主IF将数据存储在适当块读取缓冲器2166、2168中。接着ECPI例如通过将ECP_RDBUF_BURST_IRQ_0设置为高来信号通知:主处理器要读取的数据可用。接着可以经由DPBUS IF将数据传输给DPBUS。由于第二类型的读操作由协处理器发起,因此从DPBUS的角度来 看第二类型的读操作仅需要单个时钟周期来完成。即,主处理器(更具体的说,DPBUS)免去了与执行第二类型的读操作相关的开销,并且仅需要从对应的块读取缓冲器中读取数据所需的单个时钟周期的DPBUS的中断操作。 
如上所述,为了减少与执行第一类型的读操作相关的某些等待时间,可以对该第一类型的读操作赋予比其他操作更高的优先级。即,由于当读操作传播通过接口的时钟域时DPBUS通常必须在延迟状态下等待,因此严格按照先进先出(FIFO)顺序执行操作会导致在总线等待执行在队列中较早到达的写操作时DPBUS产生进一步延迟。然而,申请人认识到不同的处理器系统可能受益于不同的优先级方案。为了实现接口设计的通用性,申请人开发了一种可选优先级方案,该可选优先级方案被配置为在一个以上的缓冲器具有要经由接口传输的数据时针对哪个操作应该采用高于哪个操作的优先级以对接口做出指示。 
在图2中,主侧ECPI包括多个控制寄存器2515。这些控制寄存器可以按任意的数量被设置为可用以控制从缓冲器向ECP_Data进行数据传输的各个方面。在一个实施方式中,多个寄存器包括用于指定经由接口传输读操作和写操作的优先级的ECPI_PRIORITY寄存器2515a。ECPI_PRIORITY可以具有用于存储任意数量的不同优先级方案的任意长度。控制寄存器2515b和2515c还通过存储指示接口应该如何工作的值来调整各种控制功能。例如,控制寄存器可以存储指示接口的ECP_CTRL线的状态的值。 
如上所述,接口2500适于执行写操作以及第一类型和第二类型的读操作。第一类型的读操作由主处理器发起、通过接口传播并返回到该主处理器,并且被称为在下表1中所述的优先级方案环境中READ操作。在发布提醒主处理器存在要读取的数据的情况下,由协处理器发起通过接口向主处理器传播的第二类型的读操作,并且该第二类型的读操作在优先级方案的环境中被称为READ_REQUEST操作(指示对应的块读取缓冲器的数量)。 
在图2中,ECPI_PRIORITY寄存器包括指示四个要通过接口执行的可 选优先级方案的至少两位。下表1例示了示例性优先级方案组以及相关的ECPI_PRIORITY状态。 
 ECPI_PRIORITY   优先级方案
 00   READ,WRITE,READ_REQUEST0,  READ_REQUEST1
 01   READ,READ_REQUEST0,READ_REQUEST1,  WRITE
 10   WRITE,READ_REQUEST0,READ_REQUEST1,  READ
 11   WRITE,READ,READ_REQUEST0,  READ_REQUEST1
表1 
为了选择优先级方案,可以将由ECPI_PRIORITY存储的值设定为适当状态。通过使得对优先级方案能够进行修改,可以将接口定制为适于特定主处理器/协处理器组合。例如,一个优先级方案优于另一优先级方案的具体益处或多或少地体现出对特定实现和/或特定操作间隔的重要性。如上所述,向读(READ)操作赋予优先级(例如,将ECPI_PRIORITY设置为00)减少了DPBUS的延迟,对接口的带宽具有积极的影响。然而,使写(WRITE)操作优先于读(READ)操作(例如,将ECPI_PRIORITY设置为11)保持了队列的指令顺序。 
具体地说,当写队列具有一个或更多个WRITE操作要执行并且READ操作进入读队列时,在对READ操作赋予优先级的方案中经由接口优先传输READ操作。在一些示例中,优先传输的READ操作从本应该在该READ操作之前由队列中的一个或更多个WRITE操作写入(但在该优先级方案下由READ操作读取)的位置进行读取。从READ操作获取的值可以因所选优先级方案而不同。相应地,在期望保留指令顺序的情况下可以将优先级方案选择为优先写操作。 
应该理解的是,优先级方案可以在主处理器/协处理器组合的操作期间的任意时间进行改变。即,可以在接口正在工作时(例如,在读队列和/或写队列时)进行ECPI_PRIORITY位的设置和改变。因此,可以在带宽至关重要的任务期间将优先级方案动态修改为例如优先READ操作,而在指令顺序至关重要的任务期间优先WRITE操作。尽管ECPI_PRIORITY被示出具有一对位,但是应该理解的是,本发明的方面不限于此,因此ECPI_PRIORITY可以包括存储对于由接口执行的各种读操作和写操作可用的所有优先排列所需的任意位数。 
尽管ECPI_PRIORITY被示出为位于接口的主侧的寄存器,但是,应该理解的是,接口的从侧可以包括存储所选优先级方案的寄存器。例如,当选择优先级方案时,可以将优先位设置在接口的两侧以控制经由接口来传输读操作和写操作的优先级。本发明的方面不限于此,因此可以按任意方式(例如,位于主侧的单个寄存器、接口两侧的分立寄存器或能够向接口的从侧通信优先级方案的控制线)来实现可选优先级方案。 
在许多处理器环境中,功耗是一个关键关注点。例如,无线设备(例如,蜂窝式电话)的数字信号处理器可以有意识地设计其功率以有助于低功率处理器延长充电之间的电池持续使用时间。功率节约是导致许多常规接口标准不适于这些环境和应用的重要要素。在一个实施方式中,以这样的方式提供低功率接口,即,当不需要时可以切断提供用于对接口进行同步的各种时钟信号,从而减少接口的总功耗。 
图3例示了外部协处理器接口的主侧的部分。具体地说,缓冲器3160、3162、3164、3166和3168对应于在图2的接口的主侧上例示的缓冲器216x。如上所述,DSCLK通过DPBUS IF对向写缓冲器3160和读地址缓冲器3162的写入以及从读数据缓冲器3164和块读取缓冲器3166、3168的读取进行同步,并且ECP_CLK通过ECPI主IF对从写缓冲器3160和读地址缓冲器3162 的读取以及向读数据缓冲器3164和块读取缓冲器3166、3168的写入进行同步。然而,如果持续向读缓冲器和写缓冲器提供DS_CLK和ECP_CLK,则功耗将是非常大的。 
为了减少功耗,针对各个读缓冲器和写缓冲器316x在缓冲器的读取侧和写入侧提供时钟闸3180、3190。该时钟闸被配置成独立地切断通往相应缓冲器的时钟信号。当相应缓冲器为空时,时钟闸3180、3190可以自动切断时钟信号以节省对缓冲器驱动时钟信号所需的功率。通过对各缓冲器提供单独的时钟闸,可以对任意空缓冲器、当前未使用的缓冲器或不需要时钟信号的缓冲器有选择地禁止时钟信号。类似地,控制寄存器3515(其对应于图2的控制寄存器2515)具有适于例如在不需要向控制寄存器写入时切断DC_CLK的时钟闸3580。各时钟闸可以包括用于检测相关缓冲器何时为空或未被用于自动切断通往相应缓冲器的时钟信号的电路。 
另外,还可以设置总时钟闸3550,该总时钟闸可以在ECPI模块未被使用时切断通往接口的整个时钟树。可以经由其中一个控制寄存器(例如,ECPI_CONTROL寄存器)的一部分来控制总时钟闸3550。例如,可以将首位ECPI_CONTROL[0]设置为控制是否激活总时钟闸以在协处理器未被使用时切断来自ECPI的时钟信号。 
图4例示了位于接口的从侧的对应时钟闸结构。具体地说,在缓冲器326x的读取侧和写入侧设置时钟闸3280、3290,以在相应缓冲器未被使用时独立地并自动地切断对应的时钟信号。应该理解的是,当激活总时钟闸3550时,ECP CLK将被切断而不能通往协处理器以节省功率。图3和图4中的时钟闸结构仅是示例性的,本发明的方面不限于此,因此可以使用选择性地切断到各种读缓冲器和写缓冲器的时钟信号的任意时钟闸结构。 
可以按任意多种方式来实现本发明的上述实施方式。例如,利用硬件、软件或它们的组合来实现各实施方式。应该理解的是,一般可以将执行上述功能的任意组件或组件的集合视作一个或更多个控制上述功能的控制器。该 一个或更多个控制器可以按多种方式(例如,利用专用硬件、以及使用微码或软件进行编程以执行上述功能的通用硬件(例如,一个或更多个处理器))来实现。 
可以单独、以组合方式或未在前面描述的实施方式中具体讨论的各种构造来使用本发明的各方面,并且因此本发明不限于其在上述说明书阐述或附图所示的组件的细节和构造的应用。本发明可以具有其他实施方式并能够以多种方式实施或执行。具体地说,接口的一些实施方式可以包括本发明以上描述的一个或更多个方面,并且不是必须而是可以包括在以上实施方式中描述的各特征。本发明的方面不限于此,因此可以使用特征和/或组件的任意组合。 
在权利要求中使用序数术语(例如,“第一”、“第二”、“第三”等)来修饰权利要求要素本身并不意味着一个权利要求要素在顺序上或者在执行方法的动作的时间顺序上优于、领先于另一权利要求要素,而是仅用作将具有一个特定名称的一个权利要求要素与具有同一名称的另一要素区分开的标记(而是使用序数术语)来区分这些权利要求要素。 
此外,这里使用的措辞和术语用于说明目的并且不应该被视为对本发明的限制。这里使用“包括(including)”、“包含(comprising)”、“具有(having)”、“含有(containing)”、“包括(involving)”或其变型意味着包括其后所列出的项及其等同物以及附加项。 

Claims (14)

1.一种在主处理器上实现的并适于在所述主处理器和外部协处理器之间传输数据的接口,该接口包括:
写缓冲器,其被配置为存储与所述协处理器上的位置相关的多个写地址并且存储待写入到所述多个写地址中的写数据;
多个外部接入连接,其支持用于将所述主处理器电连接到所述协处理器的多条物理线,经由所述物理线来传输所述写地址和写数据;以及
同步组件,其适于根据时钟从所述写缓冲器向所述多个外部接入连接传输数据,当处于第一写模式时,所述同步组件被配置为在写操作的第一时钟周期向所述多个外部接入连接传输存储在所述写缓冲器中的写地址,而在所述写操作的第二时钟周期向所述多个外部接入连接传输存储在所述写缓冲器中的相关写数据,并且当处于第二写模式时,依据先前传输给所述多个外部接入连接的最后写地址,所述同步组件被配置为在所述第一时钟周期向所述多个外部接入连接传输存储在所述写缓冲器中的所述写数据。
2.根据权利要求1所述在主处理器上实现的并适于在所述主处理器和外部协处理器之间传输数据的接口,其中在所述第一写模式中按两个时钟周期来向所述多个外部接入连接传输所述写操作,而在所述第二写模式中按一个时钟周期来向所述多个外部接入连接传输所述写操作。
3.根据权利要求2所述在主处理器上实现的并适于在所述主处理器和外部协处理器之间传输数据的接口,该接口还包括具有多个状态的控制信号,所述多个状态指示所述接口是在所述第一写模式下工作还是在所述第二写模式下工作。
4.根据权利要求3所述在主处理器上实现的并适于在所述主处理器和外部协处理器之间传输数据的接口,该接口还包括地址寄存器,该地址寄存器存储被传输给所述多个外部接入连接的最后写地址。
5.根据权利要求4所述在主处理器上实现的并适于在所述主处理器和外部协处理器之间传输数据的接口,该接口还包括比较器,该比较器适于对存储在所述写缓冲器中的所述多个写地址的下一写地址与所述最后写地址进行比较,其中如果所述比较器确定所述下一写地址与所述最后写地址相同,则所述控制信号被设置为指示所述接口在所述第二模式下工作的状态。
6.根据权利要求4所述在主处理器上实现的并适于在所述主处理器和外部协处理器之间传输数据的接口,其中所述第二模式包括write_same模式和pre_increment模式,所述接口还包括适于对存储在所述写缓冲器中的所述多个写地址的下一写地址与所述最后写地址进行比较的比较器,并且其中如果所述比较器确定所述下一写地址与所述最后写地址相同,则所述控制信号被设置为指示所述接口在所述write_same模式下工作的状态,并且如果所述比较器确定所述下一写地址与所述最后写地址相差预定偏差,则所述控制信号被设置为指示所述接口在所述write_preincrement模式下工作的状态。
7.根据权利要求1所述在主处理器上实现的并适于在所述主处理器和外部协处理器之间传输数据的接口,其中所述多个外部接入连接的数量等于所述多个写地址中的每一个中的位数。
8.一种在协处理器上实现的并适于在主处理器和所述协处理器之间传输数据的接口,该接口包括:
写缓冲器,其被配置为存储与所述协处理器上的位置相关的写地址以及待写入到所述写地址中的写数据;
多个外部接入连接,其支持用于将所述主处理器电连接到所述协处理器的多条物理线,经由所述物理线来传输所述写地址和写数据;以及
同步组件,其适于根据时钟从所述多个外部接入连接向所述写缓冲器传输数据,当处于第一写模式时,所述同步组件被配置为在写操作的第一时钟周期向所述写缓冲器传输从所述多个外部接入连接接收到的写地址,而在所述写操作的第二时钟周期向所述写缓冲器传输从所述多个外部接入连接接收到的相关写数据,并且当处于第二写模式时,依据先前在所述多个外部接入连接处接收到的最后写地址,所述同步组件被配置为在所述第一时钟周期向所述写缓冲器传输从所述多个外部接入连接接收到的写数据。
9.根据权利要求8所述在协处理器上实现的并适于在主处理器和所述协处理器之间传输数据的接口,该接口还包括至少一个控制连接,该控制连接适于从所述主处理器接收至少一个写控制信号,所述至少一个写控制信号指示所述接口是应该在所述第一写模式下工作还是应该在所述第二写模式下工作。
10.根据权利要求9所述在协处理器上实现的并适于在主处理器和所述协处理器之间传输数据的接口,该接口还包括写地址寄存器,该写地址寄存器存储在所述多个外部接入连接处接收到的最后写地址。
11.根据权利要求10所述在协处理器上实现的并适于在主处理器和所述协处理器之间传输数据的接口,其中当处于所述第一模式时,所述协处理器利用在所述多个外部接入连接处接收到的所述写地址来执行所述写操作,并将所述写地址作为最后写地址存储在所述写地址寄存器中,而当处于所述第二模式时,所述协处理器利用存储在所述写地址寄存器中的所述最后写地址来执行所述写操作。
12.根据权利要求11所述在协处理器上实现的并适于在主处理器和所述协处理器之间传输数据的接口,其中所述第二模式包括write_same模式和write_preincrement模式,并且其中当处于所述write_same模式时,所述协处理器利用存储在所述写地址寄存器中的所述最后写地址来执行所述写操作,而当处于所述write_preincrement模式时,所述协处理器利用存储在所述写地址寄存器中的所述最后写地址加上预定增量来执行所述写操作,并将增加后的写地址存储在所述写地址寄存器中。
13.根据权利要求12所述在协处理器上实现的并适于在主处理器和所述协处理器之间传输数据的接口,其中在至少一个写控制连接处接收到的至少一个写控制信号使得所述协处理器在所述第一模式、write_same模式或write_preincrement模式下工作。
14.根据权利要求8所述在协处理器上实现的并适于在主处理器和所述协处理器之间传输数据的接口,其中所述多个外部接入连接的数量等于所述多个写地址中的每一个中的位数。
CN2007800365511A 2006-09-29 2007-09-27 在主处理器和协处理器之间进行接口连接的方法和装置 Active CN101523345B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/542,092 US8095699B2 (en) 2006-09-29 2006-09-29 Methods and apparatus for interfacing between a host processor and a coprocessor
US11/542,092 2006-09-29
PCT/US2007/020827 WO2008042207A2 (en) 2006-09-29 2007-09-27 Methods and apparatus for interfacing between a host processor and a coprocessor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2012100223462A Division CN102681823A (zh) 2006-09-29 2007-09-27 在主处理器和协处理器之间进行接口连接的方法和装置

Publications (2)

Publication Number Publication Date
CN101523345A CN101523345A (zh) 2009-09-02
CN101523345B true CN101523345B (zh) 2012-04-25

Family

ID=39015988

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2007800365511A Active CN101523345B (zh) 2006-09-29 2007-09-27 在主处理器和协处理器之间进行接口连接的方法和装置
CN2012100223462A Pending CN102681823A (zh) 2006-09-29 2007-09-27 在主处理器和协处理器之间进行接口连接的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2012100223462A Pending CN102681823A (zh) 2006-09-29 2007-09-27 在主处理器和协处理器之间进行接口连接的方法和装置

Country Status (5)

Country Link
US (1) US8095699B2 (zh)
EP (2) EP2251792B1 (zh)
CN (2) CN101523345B (zh)
DE (1) DE602007011789D1 (zh)
WO (1) WO2008042207A2 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8289966B1 (en) 2006-12-01 2012-10-16 Synopsys, Inc. Packet ingress/egress block and system and method for receiving, transmitting, and managing packetized data
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US8706987B1 (en) 2006-12-01 2014-04-22 Synopsys, Inc. Structured block transfer module, system architecture, and method for transferring
CN102035778B (zh) * 2009-09-27 2013-01-30 中国科学院计算技术研究所 用于宽带无线通信的数字基带处理器
US8473677B2 (en) * 2009-09-29 2013-06-25 Cleversafe, Inc. Distributed storage network memory access based on memory state
JP5752382B2 (ja) * 2010-09-29 2015-07-22 矢崎総業株式会社 表示装置及び画像データの転送方法
US8665663B2 (en) * 2011-04-27 2014-03-04 Nanya Technology Corporation Memory circuit and control method thereof
US9037770B2 (en) 2011-05-05 2015-05-19 International Business Machines Corporation Accelerator engine emulation over an interconnect link
CN102226895B (zh) * 2011-06-01 2013-05-01 展讯通信(上海)有限公司 协处理器和主处理器共享存储器的系统及访问方法
KR101849702B1 (ko) 2011-07-25 2018-04-17 삼성전자주식회사 외부 인트린직 인터페이스
WO2013100783A1 (en) 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
CN103677971B (zh) * 2012-09-21 2017-11-24 上海斐讯数据通信技术有限公司 多线程处理系统及方法
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
CN103793208B (zh) * 2014-01-22 2016-07-06 芯原微电子(上海)有限公司 矢量dsp处理器和协处理器协同运作的数据处理系统
US20150261535A1 (en) * 2014-03-11 2015-09-17 Cavium, Inc. Method and apparatus for low latency exchange of data between a processor and coprocessor
US10268448B2 (en) * 2016-05-06 2019-04-23 Texas Instruments Incorporated Data flow control for multi-chip-select
CN106776457B (zh) * 2016-12-29 2020-04-03 郑州云海信息技术有限公司 一种服务器跨板共享信号的控制系统及方法
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
CN113721729A (zh) * 2017-03-28 2021-11-30 上海山里智能科技有限公司 一种综合计算系统
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US20190101952A1 (en) * 2017-09-30 2019-04-04 Intel Corporation Processors and methods for configurable clock gating in a spatial array
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
CN108595369B (zh) * 2018-04-28 2020-08-25 天津芯海创科技有限公司 算式并行计算装置及方法
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US11436166B2 (en) * 2019-02-05 2022-09-06 Arm Limited Data processing systems
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
CN112834820B (zh) * 2021-04-09 2024-01-23 杭州万高科技股份有限公司 一种电能表及其计量装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434650B1 (en) * 1998-10-21 2002-08-13 Intel Corporation Apparatus and method for multiplexing bi-directional data onto a low pin count bus between a host CPU and co-processor
US20030126413A1 (en) * 2000-01-06 2003-07-03 Tony S. El-Kik Processor system including internal address generator for implementing single and burst data transfers

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4812973A (en) 1984-02-29 1989-03-14 Kabushiki Kaisha Toshiba Multiprocessor system and control method therefor
US5416908A (en) 1992-04-28 1995-05-16 Allen-Bradley Company, Inc. Interface between industrial controller components using common memory
US5790881A (en) 1995-02-07 1998-08-04 Sigma Designs, Inc. Computer system including coprocessor devices simulating memory interfaces
JPH09258998A (ja) * 1996-03-22 1997-10-03 Sharp Corp テストおよび診断メカニズム
US5925118A (en) * 1996-10-11 1999-07-20 International Business Machines Corporation Methods and architectures for overlapped read and write operations
US6032212A (en) * 1997-08-14 2000-02-29 Goode; Jeff Device and method for interfacing PCI and VMEbus with a byte swapping circuit
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US6081860A (en) * 1997-11-20 2000-06-27 International Business Machines Corporation Address pipelining for data transfers
US6480952B2 (en) * 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US6674751B1 (en) * 1999-06-03 2004-01-06 Fujitsu Network Communications, Inc. Serialized bus communication and control architecture
US6874044B1 (en) * 2003-09-10 2005-03-29 Supertalent Electronics, Inc. Flash drive/reader with serial-port controller and flash-memory controller mastering a second RAM-buffer bus parallel to a CPU bus
GB2398199A (en) * 2003-02-10 2004-08-11 Nokia Corp A system for transferring content audio and video data from a provider to a personal digital assistant
JP4182801B2 (ja) * 2003-04-24 2008-11-19 日本電気株式会社 マルチプロセサシステム
KR100575723B1 (ko) 2003-06-14 2006-05-03 엘지전자 주식회사 시분할 동기 코드 분할 방식의 채널 판단 방법
DE10355643B4 (de) 2003-11-28 2006-04-20 Infineon Technologies Ag Mobilstation zum Verarbeiten von Signalen des GSM- und des TD-SCDMA-Funkstandards
JP2005258719A (ja) * 2004-03-10 2005-09-22 Matsushita Electric Ind Co Ltd データ処理システム及びスレーブデバイス
US7870176B2 (en) 2004-07-08 2011-01-11 Asocs Ltd. Method of and apparatus for implementing fast orthogonal transforms of variable size
US7343155B2 (en) 2004-10-15 2008-03-11 Spreadtrum Communications Corporation Maximum ratio combining of channel estimation for joint detection in TD-SCDMA systems
US7533106B2 (en) * 2005-09-09 2009-05-12 Quickfilter Technologies, Inc. Data structures and circuit for multi-channel data transfers using a serial peripheral interface
US7761633B2 (en) * 2007-01-29 2010-07-20 Microsemi Corp. - Analog Mixed Signal Group Ltd. Addressable serial peripheral interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434650B1 (en) * 1998-10-21 2002-08-13 Intel Corporation Apparatus and method for multiplexing bi-directional data onto a low pin count bus between a host CPU and co-processor
US20030126413A1 (en) * 2000-01-06 2003-07-03 Tony S. El-Kik Processor system including internal address generator for implementing single and burst data transfers

Also Published As

Publication number Publication date
EP2251792B1 (en) 2013-02-20
CN101523345A (zh) 2009-09-02
EP2069918A2 (en) 2009-06-17
EP2069918B1 (en) 2011-01-05
CN102681823A (zh) 2012-09-19
EP2251792A1 (en) 2010-11-17
US20080155135A1 (en) 2008-06-26
WO2008042207A2 (en) 2008-04-10
DE602007011789D1 (de) 2011-02-17
WO2008042207A3 (en) 2008-06-26
US8095699B2 (en) 2012-01-10

Similar Documents

Publication Publication Date Title
CN101523345B (zh) 在主处理器和协处理器之间进行接口连接的方法和装置
US9929972B2 (en) System and method of sending data via a plurality of data lines on a bus
AU2016366999A1 (en) Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces
US10572410B2 (en) Function-specific communication on a multi-drop bus for coexistence management
EP1535169B1 (en) Improved inter-processor communication system for communication between processors
US20030154336A1 (en) Dual access serial peripheral interface
JP2018502406A (ja) マルチチャネルi2s伝送制御システムおよび方法
US20100272162A1 (en) Synchronous serial programmable interface
KR20160084408A (ko) 버스 상에서 추가적인 세컨더리 데이터 라인들을 통하여 데이터를 전송하는 시스템 및 방법
WO2019141157A1 (zh) 一种核间数据传输的装置和方法
US8713248B2 (en) Memory device and method for dynamic random access memory having serial interface and integral instruction buffer
US10481957B2 (en) Processor and task processing method therefor, and storage medium
KR101630599B1 (ko) 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법
US8527671B2 (en) DMA engine
JP4892683B2 (ja) データを転送するためのデータ処理の装置および方法
US20080005366A1 (en) Apparatus and methods for handling requests over an interface
US7603487B2 (en) Hardware configurable hub interface unit
EP1422628B1 (en) Host apparatus, electronic device, and transmission system control method
CN112783811B (zh) 微控制器架构及架构内数据读取方法
CN115955733A (zh) 一种通信基带处理器
CN115729863A (zh) 数据传输方法、装置、电子设备及介质
CN116701265A (zh) 通信方法及电子设备
CN116049051A (zh) 数据传输方法及电子设备
JPH04326447A (ja) 確認応答信号送信回路
KR19990051462A (ko) 고속무선호출 단말기의 에스피아이 회로

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant