CN102439563A - 用于共享存储器的系统和方法 - Google Patents

用于共享存储器的系统和方法 Download PDF

Info

Publication number
CN102439563A
CN102439563A CN2010800213563A CN201080021356A CN102439563A CN 102439563 A CN102439563 A CN 102439563A CN 2010800213563 A CN2010800213563 A CN 2010800213563A CN 201080021356 A CN201080021356 A CN 201080021356A CN 102439563 A CN102439563 A CN 102439563A
Authority
CN
China
Prior art keywords
controller
soc
instruction code
code collection
downloaded
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
CN2010800213563A
Other languages
English (en)
Inventor
斯蒂文·托马斯·赫斯伯格
罗纳德·道格拉斯·约翰逊
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN102439563A publication Critical patent/CN102439563A/zh
Pending legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

提供了将多个SoC(片上系统)与单个共享存储装置接口连接的系统和方法。本公开的系统和方法用于控制将操作代码下载至两个或者多个SoC控制器电路(202、204),所述电路共享包含操作代码的存储器(210)和公共通信总线(212),其中每一个控制器(202、204)在正常运行下都是通信总线(212)的主控制器。所述系统和方法包括顺序地控制每一个SoC控制器电路(202、204)对通信总线(212)的访问,以便允许每一个装置独立地下载公共操作代码。所述系统和方法利用独立的初始化电路或者装置(214),并且将控制器(202、204)串联连接在一起成为链,使得每一个控制器在链上的前一控制器已经完成其代码下载之前都保持在复位状态,以阻止通信总线(212)访问。

Description

