CN1279472C - 多处理器数据处理系统 - Google Patents

多处理器数据处理系统 Download PDF

Info

Publication number
CN1279472C
CN1279472C CN 00815005 CN00815005A CN1279472C CN 1279472 C CN1279472 C CN 1279472C CN 00815005 CN00815005 CN 00815005 CN 00815005 A CN00815005 A CN 00815005A CN 1279472 C CN1279472 C CN 1279472C
Authority
CN
China
Prior art keywords
bus
processor
memory
cache
shared resource
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 - Lifetime
Application number
CN 00815005
Other languages
English (en)
Other versions
CN1399743A (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
Analog Devices 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 Analog Devices Inc filed Critical Analog Devices Inc
Publication of CN1399743A publication Critical patent/CN1399743A/zh
Application granted granted Critical
Publication of CN1279472C publication Critical patent/CN1279472C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W74/00Wireless channel access
    • H04W74/04Scheduled access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

数字信号处理系统包括多个处理器和内存等一个或多个共享外围设备。其体系结构包括多个总线主控设备,它们连接到各自的总线上。还有一些连接在各自总线上的总线从属设备。一个总线判决模块选择性地将这些总线互连起来,所以当多个总线主控设备访问不同的总线从属设备时不会发生阻塞,而当多个总线主控设备访问同一个总线从属设备时,带宽缺乏就被避免了。这种结构被总线判决法所支持,包括基于中断方式的分层应用法、指定时隙旋转法和循环法等,它们避免了带宽缺乏和总线争夺期间的总线锁定。系统另外还包括高速缓存系统,它允许一个进程按照保存于可更改非易失存储器中的可更改的程序进行实时数字信号处理,程序的部分被临时地上载到本地快速内存当中。

Description

多处理器数据处理系统
这份申请书与Joern Soerensen于2000年11月3日提交的美国专利申请号(尚未指定)相关,并在此通过引证被并入本文。
技术领域
本专利发明总的来说是关于小型数字信号处理系统,例如移动电话。本发明特别涉及系统,数字信号处理器通过这个系统执行软件程序或步骤,这些软件或步骤可以随时简化、改变或升级。
背景技术
通信设备,如移动电话等,完成多种数字信号处理功能。在过去的系统中,数字信号处理器(DSP)处理数字化的声音信号,微处理器控制单元(MCU)控制一般的系统操作,包括不同设备单元间通信的建立和拆除(例如话机)。最简单的传统系统中的DSP和MCU之间通过单端口和多端口共享内存互相通信,控制信号等等。无论如何,当DSP和MCU间允许通过例如共享内存来通信时,额外的功能和控制选择是有可能实现的。虽然DSP和MCU间不通信的系统也是可能实现的,但是对数据通信的支持相对话音的支持一样好的蜂窝通信的发展已经造成DSP和MCU间通信的巨大需要。
通信标准也在发展中并将继续发展下去。标准通常被指定成为可以扩展的,或者新功能被定义为与现有标准后向兼容的,这样引入新功能时就无需替换已有的每一个部件。为了适应这种变化,存在着将运行于DSP或MCU上的常驻软件或固件从只读存储器(ROM)中移出的巨大压力。改变ROM常驻软件或固件是困难的,因为一般来说除了在工厂中一次性写入以外ROM不能擦写。
最后,上述压力已经促使包含DSP、MCU、ROM和RAM的集成电路的发展。将RAM增加到集成电路系统中的经济代价和尺寸代价迫使DSP和MCU只要有可能就得共享RAM。为了便于DSP和MCU之间的通信,同时——作为额外的好处——为了避免浪费任何存储空间,DSP和MCU共享RAM。系统软件被载入到RAM中以便提供最大的灵活性和再配置系统的能力,使系统与进步中的通信标准一致。总之,当存储器被共享时,例如使用附图1的结构时,内存访问带宽成为严重问题。
发明内容
提供改进的高速缓存系统和方法是这个发明的主要目标,尤其是—不限于—类似数字信号处理器的通信处理器。
根据发明的一个方面,数字信号处理系统包含做实时数字声音信号处理的数字信号处理器(DSP)、通过总线连接到DSP上的可修改非易失程序存储器、和连接到DSP与程序存储器的高速缓存系统,这个高速缓存系统有程序存储器管理单元,它能把程序指令从可修改非易失的程序存储器中装载进来。
根据本发明,提供了一种多处理器数据处理系统,包含:第一处理器;第二处理器;第一共享资源,它可操作地连接到第一和第二处理器;高速缓存系统,它可操作地连接到第一处理器和第一共享资源,这样信息可以从第一共享资源直接传送到第一处理器,也可以通过高速缓存系统传送;高速缓存控制器,它在需要程序指令之前从可更改非易失程序存储器装载程序指令到高速缓存,这样可以避免需要程序指令的时候发生高速缓存未命中;判决单元,它可以完成第一共享资源和第一第二处理器之间的连接,判决单元分别选择上述处理器,允许它们分别访问第一共享资源,这样第一和第二处理器每个都拥有最大可能的无阻塞带宽;软件指令序列,它在第一处理器中执行,包括高速缓存控制器的指令用于在高速缓存未命中发生前从共享资源预装载信息到高速缓存;第一本地处理器总线,它连接到第一处理器;第二本地处理器总线,它连接到第二处理器;第一和第二本地处理器总线通过判决单元被可操作地连接到存储器总线,第一共享资源被连接到存储器总线;高速缓存通过判决单元连接到存储器总线;以及存储器控制器,它连接到存储器总线,存储器控制器是可操作的用于控制多种要求不同等待状态时长的不同的存储器类型,存储器控制器具有可编程长度的等待状态。
附图说明
在附图中,相同索引符号指示相同的部分:
图1是含有共享内存的传统总线结构的方框示意图;
图2是表达了本发明特征的典型总线结构的简单方框示意图;
图3是图2中总线结构的详细方框图;
图4是图2和图3中高速缓存系统部分的方框图;
图5是程序存储器图;
图6是图5系统的详细方框图;
图7是存储器覆盖图;
图8是物理存储器图;
图9A是图4的系统中PMMU的状态转移图;
图9B是图6的系统中PMMU的状态转移图。
具体实施方式
通过下面对本发明实施方案的详细描述可以更好地理解它。
在下面的讨论中将提到总线,一组连接电路功能单元、系统或所讨论设备的信号通道会被解释。总线可能包括寻址部分和数据携带部分,高速缓存有时会个别地当作总线被提到。通常总线被分成2条或更多平行的信号通道用来携带多个比特的数据和地址信息,当然串行总线也是常见的。
图2中画出了设备200,它是例如集成电路。这个设备包含一个数字信号处理器(DSP)子系统201和微控制单元(MCU)子系统202。其中DSP子系统201是连接处理器的本地总线(未画出)。总线203为设备200的其他单元提供到DSP子系统201的外部连接(相对于DSP子系统201);总线203也可以是DSP子系统201的本地总线。类似地,MCU子系统202包含一个本地总线——总线204,它为设备200的其他单元提供到MCU子系统202的外部连接(相对于MCU子系统202)。子系统201和202都包含处理器,所以设备200有多个处理器。为了提高每个处理器的性能,所提供的子系统(201,202)分别具有各自的本地总线(分别为203和204)。这些将在下面非常详细地讨论。如上所述,DSP子系统201和MCU子系统202分别包含DSP(下面讨论)和MCU(下面讨论)。DSP和MCU都是总线主控设备,就是说它们可以要求通过各自的本地总线访问到设备200的其它单元。如果这样的结构在设计要求中更好地贯彻,它们(子系统)可以包含多条内部总线。
设备200还包含三个其它总线205、206和207,设备的若干其它单元连接到它们上。设备200的其他单元都是总线从属设备,它们对从总线主控设备来的访问要求给以响应。存储器——例如被用于作系统共享存储器的静态随机访问存储器(SRAM)——被连接到总线205。多种外围设备被归于连接到外围总线206上的外围子系统209中,它被设备200用来实现必要功能。最后,外部设备210,例如闪存(flash ROM)被连接到外部总线207。上面所提到的多种设备和总线的专用功能分块最好由设计者针对专门用途来优化。在这里描述的实施方案中,多种优化选择已经被应用使设备200适用于移动通信设备的核心,例如全球移动通信系统(GSM)手机,或支持码分多址(CDMA)等其他通信协议的手机,或支持无线应用协议(WAP)的设备。
上述总线203、204、205、206和207通过总线判决模块(BAM)211互联,总线判决模块包括内存直接访问(DMA)子系统(未画出)。在后面会详细描述BAM211的配置和操作。(对BAM的)配置和操作将决定哪些总线在什么时间可以互通。BAM211的设计和操作被优化以保证DSP子系统201和MCU子系统202访问其它系统单元的最小带宽,并避免子系统201和202锁死另一个子系统。
在设备200的实施方案中,所有总线主控设备,包括DSP子系统201和MCU子系统202,使用公共的单一的地址空间。使用单一的地址空间有很多重要的优点。例如,DSP子系统201和MCU子系统202可以通过传递指针在SRAM208中交换数据和代码,这个指针被写入到公用指定位置。单一地址空间的另一个好处是,BAM211所要求的地址解码逻辑被大大简化,因为无论如何同样的解码都是需要的,而同样的编码总线主控设备或总线从属设备总要单独翻译。单一地址空间还有一个好处就是系统结构非常对称。因为DSP和MCU使用同一地址空间,代码可以很容易地从一个设备移动到另一个上。这样,设计者可以更好地在DSP和MCU间分割代码,以避免危险的路径问题和处理器过载。
结合图3,下面我们来详细介绍实施方案。首先介绍DSP子系统201。
在DSP子系统201的中心有一个模拟设备218X作为DSP核心301。其它类型的DSP核心301也是可以的,包括MCU或其它设备的一部分,只要在软件和硬件上能提供DSP能力。在DSP子系统201中还有包括下载控制器、高速缓存与临时内存控制器和高速缓存的存储器管理系统302,和包括Viterbi协处理器303和通用加密引擎304等的DSP专有外围设备。这些DSP专有外围设备的功能在DSP或在外部软件和/或硬件中执行。
在DSP子系统201中明显缺少的是内部只读存储器(ROM)。作为代替,DSP程序代码被动态地下载或缓存在DSP高速缓存305中。通过使用高速缓存305,DSP程序代码的下载对用户是透明的。使用传统缓存技术,不是所有特定功能所要求的DSP代码需要被及时下载到任意特定点上,例如声音解码器。相反,只有需要立即被DSP执行的代码段需要被下载,这就使DSP子系统201只需要很少的内存。虽然上面的讨论证明了DSP子系统201不需要内部ROM,它也可以包括内部ROM,这不违反本发明的实质。
DSP程序代码可以从内部系统存储器208或从外部存储器中装载到高速缓存中,例如从作为外部设备210联接到总线207上的闪存中装载。上述灵活性的优点是在保证内存访问的前提下最小化了DSP子系统201和MCU子系统202间的冲突。当系统正在运行时,危险代码应被放在最小开销和等待处。
为了保证软件分割的最大灵活性,总线系统204、205、206和207能够被DSP子系统201通过DSP总线203和BAM211访问。
DSP子系统201还有几个内部静态RAM305,它们被用于数据和具有危险定时要求的代码。DSP301中的内部静态RAM305也可以通过连接到外部总线206的内存访问接口(MAI)模块306被MCU子系统202访问。
MCU子系统202包括一个ARM7TDMI(英国ARM有限公司产品)或其他MCU访问器作为MCU核心307。MCU子系统202还包括时钟发生电路308和一个小ROM309,其中保存了初始化代码用于装载存储在外部的软件。
实施方案中的存储器208是静态RAM(SRAM),用于存储数据和代码。当它通过BAM211联接到总线205时,它可以被DSP子系统201和MCU子系统202通过它们相应的总线203和204访问。时间危险的MCU子系统代码可以放在这个存储器中,使它与DSP子系统的时间危险的代码分开。少量的时间危险的DSP代码也被存放在静态RAM208中。
外围子系统209包含一个通用中断控制器310、一个通用定时器311、一个通用串行接口312、一个通用输入/输出(GPIO)接口和一个GSM输入/输出系统314。通用中断控制器310收集所有系统收到的中断,将它们分为软件可配置的组并赋予它们优先级别。这样,一个完全可编程的中断优先权分级系统就建立起来了。在实施方案中,还存在三个独立的中断控制器(未画出),它们用于DSP子系统201、MCU子系统202和BAM211内部。通用定时器311是完全软件可配置的定时模块,它用于维护系统定时。定时模块可以产生中断并设置或清除到设备200的外部连接。通用串行接口312是完全软件可配置的序列器,它带有用于实现串行接口标准的特定硬件。通用串行接口312可以被编程为符合最常见的串行标准。这样,每个设备200的用户可以建立单一的硬件指定的串行接口而不用对设备200的内部结构进行任何改动。GPIO313的功能允许到设备200的多种外部连接用于任意特定的硬件或软件指定的接口要求。
外部总线207提供到设备200的高速连接,它适用于连接例如闪存等要求并行接口的单元。
如上所述,所有总线203、204、205、206和207通过总线判决模块(BAM)211互联。总线判决模块包括三个判决单元314、315和316,还包括直接内存访问(DMA)子系统,DMA子系统在下面介绍,包括DMA总线317和DMA控制器318。下面还要描述,部分地由于在每条从属的总线上拥有分立的判决单元,当多个总线主控设备要求访问不同的从属总线时,BAM211被设计成能避免阻塞。
三个总线判决单元314、315和316分别负责三个主要的系统总线之一:存储总线205、外围总线206和外部总线207。三个判决单元314、315和316在结构上是一样的(判决模式可以不同),但是分别对应于它们自己的总线205、206和207。
第一个判决单元314选择性地将存储总线205联接到DSP总线203、MCU总线204、DMA总线(下面讨论)和DSP高速缓存之一。
第二个判决单元315选择性地将外围总线206联接到DSP总线203、MCU总线204、DMA总线(下面讨论)和DSP高速缓存之一。
第三个判决单元316选择性地将外部总线207联接到DSP总线203、MCU总线204、DMA总线(下面讨论)和DSP高速缓存之一。
很明显图3所示结构是无阻塞的。总线主控设备——DSP核心301和MCU核心307——都连接在自己的总线上。总线主控设备在自己总线上的内部通信与其它总线主控设备在它们各自总线上的通信完全独立。资源,也就是总线从属设备,分布在多个从属总线中,例如总线205、206、207。如果一个总线主控设备要求访问一条从属总线上的资源,而同时另一个总线主控设备要求访问另一条从属总线上的其他资源,不会有阻塞发生,因为独立的判决单元处理不同的访问请求。这样,设计者可以通过分离共享资源来优化设计,使总线主控设备成为资源的主要使用者。其它的无阻塞结构也是可能的,使用例如多端口,无阻塞并行交换结构也可以被使用。
共享资源可以被分离如下。如果DSP核心301比MCU307更多地使用第一项资源,但是MCU307比DSP核心301更多地使用第二项资源,那么第一项资源和第二项资源应该分配到两个不同的从属总线上。
按照以下描述的方式,总线判决单元314、315、316允许访问它们的总线205、206、207。从申请者发到判决单元314、315、316的激活总线选择信号提出了访问和判决要求。判决单元314、315、316或者返回一个等待信号以推迟访问,或者允许访问。当被允许访问的申请者的总线选择信号变成非激活时,它向判决单元指出下一个判决循环可以开始了。
为了提高设备200的性能,DSP高速缓存访问可以设置为阻塞模式,一次可以读取(例如)最多12个字。在实施方案中,字长为16比特,当然在本领域中也有其他字长的特定设计。这样,作为外部设备210联接到外部总线207的例如闪存的带宽优势可以充分显现。判决模式在索尔森(Soerensen)序列号为(未定)的专利申请中有详细的描述。
总线判决模块的DMA子系统包含有DMA总线317和多通道DMA控制器318。在实施方案中使用了16通道的DMA控制器318。与DSP核心301和MCU307一样,DMA控制器是总线主控设备。DMA总线317互联三个判决单元314、315和316,所以DMA可以在任意连接在三个总线上的设备间实现,这三个总线是存储总线205、外围总线206和外部总线207。数据和代码可以从三个总线205、206、207上的任意地址位置传递到三个总线上的任意其它地址位置。DMA控制器318包括一个字长的传递内存,它用作上述传递并在下面进一步描述。DMA控制器318还包含本领域所知目的的其他存储器。如果用于特定目的,其它的存储器大小也可以使用。DMA控制器318在第一存储循环中从源位置读取一个字,在随后的第二存储循环中写入到目的地之中。
DMA控制器318管理DMA总线317的操作。DMA控制器318为中断驱动的输入输出设备和存储设备提供数据传递。DMA控制器318包含分离的带有同样功能的全双工通道。每个通道被MCU子系统202或DSP子系统201通过外围总线206控制和配置。当DMA控制器318传递可编程数量的地址位置之后,它向中断控制器310发出一个中断。
DMA控制器318可以完成下述任务使系统具有附加功能。在输入输出设备和例如MCU子系统之间可以建立RAM缓冲器。这样,要求处理输入输出数据的中断数量就减少了。在这个实例中,DMA控制器在存储器模块——例如SRAM208和属于外围子系统209的输入输出外围设备之间传递预定义长度或可编程长度的数据块。DMA控制器可以从属于外部设备210的闪存中向内部DSP子系统数据存储器、程序存储器或高速缓存中移动数据块——例如表格或程序。最后,DMA控制器可以根据要求从系统的一个位置向其他位置移动任意大的存储数据块。
DSP高速缓存控制器或程序存储管理单元(PMMU)在一些软件帮助下管理DSP的指令存储系统,有限的专用DSP RAM就使DSP达到最佳性能。等待从外部闪存或者系统SRAM中取数据的时间必须尽可能短。同时,PMMU必须限制软件帮助的复杂性和软件开销的数量,这些软件开销用于处理代码下载和再定位。
图5是DSP程序存储器图。DSP有一个扩展的地址范围和在程序存储器中对数据位置的单一限制。
借助于PMOVLAY记录的使用,地址范围被扩展了。这个记录可以设为从0到1023,它有效地将DSP指令地址范围扩展到512K字。注意PMOVLAY的值对高端8K的数据访问没有影响,这些访问被映射到外部的8K存储空间。程序存储空间的地段8K包含可用于代码和数据的内部RAM。存储器的这个部分和在常规的DSP中一样总是存在的。
必须注意尽管PMOVLAY记录事实上有10个比特,但是PMMU只利用其中的7个。PMOVLAY[5:0]选择可用的64个页面之一。PMOVLAY[6]是一个控制比特,用于激活称为“直接执行(Direct Execution)”的操作模式。下面章节中对此有详细描述。
PMMU/高速缓存单元被映射到PM空间的覆盖段中。所有的取数到DSP正常14比特地址空间高端8K的指令都连同PMOVLAY记录的6比特值一起被送到PMMU。这有效地为代码提供了19比特(512K)的地址空间。一个直接映射的高速缓存用于确定哪些代码当前常驻在2K的高速缓存中。
PMMU位于DSP的内部指令总线(IBUS)和内部地址总线(PMABUS)上(见图6)。这确定了取数指令不会占用外部总线使性能降低。控制记录和标签存储器是映射到DSP输入/输出空间上的存储器,它在零等待区域中。PMMU通过EBUS和RBUS访问芯片外的接口(通过EBUS)和系统RAM(通过RBUS),见图6。当直接从闪存或系统RAM中执行时这些总线被PMMU的下载控制器访问。ARM微处理器、集中的系统DMA控制器和DSP的扩展输入输出总线(DSPBUS)也可以访问这些总线。见图6。
最后,PMMU还可以将代码通过核心的IDMA端口下载到DSP核心的内部程序和数据存储器中。这个接口与位于PBUS上的MAI外围设备共享。
PMMU通过确定到哪里去找所需要的指令来管理代码空间,它或者在一个周期里返回指令,或者向核心指出出现了高速缓存未命中并取所需的代码块。一个4K的直接映射高速缓存覆盖了位于1-63页面上的全部代码。页面0是一个特殊页面,物理高速缓存位于其上。见图7。
在高速缓存模式下操作时,页面0不允许被使用。访问覆盖面0上面的高速缓存会造成未知的结果,因为当时代码的任何一部分都可能驻在上面。
覆盖面0用于支持TTP的动态下载系统,或者只需12K总PM空间简单应用。在这两种情况下,高速缓存成为固定的存储器,存储模型是简单的12K固定PM RAM。标签存储器被去激活,未命中总是不会出现的。
PMMU RAM可以被零开销的DMA功能所下载。它唯一从内部PM存储器中来,内部PM存储器是周期节省操作(cyclestealing operation)。PMMU RAM也是唯一不能包含PM数据的。无论PMOVERLAY设置如何,尝试访问地址小于0×2000的数据将造成外部存储器周期。
整个512K虚拟代码空间具有闪存或系统存储器中一致的物理存储区域。强制分割包括映射到系统RAM中的高端8个页面和映射到闪存中的页面1-55。覆盖面0(在下面未显示)和PM存储器的地段8K没有直接映射到固定的源区域中,因为被下载代码的源地址是可编程的。
PMMU可以通过PMMU的下载控制器接口初始化发往低速存储器的请求。这个请求通过PMMUBUS提出。这些请求可能从两个主控设备发出,它们具有下面的优先级和动作:
(1)高速缓存未命中    读取8个指令——暂停处理器
(2)软件下载    装载N×8条指令——送往DSP
高速缓存未命中具有最高的优先级,因为此时DSP已经暂停工作了。虽然DSP可以响应中断,但是它已经处在空闲状态了。高速缓存未命中造成在恢复运行之前必须先有8条指令从外部存储器中读取并写到高速缓存中。软件下载有两个目的,一个目的是在执行前先简单地把代码和数据装载进来,另一个目的是支持动态下载模式,在此模式下代码或数据在运行期间被装载,这可以减少高速缓存未命中比率(要求高速缓存预装载)或者在小内存系统中提高执行效率(要求TTP动态下载)。
PMMU DMA控制器会适当地处理上述两种优先级的请求。有些用户关心的事情应该记住。给PMMU的带宽受当前系统状态的严重影响,同时受例如判决单元设置等可编程功能的严重影响。下载在EBUS上被分配更低的优先级,它经常有大量的字要移动,所以它更严重地受MCU和DMA控制器活性的影响。
软件下载是唯一的一种完全在软件控制下的下载并因此受到特殊关注。下载控制器负责到包括直接映射的高速缓存和页面0部分在内的内部固定RAM和PMMU RAM的下载,并提供相应的接口。当然,完成下载的实际装置有一些不同。到固定存储器的下载实际上是通过核心的IDMA端口实现的,所以它是一种周期节省操作,即每下载一条指令用时小于一个DSP周期。数据也通过这个IDMA接口下载到固定的PM和DM中。到PMMURAM的下载通过到PMMU RAM的专用接口来实现,它不是周期节省操作并直接影响系统性能。数据不能够下载到这个存储器中。
下载的初始化过程如下:
1.检查PMMSR的DWNLDDONE比特以确定没有其它的软件下载正在进行。在其它软件下载正在进行时试图初始化一个新的软件下载是一个错误,它会产生BADDWLDINT并置位BadDwld指示比特。这个新请求会被忽略。
2.如果下载是到固定RAM或者是到覆盖面0的,源地址必须在写入PMMDWLD2之前提供。这个32位地址被写入到使用的记录DWLDSRC1和DWLDSRC2。在系统空间中源地址被指定为字节地址。如果下载是到高速缓存的,DWLDSRC记录就不使用,因为源地址是从目的地之中计算出来的。
3.下一步PMMDWLD1被写入目的块地址。对于到高速缓存的下载,它是代码的虚拟地址/8(codeaddr[19:3]);对于到固定存储器的下载,它是10比特的值(0000-1FFF右移3次);对于到PMOVLAY0的下载,它是9比特的值(000-FFF右移3次)。
4.再下一步PMMDWLD2被写入DwldType(确定目的地)、下载块长度(2或4个字长)和字长数(8-8048乘以8)。写入DWLD的这个值初始化传送,所以必须注意记录被写入的顺序。DwldType如下选择目的地:
  DwldType[1:0]   目的地
  00   页面0
  01   高速缓存
  10   固定的DM RAM
  11   固定的PM RAM
下载块长度可以用于帮助调整外部总线的使用。小的块长度将缩小允许的DSP带宽因为它必须判决多次,同时将释放带宽给其他使用。
根据整个下载的完成情况,DWLDDONEINT会被产生并在状态记录中指出。这将允许软件监视下载的完成并作进一步处理,例如安排下一次下载。在动态下载环境中这可以让下载内核程序决定下一步任务。DWLDDONEINT被新下载的初始化所清除,或在控制记录的这个比特中写入0清除。
软件下载可以用两种方式被中断或停止:一种是被软件,另一种是被硬件。软件方式是通过置位PMMSCR控制记录中的中止比特实现。这将在最近的点上中止下载。当程序分支造成继续下载无意义,或者程序上下关系变化时,这种方式就会被应用。在后者DW必须读取下载的当前地址并保存PMMU状态,以便在将来上下关系恢复时从当前点上重新启动下载。重要输入BREAK会造成下载控制器中断当前的下载。这会被用于DSP仿真,当DSP碰到中断点时下载应该被中止。
软件下载有潜在的错误条件,就是当指令要被执行时它还没有被下载下来。在不同的存储器中这将被不同处理。因为这种错误将造成高速缓存未命中,高速缓存有一个嵌入的保护机构。软件下载将被预腾空然后高速缓存块被装载。根据它的完成情况,获得E/RBUS后被停止的软件下载继续进行。下载控制器的硬件检查下载的高速缓存块的标志以确定已经存在于高速缓存中的块没有被再次装载。这在上述情况下特别有用,因为它允许代码再次下载使代码前部尽可能快地得到执行。到内部存储器和覆盖面0的下载没有硬件保护和检查。用户的下载核心来决定在执行代码前是否所有需要的软件片断都已经准备好了。
下载控制器被用于使高速缓存未命中的等待时间最短并在最短时间内完成下载。下载控制器完全地在DSPCLK下工作。后面所描述的ER总线接口负责总线接口与DSPCLK的同步。总线控制器也按字长工作并处在DSP的地址空间中。16位数据到24位地址的转换和源地址到系统空间地址的翻译也在总线接口中处理。这简化了下载控制器的设计。
基本的状态转移图见图9。大部分状态与下载、特别是下载到高速缓存有关。状态机可以用业界熟知的其他方式优化。下载中止过程未画出。
下载控制器支持2个通道,它可以从下载中转到高速缓存未命中的处理中,当它结束后再转回到下载处理中。高速缓存未命中总是在它一发生就得到处理。下载通道有3个基本下载模式:到高速缓存、到覆盖面0和到固定存储器。状态机的基本操作为(1)等待高速缓存未命中或下载请求,(2)请求总线接口初始化下载,(3)等待DSPACK,(4)从缓冲器中把字转移到目的地,(5)重复直到所有请求的传送完成。
这个操作被复杂化了,原因包括下载会被BlkSz的尺寸要求所终止,下载到高速缓存中要求读和改变标志,通道的改变,和下一段将要描述的直接运行模式。下载到高速缓存显然更难处理,因为我们不想下载已经存在的高速缓存块,而且下载到高速缓存中间需要更小心地控制标志使非法指令不被执行。
出现高速缓存未命中后禁止高速缓存重置也是可以的。这种执行模式最好是“直接执行”的,虽然直接从闪存或系统RAM总运行代码非常慢。直接从存储器中读出来的代码被简单地直接送到IBUS,这比写回到高速缓存中要好。在这个模式下,未命中是针对代码而言而不是针对代码块,也就是说,一个代码读出后就立即执行。
这种模式有两种方法中止。第一种是控制记录比特ExeFLASH或者ExeSRAM。这会分别为驻在闪存和系统RAM中的代码激活直接执行模式。第二种是通过PMOVLAY[6]。设置PMOVLAY[6]=1激活当前页的这个模式。例如,软件可以设置PMOVLAY=66来直接执行覆盖面2。
高速缓存的硬件在这个模式下仍然有效。如果用户希望取激活所有的高速缓存功能,覆盖面0必须被使用。这个模式于是只影响下载控制器和它对高速缓存未命中的反应。当高速缓存未命中时,PMMU将直接向核心提供指令执行然后回到它的空闲状态,而不是将指令写到高速缓存中去。核心执行这个单一指令后,很可能下一个指令还是高速缓存未命中(因为在这个模式下标志没有改变),于是同样的过程重复下去。唯一的不同点可能是单一的16比特数据读取可能读出一个字,因为上一次读出的一个字节可以用。
这个模式的目的是允许用户直接从存储器中执行他的部分代码而不是将它先装载到高速缓存中去,那里将会被其他东西覆盖。这种模式对不带循环的顺序执行代码部分最为有用,这种代码流不太适合于高速缓存。可以想象,这种模式发生在软件控制下的跳转时,并被代码本身激活用于代码的特定段。当所有SRAM代码都直接从SRAM中执行而不被缓存时,这个模式使简单地在RBUS上激活它有意义。最后一种使用是作为调试方式。将PMOVLAY[6]改成1使代码在可以观察到的外部执行。
虽然直接的顺序执行代码最先出现,而且从高速缓存中执行也要花同样多的时间,直接执行模式实际上更慢些。这是因为一个事实,就是每个指令的读取都提出一个新的存储器请求,于是更多的外部总线被判决单元确认。
本发明已经结合它的很多特定实施方案一起描述过了。然而,在本发明范围内的种种变化对本领域的技术人员来说是明显的。因此,本发明的范围只被在此附加的权利要求书的范围所限定。

Claims (11)

1.一种多处理器数据处理系统,包含:
第一处理器;
第二处理器;
第一共享资源,它可操作地连接到第一和第二处理器;
高速缓存系统,它可操作地连接到第一处理器和第一共享资源,这样信息可以从第一共享资源直接传送到第一处理器,也可以通过高速缓存系统传送;
高速缓存控制器,它在需要程序指令之前从可更改非易失程序存储器装载程序指令到高速缓存,这样可以避免需要程序指令的时候发生高速缓存未命中;
判决单元,它可以完成第一共享资源和第一第二处理器之间的连接,判决单元分别选择上述处理器,允许它们分别访问第一共享资源,这样第一和第二处理器每个都拥有最大可能的无阻塞带宽;
软件指令序列,它在第一处理器中执行,包括高速缓存控制器的指令用于在高速缓存未命中发生前从共享资源预装载信息到高速缓存;
第一本地处理器总线,它连接到第一处理器;
第二本地处理器总线,它连接到第二处理器;
第一和第二本地处理器总线通过判决单元被可操作地连接到存储器总线,第一共享资源被连接到存储器总线;
高速缓存通过判决单元连接到存储器总线;以及
存储器控制器,它连接到存储器总线,存储器控制器是可操作的用于控制多种要求不同等待状态时长的不同的存储器类型,存储器控制器具有可编程长度的等待状态。
2.根据权利要求1中的系统,进一步包含:
第二共享资源,它可操作地连接到第一和第二处理器,
第一和第二共享源具有不同的访问周期时间。
3.根据权利要求1中的系统,其中第一处理器和第二处理器以不同的最大速率访问资源。
4.根据权利要求3中的系统,其中第一处理器访问资源的最大速率超过共享资源的最大速率。
5.根据权利要求1中的系统,进一步包含:
第二共享资源,它连接到第一和第二处理器;其中
高速缓存也连接到第二共享资源,因此信息可以从第二共享资源直接传送到第一处理器,也可以通过高速缓存传送。
6.根据权利要求5中的系统,其中第一和第二共享资源被映射用于编址以分离多位地址空间的地址。
7.根据权利要求1中的系统,其中判决单元可以可编程地分配存储器总线的带宽给第一和第二处理器。
8.根据权利要求1中的系统,其中高速缓存是直接映射类型的。
9.根据权利要求1中的系统,具有以下特点:
本地存储器总线,通过它高速缓存连接到第一处理器;
本地存储器通过本地存储器总线连接到第一处理器。
10.根据权利要求9中的系统,其中本地存储器是程序存储器,第一处理器从中读取指令来执行。
11.根据权利要求1中的系统,其中高速缓存是从共享存储器中动态装载的。
CN 00815005 1999-11-05 2000-11-06 多处理器数据处理系统 Expired - Lifetime CN1279472C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16381699P 1999-11-05 1999-11-05
US60/163,816 1999-11-05

Publications (2)

Publication Number Publication Date
CN1399743A CN1399743A (zh) 2003-02-26
CN1279472C true CN1279472C (zh) 2006-10-11

Family

ID=22591705

Family Applications (3)

Application Number Title Priority Date Filing Date
CNB008152330A Expired - Lifetime CN100353349C (zh) 1999-11-05 2000-11-03 通讯处理器的总线结构和共享总线判优方法
CNB00814835XA Expired - Lifetime CN100336046C (zh) 1999-11-05 2000-11-03 用于计算机系统的接口设备及其配置方法
CN 00815005 Expired - Lifetime CN1279472C (zh) 1999-11-05 2000-11-06 多处理器数据处理系统

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CNB008152330A Expired - Lifetime CN100353349C (zh) 1999-11-05 2000-11-03 通讯处理器的总线结构和共享总线判优方法
CNB00814835XA Expired - Lifetime CN100336046C (zh) 1999-11-05 2000-11-03 用于计算机系统的接口设备及其配置方法

Country Status (5)

Country Link
EP (3) EP1226505B1 (zh)
CN (3) CN100353349C (zh)
AU (3) AU1458501A (zh)
DE (3) DE60027748T2 (zh)
WO (3) WO2001035234A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6768358B2 (en) * 2001-08-29 2004-07-27 Analog Devices, Inc. Phase locked loop fast power up methods and apparatus
GB0122401D0 (en) * 2001-09-17 2001-11-07 Ttp Communications Ltd Interfacing processors with external memory
GB2388929B (en) 2002-05-23 2005-05-18 Advanced Risc Mach Ltd Handling of a multi-access instruction in a data processing apparatus
KR100532416B1 (ko) * 2003-01-18 2005-11-30 삼성전자주식회사 다중 소스의 다중 채널로의 할당 방법 및 시스템
KR100463205B1 (ko) * 2003-02-13 2004-12-23 삼성전자주식회사 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
US20050154928A1 (en) * 2004-01-08 2005-07-14 International Business Machines Corporation Remote power-on functionality in a partitioned environment
CN1661576B (zh) * 2004-02-25 2010-04-28 中国科学院计算技术研究所 Soc架构下的高速总线动态变频装置和处理器核接口
US7957428B2 (en) * 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
CN100389413C (zh) * 2004-09-15 2008-05-21 北京中星微电子有限公司 串行通信总线外部设备接口
CN100388251C (zh) * 2004-12-24 2008-05-14 刘龙威 外部数据存储设备共享切换电路及其应用系统
US7348799B2 (en) * 2005-01-11 2008-03-25 Hewlett-Packard Development Company, L.P. System and method for generating a trigger signal
US7428603B2 (en) 2005-06-30 2008-09-23 Sigmatel, Inc. System and method for communicating with memory devices via plurality of state machines and a DMA controller
JP4747896B2 (ja) * 2006-03-17 2011-08-17 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7930576B2 (en) * 2007-04-10 2011-04-19 Standard Microsystems Corporation Sharing non-sharable devices between an embedded controller and a processor in a computer system
CN101840385B (zh) * 2009-03-19 2012-07-18 承景科技股份有限公司 数据存取系统
CN102654853B (zh) * 2011-03-04 2015-03-04 上海华虹集成电路有限责任公司 一种采用两个微处理器的Nandflash控制器
CN102662911A (zh) * 2012-03-19 2012-09-12 中国科学院上海技术物理研究所 一种板级重构红外信号处理机的控制方法
US9129072B2 (en) * 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
US9946675B2 (en) * 2013-03-13 2018-04-17 Atieva, Inc. Fault-tolerant loop for a communication bus
CN104216857B (zh) * 2013-05-31 2017-09-22 英业达科技有限公司 多工切换装置及其切换方法
FR3026869B1 (fr) * 2014-10-07 2016-10-28 Sagem Defense Securite Systeme embarque sur puce a haute surete de fonctionnement
US9450582B2 (en) 2015-02-03 2016-09-20 Freescale Semiconductor, Inc. Programmable buffer system
KR102160414B1 (ko) * 2016-01-22 2020-09-28 주식회사 소니 인터랙티브 엔터테인먼트 하위 호환성을 위한 레거시 버스 동작 시뮬레이션
GB2553338B (en) * 2016-09-02 2019-11-20 Advanced Risc Mach Ltd Serial communication control
CN106980577B (zh) * 2017-03-20 2020-04-28 华为机器有限公司 输入输出处理方法、装置及终端
US10558604B2 (en) * 2017-12-20 2020-02-11 Qualcomm Incorporated Communication interface transaction security
CN109725250B (zh) * 2019-01-04 2021-07-13 珠海亿智电子科技有限公司 一种片上系统芯片模拟电路的测试系统及测试方法
CN111045980A (zh) * 2019-12-24 2020-04-21 广东嘉泰智能技术有限公司 一种多核处理器
CN114297105B (zh) * 2021-12-29 2024-04-05 合肥市芯海电子科技有限公司 一种直接存储器访问的嵌入式控制电路、芯片和电子设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4630267A (en) * 1983-12-23 1986-12-16 International Business Machines Corporation Programmable timing and synchronization circuit for a TDMA communications controller
US4831520A (en) * 1987-02-24 1989-05-16 Digital Equipment Corporation Bus interface circuit for digital data processor
EP0426413B1 (en) * 1989-11-03 1997-05-07 Compaq Computer Corporation Multiprocessor arbitration in single processor arbitration schemes
EP0665502B1 (en) * 1994-01-27 2002-06-12 Sun Microsystems, Inc. Asynchronous serial communication circuit
US5628030A (en) * 1994-03-24 1997-05-06 Multi-Tech Systems, Inc. Virtual modem driver apparatus and method
US5598542A (en) * 1994-08-08 1997-01-28 International Business Machines Corporation Method and apparatus for bus arbitration in a multiple bus information handling system using time slot assignment values
DE69634358T2 (de) * 1995-06-07 2005-12-29 Samsung Electronics Co., Ltd., Suwon Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
US5809091A (en) * 1996-06-04 1998-09-15 Ericsson, Inc. Timing signal generator for digital communication system
US5805844A (en) * 1996-10-07 1998-09-08 Gustin; Jay W. Control circuit for an interface between a PCI bus and a module bus
US5987568A (en) * 1997-01-10 1999-11-16 3Com Corporation Apparatus and method for operably connecting a processor cache and a cache controller to a digital signal processor
DE19713178A1 (de) * 1997-03-27 1998-10-01 Siemens Ag Schaltungsanordnung mit einem Prozessor und einem Datenspeicher
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
GB9724030D0 (en) * 1997-11-13 1998-01-14 Advanced Telecommunications Mo Peripheral servicing
EP0924623A3 (en) * 1997-12-22 2000-07-05 Compaq Computer Corporation Computer system including arbitration mechanism allowing multiple bus masters to access a graphics bus

Also Published As

Publication number Publication date
DE60027748D1 (de) 2006-06-08
WO2001035210A2 (en) 2001-05-17
CN100353349C (zh) 2007-12-05
CN1387645A (zh) 2002-12-25
WO2001035234A9 (en) 2002-05-30
CN1399743A (zh) 2003-02-26
DE60008139T2 (de) 2004-11-18
WO2001035246A3 (en) 2002-07-11
DE60017775T2 (de) 2006-01-12
DE60027748T2 (de) 2007-04-05
WO2001035210A3 (en) 2002-01-17
AU1458501A (en) 2001-06-06
DE60008139D1 (de) 2004-03-11
EP1226505B1 (en) 2005-01-26
CN100336046C (zh) 2007-09-05
CN1387646A (zh) 2002-12-25
WO2001035234A1 (en) 2001-05-17
EP1226493A2 (en) 2002-07-31
AU1465001A (en) 2001-06-06
EP1236122A2 (en) 2002-09-04
EP1236122B1 (en) 2004-02-04
WO2001035246A2 (en) 2001-05-17
EP1226493B1 (en) 2006-05-03
DE60017775D1 (de) 2005-03-03
AU1458801A (en) 2001-06-06
EP1226505A1 (en) 2002-07-31

Similar Documents

Publication Publication Date Title
CN1279472C (zh) 多处理器数据处理系统
KR100257518B1 (ko) 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
CN100570563C (zh) 在具有动态逻辑分区的计算环境中管理计算机存储器
US7231484B2 (en) Method and memory controller for scalable multi-channel memory access
JP5643903B2 (ja) 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
US20080270707A1 (en) Data processor
CN1991768A (zh) 与不同种类的资源通信的基于指令系统结构的内定序器
CN1818856A (zh) 具有加速器的数字信号系统及其操作方法
CN101036116A (zh) 跨多内核的分享监控快取列
CN87107293A (zh) 用于数字数据处理器的总线接口电路
CN1394310A (zh) 处理器间通信系统
CN1737780A (zh) 从一个设备驱动程序向另一个传送信息的系统和方法
WO2006072064A2 (en) System and method for cache coherency in a cache with different cache location lengths
CN102667714B (zh) 支持访问由操作系统环境外的资源提供的功能的方法和系统
CN101546275B (zh) 一种获取多处理器硬件信号量的方法
GB2457667A (en) Data transfer technique using repeated patterns
CN112131176A (zh) 一种基于pcie的fpga快速局部重构方法
JP2004535613A (ja) データ処理方法およびデータ処理装置
CN101313290B (zh) 对仅m×n位外围设备执行n位写入访问的系统和方法
CN1278249C (zh) 用于多个读取请求的存储器控制
JPH08115289A (ja) 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム
CN1801092A (zh) 一种嵌入式芯片及其程序空间扩展的方法
CN1464415A (zh) 一种多处理器系统
US6732235B1 (en) Cache memory system and method for a digital signal processor
EP1069511B1 (en) Data Transfer Controller with Plural Ports

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
ASS Succession or assignment of patent right

Owner name: MEDIATEK INC.

Free format text: FORMER OWNER: ANALOG DEVICES, INC.

Effective date: 20080404

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20080404

Address after: Hsinchu Science Industrial Park, Taiwan

Patentee after: MediaTek.Inc

Address before: Massachusetts, USA

Patentee before: Analog Devices, Inc.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20061011