多端口存储器件中的端口间通信的制作方法

文档序号:6454856阅读:209来源:国知局
专利名称:多端口存储器件中的端口间通信的制作方法
多端口存储器件中的端口间通信 相关申请的交叉引用
本申请要求提交于2006年3月30日、题为"INTEGRATED MULTI-PORT SERIAL MEMORY AND INTER-PROCESSOR COMMUNICATION (集成多端 口串行存储器及处理器间通信)"的美国临时专利申请No. 60/788,401 (代理 人案号No. 59472-8826. US00)的优先权,该申请通过引用包括于此。
背景
在计算机硬件中,共享存储器通常是指可被多处理器计算机系统中的若干 不同中央处理单元(CPU)或其它组件访问大型随即存取存储器块。例如,移 动电话常包含基带处理器、媒体处理器、以及LCD控制器,它们各自可共享 一公共的存储区。多处理器系统的组件常需要共享信息。例如,移动电话的媒 体处理器可运行与进行电话呼叫的基带处理器交互的操作系统。作为另一示 例,媒体处理器可向描述要被显示的图像的LCD控制器的帧缓冲器中写入信 息。各组件之间信息的共享通常要求许多不同的控制和数据接口。控制和数据 接口可被定义在各组件的每一个之间以及定义在各组件与共享存储器之间。此 外,在使用共享存储器的每个组件之间可能有额外的接口以用于协调对该共享 存储器的访问。
多处理器架构的结果是用于处理各种接口的每个组件内的复杂度增大以 及必要的用以支持各组件之间所需的通信的互连数目增大。互连是昂贵的并且 对于所使用的每个组件要求额外的工作。常常由于所希望的组件没有与另一所 需组件正确互操作而使其不能被使用。例如, 一特定LCD控制器可能不能够 以特定媒体处理器所要求的速度通信而使得必须选择更为昂贵的LCD控制器。 接口要求不仅增加了系统整体的复杂度,而且增加了成本。因此需要一种在多 处理器系统内以最小化该系统中的各组件所必需管理的通信开销的方式通信 的改善的方法。
5附图简述