用于共享存储器的系统和方法
相关临时申请的参考
本申请要求2009年5月15日提交的名称为“用于主控制器集成电路之间共享存储器的系统和方法(System and Method for Sharing Memorybetween Master Controller Integrated Circuits)”的临时申请No.61/178,683的优先权。
技术领域
本公开大体涉及集成电路和存储装置,更具体地涉及用于将多个SoC(片上系统)与单个共享存储装置接口连接(interface)的系统和方法。
背景技术
今天,用在诸如视频前端信号分发系统和视频机顶盒控制器等设备中的电子设计包括多个被称作SoC(片上系统)的复杂集成电路并不罕见。SoC典型地包括功能集,包括如在信号处理链中找到的信号调制或解调、信号编码或解码以及信号压缩或解压缩。SoC还典型地包括可编程控制器或者微处理器,用于控制这些功能中的每一个以及操作设备装置所需要的许多外部接口功能。
用于SoC的编程代码通常可以存储在外部存储装置中,诸如快闪存储装置。SoC典型地使用串行外设接口(SPI)总线在上电或复位时下载软件映像(software image)。在该操作期间,SoC用作SPI主控装置(master)并且预期所述快闪存储装置作为SPI从属装置(slave)响应。因为每一个SoC都可以执行相同的代码映像,使用单个快闪存储装置节省了印制电路板空间、物料成本费用和制造成本。但是,如果多个SoC试图同时访问共享的存储装置,将出现信令冲突。因为每一个SoC都可以自主地运行,单独的存储器可以与每一个SoC相连。但是,如果要在多个SoC装置的每一个SoC中都加载相同的代码映像,这种结构是低效的。需要有一种系统和方法能够克服将多个主控制器与单个共享存储装置接口连接的问题。
发明内容
提供了一种用于将多个可编程控制器与单个共享存储器接口连接的系统和方法,所述方法包括:存储由多个可编程控制器使用的指令代码集,通过公共通信总线将该指令代码集下载至第一可编程控制器,以及当完成将该指令代码集下载至第一可编程控制器时,通过公共通信总线将该指令代码集下载至第二可编程控制器。
附图说明
根据优选实施例的以下详细说明中描述或者理解本公开所述的这些和其他方面、特征和优势,所述优选实施例结合附图来阅读理解。
在图中,相似的参考数字在整个视图中表示类似的元件。
图1是根据本公开的示例视频控制器装置的方框图;
图2是根据本公开的用于将多个SoC(片上系统)与单个共享存储装置接口相连的示例系统的方框图;
图3是根据本公开的用于将多个SoC(片上系统)与单个共享存储装置接口相连的示例方法的流程图;以及
图4阐明了根据本公开实施例的示例信号时序图。
应当理解的是附图是出于阐明本公开所述概念的目的,但不一定是阐明本公开的唯一可能结构。
具体实施方式
应当理解,可以用硬件、软件或其组合的各种形式实现图中所示的元件。优选地,在一个或者多个适当编程的通用设备上以硬件和软件组合的方式来实现这些元件,所述设备可以包括处理器、存储器和输入/输出接口。本文中,短语“相连”被定义为表示直接相连或者通过一个或者多个中间部件间接相连。这种中间部件可以包括基于硬件和软件的部件。
本说明书阐明了本公开的原理。应当理解,本领域普通技术人员能够设计尽管没有在此明确地描述或者示出、但是体现了本公开原理并且包括在其精神和范围内的各种结构。
在此列举的全部示例和条件语言均为教育的目的,为了帮助读者理解本公开原理以及由发明人贡献的推进本领域的理念,并被解释为不局限于这些具体列举的示例和条件。
此外,在此列举本公开原理、方面和实施例及其具体示例的全部陈述都旨在包括其结构和功能上的等同物。另外,其意图是这种等同物既包括当前已知的等同物也包括未来发展的等同物,即所开发的执行相同功能的任何元件,而与结构无关。
因此,例如,本领域普通技术人员应当理解在此表示的方框图代表实现本公开原理的说明性电路的概念视图。类似地,应当理解,任何流程图表、流程图、状态转移图、伪代码等等代表可以实质上以计算机可读介质表示并且因此可被计算机或者处理器执行的各种过程,无论这种计算机或者处理器是否明确地示出。
通过使用专用硬件以及与适当软件相关联的能够执行软件的硬件,可提供图中所示各种元件的功能。当由处理器来提供时,所述功能可以由单个专用处理器、单个共享处理器或者其中某些是共享的多个独立的处理器来提供。此外,术语“处理器”或“控制器”的明确使用不应当被解释为专指能够执行软件的硬件,而是可以隐含地包括但不限于数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)和非易失性存储装置。
还可以包括其他的常规和/或定制硬件。类似地,图中所示的任何开关只是概念性的。可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的相互作用或者甚至手动地实现它们的功能,可以从上下文中更具体地理解实施者可选择具体技术。
在本文的权利要求中,表示为用于执行特定功能的装置的任何元件都旨在包括执行该功能的任何方式,包括例如(a)执行该功能的电路元件的组合或者(b)包括固件、微代码等任何形式的软件,与合适的电路结合用于运行该软件来执行该功能。由这些权利要求限定的本公开在于如下事实:以权利要求所要求的方式组合和结合由各种所列举的装置提供的功能。因此认为,能够提供那些功能的任何装置都等同于在此示出的这些装置。
所公开的实施例涉及将多于一个片上系统(SoC)集成电路与共享存储器接口连接的问题。更具体地,实施例针对当使用诸如SPI总线之类的单个通信总线连接每一个只作主控装置(master-only)的SoC时,从诸如SPI总线快闪存储器之类的单个存储装置引导多个SoC的问题。
本公开的系统和方法用于控制将操作代码下载至共享公共存储器和公共通信总线的两个或者多个“片上系统”(SoC)控制器电路,其中每一个控制器在正常运行下都是通信总线的主控制器。本公开包括顺序地控制每一个SoC控制器电路对通信总线的访问,以便允许每一个装置独立地下载公共操作代码。本公开可以利用单独的初始化电路或者装置,以及将控制器串联连接在一起成为链,并且可以要求每一个控制器在链上的前一控制器已经完成其代码下载之前保持在复位状态,以防止通信总线访问。
现在参考图1,示出了根据本发明一方面的视频控制器设备10的实施例的方框图。设备10可以集成到诸如数字电视或者例如机顶盒之类的显示设备中。在一个实施例中,视频控制器设备10是个人录像机(PVR)。在另一个实施例中,视频控制器设备10是数字录像机(DVR)。在另外一个实施例中,视频控制器设备10是视频前端信号分发设备的一部分。应当理解,视频控制器设备10可以是用于播放和/或记录节目的任何电子设备,并且不受限于上面给出的示例。
设备10包括用于接收多媒体节目内容的接收机功能。设备10包括用于接收输入信号的接口12。接口12包括接收机/调谐器,并且向处理器14和/或存储器16提供包含多媒体节目内容数据的输出信号。这些数据可以是模拟或者数字格式的广播信号18的形式。在广播信号是模拟信号的情况下,模拟信号被转换为数字信号。在一个实施例中,广播信号是从有线电视提供商经缆线接收的MPEG数据流。在另一个实施例中,广播信号是从卫星电视提供商提供的卫星广播接收的。在另外一个实施例中,广播信号是从电视广播公司(例如电视台)的广播塔经无线电波传输的。应当理解,广播信号可以是用于呈现在音频/视频显示设备上的任何信号,并且不受限于前述实施例。
如图1所示,视频控制器设备10还包括用于通信信息的总线20、与总线20相连的用于处理信息和指令的处理器14、以及与处理器14相连的用于存储针对处理器14的信息和指令的存储器16(例如易失性或非易失性存储器,包括随机存取存储器、静态RAM、动态RAM、只读存储器、可编程ROM、快闪存储器、EPROM、EEPROM等)。应当理解,数据存储装置可被提供用于存储节目内容数据,并且可以是用于存储数字数据的任何存储器或者存储介质,诸如磁盘或光盘、以及盘驱动。
在示例配置中,视频控制器设备10包括用于解码和编码视频信号的系统100,该系统用于接收包含节目内容的广播信号18,并且将模拟信号数字化为数字格式用于回放和/或存储。在该实施例中,系统100包括至少4个经由总线112与共享存储器110相连的SoC 102-104。当启动时需要操作代码时或者当系统或者设备重启时,每一个SoC经由总线112顺序地访问存储器110。下面将参考图2-图4更加详细地描述系统100的操作,其中系统100在其他的实施例中被表示为系统200。应当理解,每一个SoC也独立地与总线20相连,该总线可以是用于在处理器14与SoC之间交换数据的任何通信总线(即总线20是独立的并且不与总线112相连)。在一个实施例中,总线20是以太网连接。
设备10可以还包括电源和用于方便记录和回放处理的其他辅助部件(未示出)。视频控制器设备10也包括数字视频编码器/解码器,作为接口12的一部分,用于按照数字格式从系统100接收已记录的节目或者已处理的数据,并且解码信号以便呈现在音频/视频显示设备22上。所述音频/视频显示设备22可以是电视、PVR显示屏或者其他这种显示器。替代地,在接口12中的数字视频编码器/解码器可以作为通信系统的一部分,提供数字视频信号以分发至多个显示设备。
视频控制器设备10还操作来经由诸如接口12的接口接收用户命令24。用户命令可以从遥控器中发出,该遥控器通过无线连接与设备通信相连,或者可以手动输入用户命令。应当理解,可以响应于与音频/视频显示设备22上呈现的图形用户界面的相互作用,来接收用户命令,音频/视频显示设备22可以与设备10集成或者外部连接至设备10。
图2示出了用于解码和编码视频信号的系统200的实施例。系统200可被包括作为诸如图1所描述的视频控制器设备10等信号接收系统的一部分。系统200包括4个SoC,标记为SoC(1)202、SoC(2)204、SoC(3)206以及SoC(4)208。存储装置210,例如SPI快闪,通过公共SPI总线212与每一个SoC相连。每一个SoC都具有与公共SPI总线212相连的至少4条信号线,即芯片选择信号SPI_CS_n、时钟信号SPI_CLK、数字输入信号SPI_DI以及数字输出信号SPI_DO。监控器IC(supervisor IC)214与SoC(1)202相连并且用于初始化。为了允许可以从共享的SPI快闪210对每一个SoC编程,每一个SoC按顺序访问所述存储装置,序列中的前一SoC利用复位输入信号来控制当前SoC的访问的发起。提供给序列中第一SoC(例如Soc(1)202)的复位信号通常由监控器IC 214控制,所述监控器IC 214对于系统200或者主系统设备(诸如图1中的视频控制器设备10),监视系统或者局部复位的状态、启动条件,或者电压供应测量。应当理解,某种形式的复位控制是必要的。监控器IC 214提供该控制并且只依赖于系统的电压供应电平。然而,可以根据整个系统的其他部分,通过来自另一处理器或者装置(例如图1所示的处理器14)的信号,来控制复位。编程头端224可以提供一种用于系统200复位控制的替代方式,以自主地读取/写入SPI快闪设备210。
当监控器IC 214确定电压供应在容限内并且向第一SoC释放复位信号时,第一SoC 202将控制SPI总线212,并且开始从存储装置210下载代码,同时保持使得序列中的下一SoC(例如SoC(2)204等)处于复位状态的输出信号有效,例如Reset_GPIO_n,其中GPIO代表通用输入/输出。下一SoC也具有使得序列中的下一SoC处于复位的输出信号,并且以此类推至序列的最后。
来自每一个SoC的相同复位输出信号,即Reset_GPIO_n,也可以控制开关装置,例如(场效应晶体管)FET总线开关,在图中示出为在与每一个SoC的接口处接入SPI总线212,分别为FET 216、218、220和222。如果SoC被保持在复位状态时未使所有的SPI总线信号都是三态的,例如芯片选择信号SPI_CS_n和数字输入信号SPI_DI,则FET总线开关是必要的。如果SoC处于复位状态,则针对该SoC的SPI总线信号,FET总线开关将关断。一旦SoC完成了软件映像的下载,该SoC将改变其至通用输入的SPI总线信号的模式,这释放了SPI总线以由序列中的下一SoC使用。由于SoC不再驱动SPI总线信号,针对该SoC的SPI总线信号上的FET总线开关可保留在接通位置。另外,三态(tri-statable)缓冲器可用于替代FET总线开关。然而,保留FET总线开关在接通位置,这不必产生用于关闭三态缓冲器所需的单独信号,从而简化了设计。控制信号的消除是采用FET总线开关而不采用三态缓冲器的一个优势。
已经完成软件映像下载的SoC(在这种情况下是SoC(1)202)现在把复位信号释放给序列中的下一SoC,SoC(2)204,该信号接通针对该SoC的FET总线开关,即FET 218,并且开始针对该SoC的软件下载操作。对于序列中的每一个SoC,重复并且继续这些相同的步骤。当序列中最后一个SoC完成下载操作并且释放了复位信号时,该信号被送回至序列中的第一SoC,这表示所有SoC都已经完成下载操作并且正在运行应用程序。第一SoC,即SoC(1)202,现在可以使用SPI总线212重新与快闪存储器210连接,这是因为链上的所有其他SoC不再驱动SPI总线212。SPI总线的最终释放和周转将允许快闪存储器210被用于系统的非易失性存储,其中SoC(1)202作为针对所有SoC的接口设备。
重要的是要注意,尽管图2中的系统200以及图1中的系统100包括了一组4个SoC,但是该结构可被调整为包括不同数目的SoC。例如,可以包括2个SoC,并且可以用通过公共通信总线从共享存储器可下载的代码映像进行编程。另外,可以包括多于4个SoC,并且可以通过公共通信与包含可下载代码映像的共享存储器相连。此外,尽管存储器最高效使用出现在当相同软件代码映像下载至每一个SoC时,但是当对于每一个SoC的软件代码映像存在不同时所述结构也可以被有利地应用。例如,可以将单独的文件或者代码部分添加到对于每一个SoC都相同的代码映像,所述文件或者代码部分包含对于每一个SoC的差异,诸如指令代码的起始地址的变化。
如图1和图2所述,诸如存储器110或存储器210之类的存储器可以在多个控制器或者SoC之间共享。重要的是要注意,全部或者部分存储器可以在这些控制器或者SoC中的一个或者多个之间是共享的和公共的。此外,存储器的实现可以包括若干可能的实施例,诸如单个存储装置,或者替代地,多于一个存储电路连接在一起来形成共享的或者公共的存储器。还有,存储器可以与其他电路(诸如总线通信电路的部分)一起包括在较大电路中。最后,存储器可以利用适合存储指令代码的任何现有存储技术,包括但不限于静态随机存取存储器(SRAM)、只读存储器(ROM)以及硬盘驱动。
参考图3至图4,将描述根据图1和图2所示实施例的一种用于将多个SoC(片上系统)与单个共享存储装置接口连接的方法,其中图3是用于解释示例方法的流程图,图4阐明了示例信号时序图。
初始,在步骤302中,系统200上电并且试图启动或者引导,监控器IC 214监视电源向系统200提供各种电压。在步骤304中,监控器IC 214确定供电电压是否在预定容限内,例如供电电压是否高于预定电压。如果所述供电电压没有在预定容限内,监控器IC 214将继续监视供电电压。否则,监控器IC 214确定供电电压良好,例如图4中所示的VCC 402为高,并且监控器IC 214将自己的输出信号设置为高,例如如图4所示,SUPERVISOR信号404为高。监控器IC 214的输出与SoC(1)202的复位输入(Reset_n)406相连,在步骤306中,复位输入(Reset_n)406随后变高,并且使得SoC(1)202能够访问存储器210并且通过通信总线212下载需要的代码。当SoC(1)202正在访问SPI快闪210时,SoC(1)202的输出(即Reset_GPIO_n 408)保持下一SoC的复位输入处在低态以阻止该下一SoC(例如SoC(2)204)访问存储装置210。
然后,在步骤308中,SoC(1)202确定代码的下载是否完成,如果没有,继续下载代码。在一个实施例中,SoC通过执行已下载的代码来确定下载是否完成。在该执行代码的开始处附近是用于停止驱动SPI总线接口并且释放下一SoC的复位的指令。如果在步骤308中SoC(1)202已经确定下载完成,则SoC(1)202把其输出信号(即Reset_GPIO_n408)设定为高态,这随后导致SoC(2)204的复位输入(Reset_n)410变为高态。当SoC(2)204的复位输入(Reset_n)410转换为高态时,在步骤310,SoC(2)204退出复位,访问存储装置210并且从存储装置210下载需要的代码。
所述方法继续直至剩余的SoC完成下载为止。例如,在步骤312中,SoC(2)204确定是否完成代码下载,并且如果没有,继续下载代码。如果在步骤312中SoC(2)204已经确定下载完成,则SoC(2)204把其输出信号(即Reset_GPIO_n 412)设定为高态,这随后导致SoC(3)206的复位输入(Reset_n)414变为高态。当SoC(3)206的复位输入(Reset_n)414转换为高态时,在步骤314,SoC(3)206退出复位,访问存储装置210并且从存储装置210下载需要的代码。
在步骤316-320中,当Reset_GPIO_n 416和复位输入(Reset_n)418变为高态时,所述方法前进到对于剩余的SoC(即SoC(4)208)下载代码。如果在步骤320中,已经确定对于最后一个SoC完成了代码的下载,则在步骤322中把最后一个SoC的输出信号(即Reset_GPIO_n420)反馈给第一SoC的输入,例如SoC(1)INT_n 422。对第一SoC进行编程以在输入信号变为高态时重新与通信总线212(例如SPI总线)连接。
重要的是要注意,尽管过程300的步骤描述了对一组4个SoC的编程,但是所述步骤可以调整为编程不同数量的SoC。例如,通过删除步骤314-320可以编程2个SoC。此外,通过对每一个额外的SoC增加类似于步骤314-316的步骤,可以用过程300编程多于4个SoC。
对于第一SoC,即SoC(1)202,重要的是要知道其他SoC下载操作的完成,因为该第一设备可以成为单个主控制器,并且在该设计的正常运行期间对存储装置的访问单点,即SoC(1)202,也可以成为主控制器。如果其他SoC之一需要读取或者写入存取存储装置,在该SoC和第一SoC之间利用例如标准串行通信总线来通信命令/数据结构。在一个实施例中,SoC之间的串行通信将通过UART信道进行,例如在SoC(1)202上示出的UART0、UART1、UART2和UART3。使用一个SoC作为至存储装置的访问单点,这消除了对所有SoC协商访问存储装置的需要,简化了SoC之间的通信,消除了存储装置通信总线212上的任何冲突。此外,如果任何SoC经历软复位,最后一个SoC的复位输出信号,即Reset_GPIO_n,将变成有效的,这指示第一SoC发起系统的完整复位。
此外,通过编程工具可以实现对诸如系统200等具有多个主控SoC的系统的存储装置的编程,其中在存储装置和SoC在线路中(in-circuit)的情况下使用编程工具,所述编程工具使用经由线226至系统的监控器IC以及至序列中第一SoC上的FET总线开关的输入,来指示该编程工具的存在。该编程工具可以通过编程头端224与系统200相连。当监控器IC 214得到来自编程头端的信号时,第一SoC被保持在复位,这将下一SoC保持在复位,以此类推直到序列结尾。由于所有SoC被保持在复位并且编程工具已经关断针对第一SoC的FET总线开关,所述工具现在可以无冲突地对存储装置进行编程。
图2中的实施例描述了用于解码和编码视频信号的系统。重要的是要注意,图2中所描述的方面可以同样地应用于包含共享公共存储器的多个控制器或SoC的其他系统。另外,图2描述了使用四个SoC的实施例。图2所述的方面可以同样应用于包括共享公共存储器的更多或更少SoC的实施例。
提供了一种系统和方法,使得多个SoC(片上系统)在设备启动或引导时能够从单个SPI快闪存储装置下载代码,然后共享该单个存储装置用于所有SoC的非易失性存储。本公开的系统和方法涉及控制将操作代码下载至共享单个公共存储器和公共通信总线的两个或者多个“片上系统”(SoC)控制器电路,其中每一个控制器在正常运行下都是通信总线的主控制器。本公开涉及顺序地控制每一个SoC控制器电路对通信总线的访问,以便允许每一个设备独立地下载公共操作代码。本公开可以利用独立的初始化电路或者装置,以及将控制器串联连接在一起成为链,并且可以要求每一个控制器在链上的前一控制器已经完成其代码下载之前保持在复位状态以阻止访问通信总线。可以通过包括作为顺序过程的一部分而受控的开关(诸如FET开关),来解决每一个SoC无法完全关闭其SPI管脚的可能性。最后,系统和方法利用外部编程工具满足了对系统内快闪存储装置进行编程的需要。
根据本公开的一个方面,提供了一种装置,包括:存储器,所述存储器存储由多个控制器(例如至少2个)使用的指令代码集并且通过公共通信总线提供该指令代码集;与存储器相连的第一控制器,可编程的第一控制器通过公共通信总线下载该指令代码集;以及与存储器和第一控制器相连的第二控制器,当完成将该指令代码集下载至所述第一控制器时所述第二控制器通过公共通信总线下载该指令代码集。
在一个方面,当第一控制器正在下载该组指令代码时,第一控制器阻止第二控制器对通信总线的访问。在另一个方面,第一控制器通过向第二控制器提供信号来阻止访问,所述信号将第二控制器保持在复位状态。在另外一个方面,当完成将该指令代码集下载至第一控制器时,开关装置把第一控制器从通信总线断开。在又一个方面,所述装置还包括与第一控制器相连的初始化设备,其中初始化设备提供用于复位第一控制器的信号以便开始将该指令代码集顺序下载至第一和第二控制器。
上述实施例描述了用于将多个控制器或SoC与单个共享存储装置接口连接的系统和方法。为了允许从共享SPI快闪对每一个SoC编程,每一个SoC顺序访问存储装置,序列中的前一SoC利用复位输入信号来控制当前SoC的访问的发起。当应用程序在每一个SoC上运行时,如果多于1个SoC需要读取或者写入非易失性参数,单个SoC将接口连接所述存储装置以阻止冲突。可以通过包括作为顺序过程的一部分而受控的开关(诸如FET开关),来解决每一个SoC无法完全关闭其SPI管脚的可能性。最后,所述系统和方法利用外部编程工具满足了对系统内存储装置编程的需要。
尽管在此详细地示出并且描述了结合本公开教义的实施例,但是本领域普通技术人员可以容易地设计仍然结合这些教义的许多其他的变化实施例。已经描述了用于将多个SoC与共享存储器接口连接的系统和方法的优选实施例(旨在阐明而非限制),需要注意的是本领域普通技术人员根据上述教义可以作出修改和改变。因此,应当理解可以在本公开所公开的具体实施例中作出变化,所述变化落在由所附权利要求所限定的本公开的范围内。

Claims (20)

1.一种装置(200),包括:
存储器(210),存储由至少2个控制器(202、204)使用的指令代码集,并且通过公共通信总线(212)提供所述指令代码集;
与存储器(210)相连的第一控制器(202),可编程的第一控制器(202)通过公共通信总线(212)下载所述指令代码集;以及
与存储器(210)和第一控制器(202)相连的第二控制器(204),当完成将所述指令代码集下载至所述第一控制器(202)时,所述第二控制器(204)通过公共通信总线(212)下载所述指令代码集。
2.根据权利要求1所述的装置(200),其中当所述第一控制器(202)正在下载所述指令代码集时,所述第一控制器(202)阻止所述第二控制器(204)对通信总线(212)的访问。
3.根据权利要求2所述的装置(200),其中所述第一控制器(202)通过向所述第二控制器(204)提供信号来阻止访问,所述信号将所述第二控制器(204)保持在复位状态。
4.根据权利要求1所述的装置(200),其中当完成将所述指令代码集下载至所述第一控制器(202)时,所述第一控制器(202)把自己与通信总线(212)断开。
5.根据权利要求1所述的装置(200),其中当完成将所述指令代码集下载至所述第一控制器(202)时,开关装置(216)把所述第一控制器(202)与通信总线(212)断开。
6.根据权利要求5所述的装置(200),其中所述开关装置(216)是场效应晶体管FET总线开关。
7.根据权利要求5所述的装置(200),其中所述开关装置(216)是三态缓冲器。
8.根据权利要求1所述的装置(200),其中当完成将所述指令代码集下载至所述第二控制器(204)时,所述第二控制器(204)向所述第一控制器(202)提供信号,所述信号将所述第一控制器(202)与所述通信总线(212)相连。
9.根据权利要求1所述的装置(200),还包括与所述第一控制器(202)相连的初始化设备(214),其中所述初始化设备(214)提供用于复位所述第一控制器(202)的信号,以发起将所述指令代码集顺序下载至所述第一和第二控制器(202、204)。
10.根据权利要求9所述的装置,其中所述初始化设备(214)配置用于在所述装置的供电电压超过预定电压时提供所述信号。
11.一种用于将多个控制器与单个共享存储器接口连接的方法,所述方法包括:
存储由多个控制器(202、204、206、208)使用的指令代码集;
通过公共通信总线(212)将所述指令代码集(306)下载至第一控制器(202);以及
当完成所述指令代码集下载至所述第一控制器(202)时,通过公共通信总线(212)将所述指令代码集下载至第二控制器(204)。
12.根据权利要求11所述的方法,还包括:当所述第一控制器(202)正在下载所述指令代码集时,阻止所述第二控制器(204)对通信总线(212)的访问。
13.根据权利要求12所述的方法,其中阻止访问步骤还包括:由所述第一控制器(202)向所述第二控制器(204)提供信号,所述信号将所述第二控制器(204)保持在复位状态。
14.根据权利要求11所述的方法,还包括:当完成(308)将所述指令代码集下载至所述第一控制器(202)时,把所述第一控制器(202)与通信总线(212)断开。
15.根据权利要求11所述的方法,还包括:当完成(308)将所述指令代码集下载至所述第一控制器(202)时,利用开关装置(216)把所述第一控制器(202)与通信总线(212)断开。
16.根据权利要求15所述的方法,其中所述开关装置(216)是场效应晶体管FET总线开关或者三态缓冲器。
17.根据权利要求11所述的方法,还包括:当完成将所述指令代码集下载至所述第二控制器(204)时,从所述第二控制器(204)向所述第一控制器(202)提供信号(322),所述信号将所述第一控制器(202)与通信总线(212)相连。
18.根据权利要求11所述的方法,还包括:提供初始化信号(306)来复位所述第一控制器(202),以发起将所述指令代码集顺序下载至所述第一和第二控制器(202、204)。
19.根据权利要求18所述的方法,其中当供电电压超过预定电压时(304)提供所述初始化信号。
20.一种设备(200),包括:
用于存储由多个控制器(202、204、206、208)使用的指令代码集的装置(210);
用于通过公共通信总线(212)将所述指令代码集下载至第一控制器(202)的装置;以及
用于当完成将所述指令代码集下载至所述第一控制器(202)时通过公共通信总线(212)将所述指令代码集下载至第二控制器(204)的装置。
CN2010800213563A 2009-05-15 2010-04-23 用于共享存储器的系统和方法 Pending CN102439563A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17868309P 2009-05-15 2009-05-15
US61/178,683 2009-05-15
PCT/US2010/032163 WO2010132189A1 (en) 2009-05-15 2010-04-23 System and method for sharing memory