图1是示出了被用作通信信道的多端口存储器件的架构的框图。
图2是示出了多端口存储器件中寄存器文件的配置的框图。 图3是示出了多端口存储器件作为通信信道的使用如何简化各组件之间 的互连的框图。
图4是示出了当在各组件之间传达通信消息时多端口存储器件的处理的 流程图。
具体描述
提供了一种利用多端口存储器件进行端口间通信的方法和系统。多端口存 储器件包括多处理器系统的各组件可与其连接的多个端口 。连接到每个端口的 组件之间消息的通信是通过共享存储器内寄存器文件的使用而得以迸行的。对
于多端口存储器件的每个端口,该存储器件包含中断寄存器、中断信号接口 (例如,专用引脚)、中断掩码、以及一个或多个消息缓冲器。当耦合到存储 器件的第一端口的第一组件希望与耦合到该存储器件的第二端口的第二组件 通信时,该第一组件向与第二端口相关联的消息缓冲器写入消息。第二端口的 输入寄存器中的中断被置位以向耦合到第二端口的第二组件通知一新消息可 用。 一旦接收到该中断,第二组件读取中断寄存器以确定中断的性质。第二组 件随后从消息缓冲器读取该消息。第二组件可将与第一端口相关联的中断寄存 器中的中断置位以便将第二组件已经完成消息的处理发信号通知第一组件。因 此,多端口存储器件使得共享该存储器的组件能够在无需外部通信硬件或对超 出读写共享存储器范围之外的范例的额外理解的情况下进行通信。
现在将描述将多端口存储器件用作通信信道的各种示例。以下描述提供了 为了对这些示例的透彻理解和描述的具体细节。然而本领域的技术人员将理解 该技术可在没有这些细节的情况下实践。另外, 一些公知结构或功能可能没有 详细示出和描述,以避免不必要地淡化各种示例的相关描述。以下所示描述中 使用的术语旨在以最宽范的合理方式来解释,即使它是结合该技术的特定具体 示例的详细描述来使用的。以下甚至强调了某些术语,然而任何旨在以任意限制性方式解释的术语将如在该具体描述章节中那样公开而明确地定义。 I.系统架构
图1是示出了被耦合到多处理器环境中的数个组件的多端口存储器件架 构的框图。多端口存储器件100包括一个或多个存储器组110、两个或多个端
口 120、以及寄存器文件130。存储器、端口、以及寄存器文件全部通过总线 140耦合,后者使得任何存储器组或寄存器文件能被任何端口所访问。 一个或 多个存储器组110存储可经由各端口访问的数据。存储器组110可由动态随机 存取存储器(DRAM)或其它常见类型的存储器件制成。两个或多个端口 120 的每一个可被连接至相对应的端口主控(PM) 150。端口主控150可以是诸如 基带处理器、媒体处理器、或LCD控制器等使用共享存储器的任意类型的系 统组件。如将在本文的其它细节中描述的,多端口存储器件可被用作使得能够 在多处理器环境中的组件之间进行数据通信的通信信道。
图2是示出了一些实施例中寄存器文件130的配置的框图。寄存器文件通 过用作指示有无特定端口的通信的公共信令接口来允许多处理器环境中各组 件之间的通信。对于多端口存储器的每个端口,寄存器文件130包含中断寄存 器210、诸如中断引脚220等中断信号接口、中断掩码缓冲器230、以及一个 或多个消息缓冲器240a、 240b、 ...240n。中断寄存器210包含信号通知对于该 多端口存储器内的特定端口可能发生的各种类型的事件的数个比特。中断寄存 器中的每个比特可与不同的事件相关联。这些事件可以是应用专属的,并且可 以由多端口存储器的不同用户来不同地定义。应用可保留每个端口的中断寄存 器内的比特用于该多端口存储器的其它端口的每一个以信号通知有该端口的 新消息可用。应用还可保留每个端口的中断寄存器内的比特用于其它端口的每 一个以信号通知对消息的处理完成。例如,图2中所描绘的寄存器文件的实施 例是针对三个端口——端口A、端口B、和端口C来配置的。每个端口具有相 关联的带有4个比特的中断寄存器210 (该图中仅描绘了端口 A中断寄存器和 端口A缓冲器)。中断寄存器的一个比特被用来表示新消息,以及一个比特被 用来表示对应两个其它端口的每一个的消息应答。端口 A的中断寄存器比特因 此表示来自端口 B的新消息、来自端口B的应答、来自端口C的新消息、以 及来自端口 C的应答。值"1"指示该中断已被置位。在图2中,例如指示来自端口 C的新消息的比特已被置位。如果消息缓冲器是多端口存储器件的邮 箱,则中断寄存器类似于邮箱旁边在新邮件可用时信号通知的红色标志。通过 将寄存器文件中的恰当比特置位或清零,该端口的通信状态可被传达给系统组 件。
在一些实施例中,多端口存储器件将中断寄存器210存储在快速静态随机
存取存储器(SRAM)中。中断寄存器的比特可以是标准触发器以节省空间并 增加测试和置位这些比特的速度。替换地或另外地,多端口存储器件可将中断 寄存器存储在该共享存储器自身的特定位置处。例如,共享存储器的较高位置 的字节可被应用保留用于存储中断寄存器。中断寄存器可以是分配在各端口之 间的单个寄存器(例如,16比特)、或各自与不同端口相关联的多个寄存器。
在一些实施例中,多端口存储器保留中断寄存器的一个或多个比特用于调 试和测试目的。例如,在具有16比特中断寄存器的3端口器件中,多端口存 储器可保留比特15用于指示附连到特定端口的组件中止进一步处理直至该中 断被清除的停机指令。断点可使用中断寄存器的比特来实现以信号通知该断点 所应用的存储器地址被存储在消息缓冲器中。例如,调试应用可在存储器地址 0x0100上设置断点,并将每个端口的中断寄存器中的断点比特置位。
端口的中断寄存器各比特的状态经由与该端口相关联的中断引脚220被 传达给系统组件。中断引脚220上中断信号的存在向附连的组件传达一新中断 已被置位。中断信号是通过使用逻辑门250将各中断寄存器比特的值逻辑"或" 生成的(在一些实施例中,将在以下讨论的掩码函数可用)。无论何时只要中 断寄存器的任意比特被置位就在中断引脚上生成中断信号。因此,中断信号用 作中断寄存器的累计并提供用于向附连到该端口的组件通知该组件应进一步 询问该中断的性质的单一机制。本领域的技术人员将认识到,中断信号可以本 文所公开的中断引脚的专门使用之外的其它方式来生成。
在一些实施例中,可在寄存器文件130中使用中断掩码以允许组件读取中 断寄存器210中特定比特的状态。设置了多个逻辑与门260以实现该掩码特征。 每个与门的一个输入是中断寄存器210的比特值。每个与门的另一输入是存储 在中断掩码寄存器230中的中断掩码的比特值。通过逻辑与的运算,只有那些 在中断掩码中具有被置位为"1"的对应比特的中断寄存器比特被应用到逻辑上的中断信号基于中断掩码值选择性地表示中断 寄存器中一个或多个比特的比特值。作为在多端口存储器件的启动期间执行的 配置阶段的一部分,监督端口主控(SPM)可代表每个端口来设置中断掩码。 中断掩码可被存储在共享存储器内的预定义位置中,以使得组件可通过对该预 定义位置.的写入来更新中断掩码。
中断掩码可被应用用来忽略某些终端能。例如,在使用多端口存储器件的 移动电话中,基带处理器可能没有兴趣接收来自附连到多端口存储器件的LCD 控制器的中断。因此,基带处理器可设置其所附连到的端口的中断掩码以屏蔽 来自LCD控制器所附连到的端口的中断。基于该中断掩码,除非未被中断掩 码屏蔽的中断被置位,否则在中断引脚上将不生成中断信号。另外,多端口存 储器件可屏蔽响应于TAS指令而返回的比特以使得不包括中断寄存器被忽略 的比特。
如果附连到该端口的组件检测到中断,则该组件发出"测试并置位" (TAS)指令以读取中断寄存器210的内容。在一些实施例中,多端口存储器 件提供TAS指令以自动测试并置位中断寄存器的值。TAS指令通过允许对中 断的同时读取和清除,减少了系统组件处理中断所需的访问存储器件的次数, 并且指令的原子性避免了竞态条件。本领域的普通技术人员将认识到诸如互斥 和信号量等普通同步结构可使用TAS指令来构建。组件通过提供对照其测试 寄存器的当前值的测试值和在当前值与测试值相匹配的情况下将寄存器置位 的置位值来发出TAS指令。通常,测试值测试是否有任何比特被置位,而置 位值将所有比特清零。因此,发出TAS指令向组件通知中断寄存器中的哪些 中断比特被置位并同时将任何被置位的比特清零。该组件然后可处理被发现置 位的比特所表示的中断。
在一些实施例中,寄存器文件130包括消息缓冲器240a、 240b、…2衡, 它们可被用来存储导致中断的事件的额外细节。每个端口可具有相关联的输入 消息缓冲器(1MB)和输出消息缓冲器(OMB) 。 1MB可被耦合到端口的第 一组件用来向耦合到另一端口的第二组件提供数据,而OMB可传送从第二组 件到第一组件的响应数据。例如,耦合到端口A的组件可在描述已经发生的事 件的端口 B的1MB中写入信息。端口 B的中断寄存器中的中断比特随后可被
9置位以向端口 B通知一新消息可用。耦合到端口 B的组件在处理中断之后可
检索消息缓冲器的内容。在图2所描绘的示例中,由于中断寄存器比特2被置 位,从而指示来自端口 C的新消息,附连到端口 A的组件读取端口C输出消 息缓冲器240c以确定来自端口 C的消息的内容。组件可通过向端口 C输入消 息缓冲器240d写入消息并将端口 C的恰当中断置位来应答。
虽然图2中仅示出了三个端口和四个中断比特,然而多端口存储器件可支 持任意数目的端口和中断。每个端口和中断的用途可由每个应用针对对于该应 用最恰当的使用进行定制。除了位于寄存器文件130中,消息缓冲器240a、 240b…240n还可位于共享存储器内,每个消息缓冲器的地址可在多端口存储器 件的起动期间配置。
在一些实施例中,当一新事件被添加至寄存器文件时,多端口存储器件自 动将中断置位。例如,如果一个组件向消息缓冲器添加事件信息,则多端口存 储器件可检测到该新信息并自动将接收端口的中断寄存器内的正确中断置位。 自动将中断置位减少了由于附连到一个端口的组件错误地将另一端口的中断 寄存器内的比特置位所引起的差错的机会。
图3是示出了在一些实施例中多端口存储器件架构如何简化各组件之间 的互连的框图。系统300包含多个组件,每个组件通过接口 310连接至共享存 储器305。每个组件还具有数个与其它组件的直接互连320。这些互连增加了 系统的复杂度,因为它们要求组件使用各种接口协议与其它组件通信。还由于 互连要求额外的路由路径和定时控制,这也增加了系统的复杂度。基于本文所 公开的多端口存储器件的系统350也包含通过接口 360连接至共享存储器355 的多个组件。然而,系统350在各组件之间不包含直接互连。而是每个组件经 由中断引脚370被连接至共享存储器355。如本文所描述的,中断引脚370上 的中断信号在另一组件希望通过共享存储器355通信时通知组件。系统中各组 件之间直接互连的消除极大简化了定时和接口问题。
图4是示出了在一些实施例中当在各组件之间传达消息时多端口存储器 件的处理的流程图。在框410中,端口主控(PM) A向PM B使用的端口的 OMB中写入消息。在框420, PMA将连接至PMB的端口的中断寄存器置位 以向PMB通知一新消息可用(或者,在该新消息被写入PMB的OMB时该中断可被自动置位)。基于PMB的中断寄存器的内容,PMB所用的端口的 中断引脚也被置位。在框430, PM B检测到中断引脚被置位,以及发出TAS 指令以读取中断寄存器的内容并清除该中断。在框440, PMB读取由PMA写 入OMB的消息并处理该消息。在框450, PM B向PM A所用的端口的1MB 中写入应答消息。在框460, PMB将PMA所用的端口的中断寄存器置位以向 PM A通知该消息已被处理且应答可用。基于PM A的中断寄存器的内容,该 端口的中断引脚也被置位。在框470, PM A检测到中断引脚被置位,以及发 出TAS指令以读取中断寄存器的内容并清除该中断。在框480, PMA读取由 PMB写入IMB的应答消息并处理该应答。在决策框490,如果有更多消息则 PMA循环至框410并发送另一消息,否则过程结束。
II.寄存器文件使用
以下是寄存器文件如何被不同应用用来协调和共享组件之间的信息的若 干示例。
存储应用常包括共享存储器件的一个或多个端口主控。端口主控(PM) 可表示处理器、其它存储设备(例如,硬驱动)、或附连到该存储器件的其它 硬件组件。 一个端口主控常被指定为监督端口主控(SPM) 。 SPM通常指导其 它端口主控的行为。例如,在上电期间,SPM可从附连的闪存收集配置信息并 为其它PM配置存储器件的端口中的每一个。SPM可向多端口存储器件的每个 端口提供端口速度和其它配置信息,诸如该端口的消息缓冲器的位置、中断掩 码的位置、中断寄存器内每个中断比特的意义等。SPM还可基于应用的需要来 启用和禁用每个端口。例如,SPM可通过将端口的中断寄存器中的比特置位来 指示该端口保持禁用直至系统的其它组件已经完成上电并准备操作就绪。SPM 还可基于系统的当前功率要求或基于特定设备的不活跃性来指示一些端口自 我禁用(例如,使移动手机的LCD显示器的屏幕变暗)。
使用寄存器文件的另一示例是附连到存储器件的若干组件对存储器组的 共享。在最简单的情况下,每个组件被指派其自己的存储器组,而无需共享。 然而,应用常常基于系统的当前负载要求共享存储器组以使得更多可用存储器 能被指向特定用途。例如,在移动手机中,当进行呼叫时基带处理器可能要求
11更多存储器,而在玩游戏时媒体处理器可能要求更多存储器。系统的组件也可
能需要共享信息,并且可能通过共享存储器组来实现。 一个组件可向存储器写
入,而另一组件可从存储器读取以在各组件之间共享信息。
在共享存储器组的访问的情况下,对存储器组访问的协调对于确保数据不
被损坏是非常重要的。寄存器文件可被应用用于协调对存储器组的访问。例如, 中断可被定义用于保留存储器组以供使用。当组件希望使用存储器组时,该组 件发出TAS指令以尝试保留该存储器组以供使用。如果该存储器组当前未被
使用,则该TAS指令指示该存储器组可用,而作为TAS指令的一部分,该组 件己同时保留该存储器组以供使用。 一旦该存储器组被保留,该组件就可通过 该端口对该存储器进行读写。当组件完成存储器组的使用时,它可通过发出另 一 TAS指令来清除对该存储器组的保留。当另一组件希望使用存储器时,过 程重复。组件可发现存储器己在使用,在这种情况下,TAS指令将指示该存储 器组己被保留,而该组件可通过使用TAS指令轮询中断寄存器一直等到该存 储器组不再被保留。
在一些实施例中,多端口存储器可提供另一中断比特用于该存储器组的下 一个保留,从而使得即使一组件当前正在使用存储器组,希望使用该存储器组 的下一组件仍可登记其兴趣。因此,当连接到第一端口的组件完成对存储器组 的使用时第一端口可通知第二端口 ,从而使得第二端口在等待存储器组可用的 同时无需轮询。
III.结论
除非以下另有描述,否则本发明的各方面可用常规系统来实践。因此,附 图中所示的各个块的构造和操作可以是常规设计,因而无需在此作更详细的描 述来制造和使用本发明,因为这些块将被相关技术领域的人员所理解。系统的 各方面可使用诸如程序模块等可由一个或多个计算机或其它设备执行的计算 机可执行指令来实现。 一般而言,程序模块包括执行特定任务或实现特定的抽 象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能 集在各种实施例中可根据需要被加以组合或分布。
根据上述内容,将认识到已出于说明的目的描述了多端口存储器的具体实施例,但可作出各种修改而不会背离本发明的精神实质和范围。相应地,本发 明仅由所附权利要求限定。
权利要求
1. 一种在耦合至多端口存储器件的第一端口的第一组件与耦合至所述器件的第二端口的第二组件之间共享存储器的方法,所述方法包括从所述多端口存储器件的第一端口处的第一组件接收与事件的发生有关的数据;将与所述多端口存储器件的所述第二端口相关联的中断寄存器和中断信号置位以向所述第二端口通知所述事件的发生;在耦合至所述第二端口的所述第二组件检测到所述中断信号之后,将与所述第二端口相关联的所述中断寄存器的内容发送给所述第二组件;以及基于所述中断寄存器的内容指定的中断在所述第二组件处执行中断处理。
2. 如权利要求1所述的方法,其特征在于,将与所述第二端口相关联的 中断信号置位包括将中断引脚置位以向所述第二组件通知所述中断。
3. 如权利要求1所述的方法,其特征在于,包括确定所述中断寄存器的 内容是否与中断掩码相匹配,且如果所述内容与所述中断掩码不匹配则不将所 述中断信号置位。
4. 如权利要求1所述的方法,其特征在于,包括接收来自所述第二端口 处的所述第二组件的应答数据并将接收到的应答数据写入到与所述多端口存 储器件的所述第一端口相关联的缓冲器且在所述第一端口处将与所述多端口 存储器件的所述第一端口相关联的中断寄存器和中断信号置位。
5. 如权利要求1所述的方法,其特征在于,所述中断是由所述中断寄存 器中的比特集指定的。
6. 如权利要求5所述的方法,其特征在于,所述比特集包含对应所述多 端口存储器件的每个其它端口的至少一个比特。
7. 如权利要求5所述的方法,其特征在于,特定端口的所述中断寄存器 包含用于接收所述多端口存储器件的每个其它端口的应答消息的比特。
8. 如权利要求5所述的方法,其特征在于,所述中断寄存器包含被保留 用于调试用途的至少一个比特。
9. 如权利要求1所述的方法,其特征在于,发送所述中断寄存器的内容包括对测试并置位指令进行响应。
10. 如权利要求l所述的方法,其特征在于,将中断寄存器和中断信号置 位包括当在与所述第二端口相关联的所述缓冲器中检测到接收到的数据时自 动将所述中断寄存器和中断信号置位。
11. 如权利要求l所述的方法,其特征在于,所述中断寄存器被存储在所 述多端口存储器件内的存储器位置中。
12. 如权利要求l所述的方法,其特征在于,所述端口是串行端口。
13. 如权利要求1所述的方法,其特征在于,用于发送所述中断寄存器的 内容的数据路径与用于向/从所述多端口存储器件内的所述存储器传送数据的 数据路径相同。
14. 一种用于在附连到多端口存储器系统的各组件之间共享信息的系统,所述系统包括.-一个或多个共享存储器组,用于存储可被所述多端口存储器系统的一个或多个端口访问的信息中断寄存器,在事件已发生时向耦合至所述一个或多个端口的组件作出指 示;以及中断处理组件,用于基于所述中断寄存器的内容实现中断处理过程。
15. 如权利要求14所述的系统,其特征在于,所述中断寄存器包括多个 比特且其中所述比特的置位指示事件的类型。
16. 如权利要求15所述的系统,其特征在于,包括与输入寄存器相比较 以标识特定的事件类型的中断掩码。
17. 如权利要求14所述的系统,其特征在于,包括提供反映所述中断寄 存器的内容的信号的中断引脚。
18. 如权利要求14所述的系统,其特征在于,包括包含关于所述中断寄 存器所指示的事件的信息的消息缓冲器,其中所述消息缓冲器包括用于存储传 出消息的输出消息缓冲器和用于存储接收到的消息应答的输入消息缓冲器。
19. 如权利要求14所述的系统,其特征在于,还包括独立于所述共享存 储器组的随机存取存储器,其中所述中断寄存器被存储在所述随机存取存储器 中。
20. 如权利要求19所述的系统,其特征在于,所述随机存取存储器是比所述共享存储器组更快的存储器。
21. —种包含根据一种方法用于控制存储器件在多个组件之间共享存储 器组的指令的计算机可读介质,所述方法包括-接收来自第一组件的访问存储器组的请求; 确定所述存储器组当前是否正在使用;如果所述存储器组当前没有使用,则向所述第一组件准许对所述存储器组 的访问;接收来自第二组件的访问所述存储器组的请求; 确定所述第一组件对所述存储器组的访问是否结束;以及 一旦所述第一组件对所述存储器组的访问结束,就向所述第二组件准许对 所述存储器组的访问。
22. 如权利要求21所述的计算机可读介质,其特征在于,接收来自第一 组件的请求包括接收测试并置位指令。
23. 如权利要求21所述的计算机可读介质,其特征在于,确定所述存储 器组当前是否正在使用包括检查中断寄存器的比特。
24. 如权利要求21所述的计算机可读介质,其特征在于,准许对所述存 储器组的访问包括将中断寄存器的比特置位。
25. 如权利要求21所述的计算机可读介质,其特征在于,所述第一组件 是控制一个或多个其它端口主控对存储器组的访问的监督端口主控。
26. 如权利要求21所述的计算机可读介质,其特征在于,确定所述存储 器组是否可用包括访问存储器位置以确定所述存储器组的当前状态。
全文摘要
提供了一种利用多端口存储器件进行端口间通信的方法和系统。该存储器件包含中断寄存器、中断信号接口(例如,专用引脚)、中断掩码、以及与每个端口相关联的一个或多个消息缓冲器。当耦合到存储器件的第一端口的第一组件希望与耦合到该存储器件的第二端口的第二组件通信时,该第一组件向与第二端口相关联的消息缓冲器写入消息。第二端口的输入寄存器中的中断被置位以向耦合到第二端口的第二组件通知一新消息可用。一旦接收到该中断,第二组件读取中断寄存器以确定中断的性质。第二组件随后从消息缓冲器读取该消息。
文档编号G06F15/167GK101449262SQ200780018383
公开日2009年6月3日 申请日期2007年3月30日 优先权日2006年3月30日
发明者A·鲁贝格, D·K·金, D·李, D·沈, M·R·崔, S·金 申请人:晶像股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1