Publications (1)

Publication Number Publication Date
CN102439563A true CN102439563A (zh) 2012-05-02

Family

ID=42286720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800213563A Pending CN102439563A (zh) 2009-05-15 2010-04-23 用于共享存储器的系统和方法

Country Status (6)

Country Link
US (1) US20120059961A1 (zh)
EP (1) EP2430528A1 (zh)
JP (1) JP2012527037A (zh)
KR (1) KR20120026052A (zh)
CN (1) CN102439563A (zh)
WO (1) WO2010132189A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761209A (zh) * 2012-09-06 2014-04-30 硅实验室公司 向设备提供串行下载路径
CN111752895A (zh) * 2020-06-28 2020-10-09 北京经纬恒润科技有限公司 一种多系统级芯片之间的日志存储方法及装置
CN112035393A (zh) * 2020-09-09 2020-12-04 杭州海康威视数字技术股份有限公司 一种节约双片上系统存储资源的方法、双片上系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150254198A1 (en) * 2013-03-15 2015-09-10 Google Inc. Methods and apparatus related to bus arbitration within a multi-master system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398124A (ja) * 1989-09-11 1991-04-23 Nec Eng Ltd マイクロプログラムのダウンロード方式
CN101000596A (zh) * 2007-01-22 2007-07-18 北京中星微电子有限公司 一种可实现芯片内多核间通信的芯片及通信方法
CN101183338A (zh) * 2006-09-29 2008-05-21 美国博通公司 本地片载系统和在本地片载系统中维持存储一致性的方法
CN101290592A (zh) * 2008-06-03 2008-10-22 浙江大学 一种mpsoc上多道程序共享spm的实现方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63184155A (ja) * 1987-01-27 1988-07-29 Toshiba Corp マルチプロセツサシステムのダウンロ−ド方式
WO1993000628A1 (en) * 1991-06-26 1993-01-07 Ast Research, Inc. Multiprocessor distributed initialization and self-test system
US5603055A (en) * 1994-01-27 1997-02-11 Vlsi Technology, Inc. Single shared ROM for storing keyboard microcontroller code portion and CPU code portion and disabling access to a portion while accessing to the other
US5819087A (en) * 1996-07-19 1998-10-06 Compaq Computer Corporation Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events
JP4226085B2 (ja) * 1996-10-31 2009-02-18 株式会社ルネサステクノロジ マイクロプロセッサ及びマルチプロセッサシステム
KR100240572B1 (ko) 1996-12-05 2000-01-15 윤종용 프로그램 메모리를 공유하는 멀티 프로세서 시스템
JPH11120002A (ja) * 1997-10-16 1999-04-30 Fujitsu Ltd 複数のdspを有する装置
US6011710A (en) * 1997-10-30 2000-01-04 Hewlett-Packard Company Capacitance reducing memory system, device and method
US6349051B1 (en) * 1998-01-29 2002-02-19 Micron Technology, Inc. High speed data bus
US6721860B2 (en) * 1998-01-29 2004-04-13 Micron Technology, Inc. Method for bus capacitance reduction
US6530033B1 (en) * 1999-10-28 2003-03-04 Hewlett-Packard Company Radial arm memory bus for a high availability computer system
US6934785B2 (en) * 2000-12-22 2005-08-23 Micron Technology, Inc. High speed interface with looped bus
US7380085B2 (en) * 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US7032106B2 (en) * 2001-12-27 2006-04-18 Computer Network Technology Corporation Method and apparatus for booting a microprocessor
US7146598B2 (en) * 2002-11-07 2006-12-05 Computer Network Technoloy Corp. Method and apparatus for configuring a programmable logic device
WO2004055670A2 (en) * 2002-12-18 2004-07-01 Koninklijke Philips Electronics N.V. Code download in a system having multiple integrated circuits with jtag capability
US7191265B1 (en) * 2003-04-29 2007-03-13 Cisco Technology, Inc. JTAG and boundary scan automatic chain selection
JP4289064B2 (ja) * 2003-07-25 2009-07-01 日本ビクター株式会社 ポータブル・オーディオ装置
US20070067614A1 (en) * 2005-09-20 2007-03-22 Berry Robert W Jr Booting multiple processors with a single flash ROM
US7831778B2 (en) * 2006-03-30 2010-11-09 Silicon Image, Inc. Shared nonvolatile memory architecture
US7676683B2 (en) * 2006-08-24 2010-03-09 Sony Computer Entertainment Inc. Method and system for rebooting a processor in a multi-processor system
US8285895B2 (en) * 2007-08-06 2012-10-09 Winbond Electronics Corporation Handshake free sharing in a computer architecture
CN101533384A (zh) * 2008-03-14 2009-09-16 施耐德电器工业公司 共享一片程序存储器的双处理器控制系统和方法
US8135890B2 (en) * 2008-05-28 2012-03-13 Rambus Inc. Selective switching of a memory bus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398124A (ja) * 1989-09-11 1991-04-23 Nec Eng Ltd マイクロプログラムのダウンロード方式
CN101183338A (zh) * 2006-09-29 2008-05-21 美国博通公司 本地片载系统和在本地片载系统中维持存储一致性的方法
CN101000596A (zh) * 2007-01-22 2007-07-18 北京中星微电子有限公司 一种可实现芯片内多核间通信的芯片及通信方法
CN101290592A (zh) * 2008-06-03 2008-10-22 浙江大学 一种mpsoc上多道程序共享spm的实现方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761209A (zh) * 2012-09-06 2014-04-30 硅实验室公司 向设备提供串行下载路径
CN103761209B (zh) * 2012-09-06 2017-08-18 硅实验室公司 向设备提供串行下载路径
CN111752895A (zh) * 2020-06-28 2020-10-09 北京经纬恒润科技有限公司 一种多系统级芯片之间的日志存储方法及装置
CN112035393A (zh) * 2020-09-09 2020-12-04 杭州海康威视数字技术股份有限公司 一种节约双片上系统存储资源的方法、双片上系统
WO2022052883A1 (zh) * 2020-09-09 2022-03-17 杭州海康威视数字技术股份有限公司 一种节约双片上系统存储资源的方法、双片上系统
CN112035393B (zh) * 2020-09-09 2023-11-24 杭州海康威视数字技术股份有限公司 一种节约双片上系统存储资源的方法、双片上系统

Also Published As

Publication number Publication date
WO2010132189A1 (en) 2010-11-18
JP2012527037A (ja) 2012-11-01
EP2430528A1 (en) 2012-03-21
US20120059961A1 (en) 2012-03-08
KR20120026052A (ko) 2012-03-16

Similar Documents

Publication Publication Date Title
CN102577358B (zh) 图像再现设备和方法
JP2003091703A (ja) カード装置
WO2006046506A1 (ja) 受信機器
CN101681551A (zh) 易于使用的通用遥控器
US20080126593A1 (en) Expansion module for a USB port and a method thereof
CN102439563A (zh) 用于共享存储器的系统和方法
CN102075710B (zh) 一种电视机的启动运行方法及电视机
JP4433311B2 (ja) 半導体記憶装置、電子機器及びモード設定方法
CN100483375C (zh) 多媒体模块卡、用于操作它的设备和集成多媒体系统
US20090037647A1 (en) Semiconductor memory card, method for controlling the same, and semiconductor memory system
CN102577423A (zh) 图像再现设备和控制图像再现设备的方法
JP2007079660A (ja) メモリカード用入出力装置及びその制御方法
CN201869296U (zh) 一种电视机
EP1401206A2 (en) Stream Data Processing Apparatus
CN115808964A (zh) 存储器、存储器控制方法和系统
US20100132008A1 (en) Semiconductor integrated circuit and video/audio processing device using the same
JP3849137B2 (ja) ディジタル放送受信機
US20140337554A1 (en) Electronic device and updating circuit thereof
JP2001357023A (ja) 半導体集積回路及びそれに内蔵された不揮発性メモリへの書き込み方法
KR20060087038A (ko) 마이크로컨트롤러 시스템 및 그 롬 데이터 프로그램 방법
CN100583959C (zh) 可省电的视频处理芯片、音像系统及其方法
CN101206901B (zh) 提供时移功能的广播接收设备和广播接收方法
JP2008269380A (ja) 情報処理装置
CN101021767A (zh) 存储卡装置
US20060282584A1 (en) Image processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C05 Deemed withdrawal (patent law before 1993)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120502