背景技术
为了在现有的诸如包含CPU的LSI这样的集成电路中实现或增加一种特定功能,一种要由CPU执行以实现或增加特定功能的程序被存储在掩模只读存储器(mask ROM)中。
然而,近来随着系统复杂性的增加和程序规模的增大,在将程序存储在掩模只读存储器中之后,发生故障或问题的风险也跟着增加。
鉴于以上所述,在该类型的集成电路中,建议将程序存储在可重写非易失存储器(闪速存储器)中。当出现故障或问题时,通过重写来更新程序。
然而,由于非易失存储器一般为外部储存器,因此就出现一个问题,即安装区增大并且增加了生产成本。
考虑到上述问题,建议向该类型的集成电路提供一种内部RAM。从上级或主集成电路下载的程序被存储在RAM中,并且由CPU执行。
在下文中,将描述现有的具有集成电路的信息处理装置,在该集成电路中通过串行通信下载的程序被存储在RAM中,然后由CPU执行。
请参考图1,现有信息处理装置包括主设备8和从设备9。
主设备8是一种LSI(大规模集成电路),其包括CPU 81和作为主接口的同步串行接口(SSI)82。
从设备9是一种包括适于通过串行通信从主设备8下载程序并执行该程序的CPU 91的LSI。CPU 91通过总线控制电路95连接于ROM 93和RAM 94。ROM 93存储执行下载操作的程序。RAM 94用来存储从主设备8下载的程序,该程序和工作数据一起由CPU 91执行。
从设备9还包括作为从接口的同步串行接口(SSI)92,该从接口通过通信路径/控制信号线10与主设备8进行通信并且从主设备8下载程序。
接着请参考图2,将描述从设备9中的同步串行接口92的结构。
参考图2,现有信息处理装置中的同步串行接口92包括通过总线控制电路95连接到CPU的总线接口电路921、发送FIFO 922和安排在发送侧上的发送电路923、接收FIFO 924和安排在接收侧上的接收电路或接收机电路925,以及用于执行与通信处理有关的定时控制电路926。
在来自于CPU 91的数据被发送到主设备8时,定时控制电路926就通过发送FIFO 922和发送电路或发射机电路923发送数据。另一方面,在接收了来自于主设备8的数据,定时控制电路926就使接收FIFO 924存储从主设备8发送的并由接收电路925接收的数据。存储在接收FIFO924中的数据由CPU 91通过总线接口电路921读取。
在下文中,将描述现有信息处理装置的操作。在此,将描述这样的实例,即从设备9通过四线式同步串行通信从主设备8下载程序,其中所述四线式同步串行通信利使用用于片选(CS)、时钟(CLK)、输出数据或串行数据输出(SDO)和输入数据或串行数据输入(SDI)的四个信号线。
参考图3和图4,将描述主设备8的操作。在图3和4中,CS、CLK和SDO分别表示片选、时钟和由主设备8生成的输出数据。在图4中,SDI表示提供给主设备8的输入数据。
参考图3和4,来自主设备8的输出数据(SDO)具有一种包括地址/控制段(以下简称为地址段,在图3和4中该字段具有8位的长度)和数据段(在图3和4中该段具有8位的长度)的格式,该数据段在地址段之后。图3示出了从主设备8将数据发送到从设备9的情况。图4示出了从从设备9将数据传送请求发送到主设备8的情况。虽然没有在图中说明,但是来自从设备9的输出数据(SDO)具有类似的格式,其包括地址段和在地址段之后的数据段。
当接收电路925接收到数据时,从设备9根据对数据的地址段的设置判断是正在接收来自主设备8的输入数据还是正在发送输出数据到主设备8。
具体地说,在从设备9中,接收电路925接收地址段中的数据并将其发送到定时控制电路926。当根据对地址段数据的设置判定正在发送输出数据到主设备8时,定时控制电路926从发送FIFO 922将数据读取到数据段中并通过发送电路923发送该数据。另一方面,如果判定正在接收来自主设备8的输入数据,那么由接收电路925接收的数据段中的数据被存储在接收FIFO 924中,如图5所示。在图5中,CS、CLK和SDI分别表示片选、时钟和主设备8提供给从设备9的输入数据或串行数据输入,以及接收FIFO表示存储在从设备9中的接收FIFO 924中的数据。
举例来说,日本专利申请公开(JP-A)号为H07-312627,2001-134543和2003-029809的专利申请公开了上述在主设备和从设备之间传送诸如程序这样的数据的技术。
然而,现有信息处理设备在以下方面是不利的。在程序规模增大的情况下,下级或从集成电路通过利用典型接口,诸如UART(通用异步收发器)来下载程序要花费很长的时间。为了高速下载程序,下级集成电路必须具有特定的或专用的高速接口。
在现有信息处理设备中,如图5所示,在单芯片传送中仅仅一个字节的有效数据(程序)可以被传送,这导致降低了信息吞吐量。因此,需要更长的时间下载程序。
附图说明
图1是示出现有信息处理装置的视图;
图2是示出图1中的现有信息处理装置中的同步串行接口的视图;
图3是用于描述图1现有信息处理装置中的主设备的一实例的操作时序图;
图4是用于描述图1现有信息处理装置中的主设备的另一实例的操作时序图;
图5是用于描述图1现有信息处理装置中的从设备的一个实例的操作时序图;
图6是示出根据本发明的信息处理设备的视图;
图7是示出根据本发明第一实施例的同步串行接口的视图;
图8是用于描述第一实施例中的主设备的操作实例的时序图;
图9是用于描述第一实施例中的主设备的操作实例的流程图;
图10是用于描述第一实施例中的从设备的操作实例的流程图;
图11是用于描述第一实施例中的从设备的操作的另一实例的流程图;
图12是用于描述第一实施例中的从设备的操作的实例的时序图;
图13是示出根据本发明第二实施例的同步串行接口的视图;
图14是用于描述第二实施例中的主设备的操作实例的流程图;
图15是用于描述第二实施例中的主设备的操作的另一实例的流程图;
图16是用于描述第二实施例中的从设备的操作实例的流程图;
图17是用于描述第二实施例中的从设备的操作的另一实例的流程图;
图18是示出根据本发明第三实施例的同步串行接口的视图;
图19是用于描述第三实施例中的主设备的操作实例的流程图;
图20是用于描述第三实施例中的主设备的操作的另一实例的流程图;
图21是用于描述第三实施例中的从设备的操作实例的流程图;
图22是用于描述第三实施例中的从设备的操作的另一实例的流程图;
图23是用于描述第三实施例中的从设备的操作的又一实例的流程图;以及
图24是用于以简化的方式描述第三实施例中的从设备的操作实例的时序图;以及
具体实施方式
现在将参考附图来描述本发明的优选实施例。
第一实施例:
参考图6,根据本发明的信息处理装置被用于移动电话。信息处理装置包括主设备1,执行协议处理的从设备2和执行其他外围功能处理的从设备3。
图6所示的信息处理装置包括GSM(全球数字移动电话系统)射频部4,W-CDMA(宽带码分多路访问)射频部5和天线6。通过天线6,信息处理装置根据通信系统GSM和W-CDMA中的一个与基站(未显示)通信。
主设备1是一种LSI(大规模集成电路),其包括CPU 11和作为主接口的同步串行接口(SSI)12。
从设备2是一种协议LSI,其包括用于通过同步串行通信从主设备1下载程序并执行该程序的CPU 21,并且其可适用于多种通信系统。CPU 21通过总线控制电路27连接于ROM 24和RAM 25。ROM 24存储执行下载操作的程序。RAM 25用来存储从主设备1下载的程序,该程序和工作数据一起由CPU 21执行。
从设备2包括GSM基带处理部26和W-CDMA基带处理部23。根据由CPU 21执行的程序,从设备2可适用于通信系统GSM和W-CDMA中的一个或两个。
从设备2还包括同步串行接口(SSI)22,用于通过通信路径/控制信号线7与主设备1进行通信并且从主设备1下载程序。
从设备3是电源控制LSI或音源LSI,其通过通信路径/控制信号线7连接到主设备1。
现在参考图7,将描述从设备2中的同步串行接口22的结构。
参考图7,根据该具体实施例的同步串行接口22包括通过总线控制电路27连接于CPU 21的总线接口电路221,安排在传输侧上的发送FIFO222和发送电路(发射机电路)223,安排在接收侧上的接收FIFO 224和接收电路(接收机电路)225,以及用于执行与通信处理有关的定时控制电路226。
根据该具体实施例的同步串行接口22与图2所示的同步串行接口有以下方面不同。根据由主设备1控制的猝发(BURST)信号的状态,同步串行接口22断定来自于主设备1的接收数据的格式已经被修改,并且切换发送FIFO 222的功能以便使发送FIFO 222作为接收FIFO 224的扩展FIFO工作。
具体地说,当从设备2通过四线式同步串行通信从主设备1接收了接收数据时,定时控制电路226就使发送FIFO 222存储接收数据的地址/控制段(以下简称地址段)中的数据,以及如果猝发信号没被设置为有效时,使接收FIFO 224存储在地址段之后的数据段中的数据。
当将发送FIFO 222和接收FIFO 224完全装满时,定时控制电路226就通过总线接口电路221发送一个中断(INTR)信号给CPU 21。根据定时控制电路226提供的中断(INTR)信号,CPU 21通过总线接口电路221从发送FIFO 222和接收FIFO 224中读取接收数据,并将接收数据传送到RAM 25中的程序区。接着,从设备2准备下一次接收。
因此,在猝发信号有效时,定时控制电路226就断定将地址段当做数据段,并提取地址段中的作为重要数据(诸如程序)的数据,并且执行后续处理。
因此,与图3所示实例不同,主设备1可以传送数据,将地址段作为数据段对待,这如图8所示。因此,在地址段不冗余的情况下,数据的所有位都可能是重要数据(诸如程序)。在图8中,CS、CLK和SDO分别表示片选、时钟和由主设备1生成的输出数据或串行数据输出。
一旦通过四线式同步串行通信从主设备1接收了数据并且猝发信号有效,定时控制电路226就只使接收FIFO 224以类似于结合现有装置所描述的方式根据地址段中的设置来存储数据段中的数据。
接下来,将描述第一具体实施例的操作。在此,将描述从设备2通过四线式同步串行通信从主设备1下载程序的实例。在该情况下,根据在启动从设备2或取消复位状态之后所用网络的类型,要下载的程序可以是从设备2中所需要的协议组或信号处理程序(这同样适用于随后将描述的第二和第三实施例)。
参考图9,将描述主设备1的操作。参考图10、11和12将描述从设备2的操作。在图12中,CS、CLK和SDI分别表示片选、时钟和从主设备8提供的输入数据,接收FIFO和发送FIFO分别表示存储在接收FIFO224和发送FIFO 222中的数据。
参考图9,在该主设备1中,CPU 11开始下载程序的操作(步骤401)。首先,设置猝发信号有效(步骤402)。
接着,在程序的所有数据中,CPU 11传送对应于从设备2中的发送FIFO 222和接收FIFO 224的容量的第一个16字数据(步骤403)。在这种情况下,在通过将地址段视为数据段而修改了发送数据格式之后,CPU 11将第一个16字数据作为发送数据传送。在该实施例中,发送FIFO222和接收FIFO 224每个都是16字节FIFO。因此,CPU 11总共传送32字节(16字)数据。
接着,CPU 11判断是否已完成了对程序的所有数据的传送(步骤404)。如果没有完成,那么CPU 11就再次传送另一个16字(32字节)数据。
一旦完成对程序的所有数据的传送,CPU 11就把猝发信号设为无效(步骤405)。考虑到在从设备2中的处理时间,CPU 11在预定时间周期之后使从设备2复位(步骤406)。然后,结束下载操作(步骤407)。
参考图10,从设备2被启动或被取消了复位状态(步骤501)。CPU21根据ROM 24上的启动程序执行启动操作,并且判断在RAM 25上是否存在程序(步骤502)。在RAM 25上存在程序时,则CPU 21执行RAM 25上的程序(步骤503)。
在RAM 25上不存在任何程序时,CPU 21就启动ROM 24上的用于执行下载操作的下载程序,并且该CPU 21进入准备接收下载数据的备用状态。
参考图11,在图10的504步骤处的状态中,假定从设备2从主设备1接收下载数据(步骤601)。然后,定时控制电路226判断猝发信号是否有效(步骤602)。如果猝发信号无效,定时控制电路226就断定来自于主设备1的数据是普通数据(即其地址段中未包含程序的数据),并且执行正常通信处理的控制(步骤603)。具体地说,定时控制电路226仅仅使接收FIFO 224存储来自主设备1的下载数据的数据段中的数据,而不使发送FIFO 222存储地址段中的数据。
另一方面,如果猝发信号有效,定时控制电路226不仅使发送FIFO222存储来自主设备1的下载数据的地址段中的数据,而且还使接收FIFO224存储在地址段之后的数据段中的数据。当完全装满了发送FIFO 222和接收FIFO 224时,定时控制电路226便把一个给CPU 21的中断(INTR)信号设为有效。当中断(INTR)信号被置为有效时,CPU 21读取发送FIFO222和接收FIFO224中的数据,并且将数据传送给RAM 25上的程序区(步骤604),并且设置程序存在标记(步骤605)。
其后,CPU 21进入准备接收后续的下载数据的备用状态(步骤606)。
如上所述,在该实施例中,当猝发信号被置为有效时,从设备2断定将地址段作为了数据段。地址段中的数据也被作为重要数据(诸如程序)并执行后续处理。
因此,主设备1可以在猝发状态传送数据给从设备2,包括地址段和数据段中的重要数据(程序)。因此,增加了吞吐量而又缩短了下载时间(在下文中,这种操作方式被称为猝发模式)。
在该实施例中,从设备2在猝发模式期间将发送FIFO 222作为接收FIFO 224的扩展FIFO使用。因此,与配有大容量接收FIFO 224的结构相比较而言,其能够减少电路规模。
在该实施例中,已描述了有关将地址段作为数据段的实例。然而,本发明还包括当地址段不变而增加数据段长度(例如,从8位增加到16位)的实例。
第二实施例
在此实施例中的信息处理装置在将程序从主设备1下载到从设备2时,执行主设备1和从设备2之间的信息交换(hand-shaking)。
除了从设备2中的同步串行接口22具有不同于第一实施例的内部结构之外,在此实施例中的信息处理装置在结构上类似于第一实施例中的结构。
参考图13,根据第二实施例的同步串行接口22与图7第一实施例的不同点在于增加了一个从定时控制电路226到主设备1的中断(INTR)信号。
该中断(INTR)信号可由CPU 21将其设置为有效或无效。或者,可以基于硬件基础,即发送FIFO 222和接收FIFO 224是否分别是空的和不空的而自动地将中断(INTR)信号设置为有效或无效。在所示实例中,中断(INTR)信号由CPU 21设置。
接下来,将描述此实施例的操作。在此,将描述从设备2通过四线式同步串行通信从主设备1下载程序的实例。
参考图14和图15,将描述主设备1的操作。参考图16和17,将描述从设备2的操作。
首先参考图16,从设备2被启动或被取消了复位状态(步骤1101)。CPU 21根据ROM 24上的启动程序执行启动操作,并且判断在RAM 25上是否存在任何程序(步骤1102)。如果RAM 25上存在程序,则CPU 21执行RAM 25上的程序(步骤1103)。
当在RAM 25之上不存在任何程序时,CPU 21就将提供给主设备1的中断(INTR)信号设置为有效以发送一个下载请求给主设备1(步骤1104)。然后,CPU 21进入准备接收下载数据的备用状态(步骤1105)。
参考图14,主设备1的中央处理器11响应来自从设备2的中断(INTR)信号启动程序的下载操作(步骤901),并且设置猝发信号为有效(步骤902)。
接着,CPU 11通过将地址段作为数据段来修改发送数据的格式,并且传送程序的第一个16字(32字节)数据(步骤903)。CPU 11进入准备接收来自于从设备2的下载请求的备用状态。
参考图17,在图16的1105步骤处的状态中,从设备2从主设备1接收下载数据(步骤1201)。然后,CPU 21将提供给主设备的中断(INTR)信号设置成无效(步骤1202)。
接着,定时控制电路226判断猝发信号是否有效(步骤1203)。如果该猝发信号无效,定时控制电路226执行正常通信处理的控制(步骤1204)。
另一方面,如果猝发信号有效,那么定时控制电路226不仅使发送FIFO 222存储来自主设备1的下载数据的地址段中的数据,而且还使接收FIFO 224存储在地址段之后的数据段中的数据。然后,如果定时控制电路226将中断(INTR)信号设置成有效,那么CPU 21读取发送FIFO 222和接收FIFO 224中的数据,并且将数据传送给RAM 25上的程序区,设置程序存在标记(步骤1206),以及将提供给主设备1的中断(INTR)信号设置成有效(步骤1207)。
其后,CPU 21进入准备接收后续的下载数据的备用状态(步骤1208)。
参考图15,在图14步骤904处的状态中并且当中断(INTR)信号设置有效时,主设备1接收下载请求(步骤1001)。然后,CPU 11判断是否已完成了对程序的所有数据的传送(步骤1002)。
如果已完成对程序的所有数据的传送,CPU 11就将猝发信号设置成无效(步骤1003)。考虑到在从设备2中的处理时间,CPU 11在预定时间周期之后使从设备2复位(步骤1004)。然后,结束下载操作(步骤1005)。
另一方面,如果还没有传送完程序的全部数据,那么CPU 11就再次传送16字(32字节)数据(步骤1006),并且转入接收下一个下载请求的备用状态(步骤1007)。
如上所述,在此具体实施例中,可以可靠地对在主设备1和从设备2之间每次16字(32字节)的程序的接收进行确认。
第三实施例
在根据第三实施例的信息处理装置中,当从主设备1下载程序到从设备2时执行有效性检查。在有效性检查中,对下载的有效性进行判断,包括程序的大小和校验和。在这种情况下,基于硬件的猝发信号是不必要的。
除了从设备2中的同步串行接口22具有不同于第一具体实施例的内部结构之外,在此具体实施例中的信息处理装置在结构上类似于第一具体实施例中的结构。
参考图18,根据第三具体实施例的同步串行接口22与图13中的第二实施例的不同点在于以下方面:从设备2中的CPU 21响应来自于主设备1中的CPU 11的指令,从而通过总线接口电路221将猝发信号发送到定时控制电路226。由CPU 21将提供给主设备1的中断(INTR)信号设置为有效,并且当从主设备1接收数据时,在硬件基础上将中断(INTR)信号清除或改为无效。
接下来,将描述此实施例的操作。在此,将描述从设备2通过四线式同步串行通信从主设备1下载程序的实例。
参考图19和20,将描述主设备1的操作。参考图21到24,将描述从设备2的操作。在图24中,CLK和SDO分别表示时钟和由主设备1生成的输出数据或串行数据输出。INTR表示由从设备2产生的中断(INTR)信号。在图24中,输出数据SDO中的A和D分别表示被作为地址段和数据地址段的那些段。
参考图21,从设备2被启动或被取消了复位状态(步骤1601)。CPU21根据ROM 24上的启动程序执行启动操作,并且判断在RAM 25上是否存在任何程序(步骤1602)。
如果在RAM 25上存在程序,那么CPU 21设置程序存在标记,并发布启动通知给主设备1(步骤1603),并且执行RAM 25上的程序(步骤1604)。
另一方面,如果在RAM 25上不存在任何程序,那么CPU 21就设置程序不存在标记,并发布启动通知给主设备1(步骤1605)。然后,CPU21转入准备接收下载数据的备用状态(步骤1606)。
参考图19,在主设备1中,CPU 11响应由从设备2发布的启动通知的内容,并判断是否需要下载。如果需要下载,则启动下载操作(1401)。
在下载程序之前,CPU 11将有关要下载的程序的程序信息发送给从设备2(步骤1402,在图24中的t1和t2时刻)。在此实施例中,CPU 11将要传送的整个程序和数据的所有块的数目的校验和设置为程序信息,其中每个块包含32字节。CPU可以将其他信息,诸如目的地址设置为程序信息。
在发送了程序信息之后,CPU 11就向从设备2发送使从设备2中的同步串行接口22进入猝发模式的猝发设置指令(步骤1403,图24中的t3时刻)。
此后,CPU 11转入准备接收来自于从设备2的下载请求的备用状态(步骤1404)。
参考图23,从设备2从主设备1接收猝发设置指令(步骤1801)。在这种情况下,CPU 21通过总线控制电路27将同步串行接口22设置成猝发模式。
然后,CPU 21将提供给主设备1的中断(INTR)信号设置为有效(步骤1803,图24中的t4和t8时刻)。然后,结束接收猝发设置指令的操作(步骤1804)。
参考图20,假定在图19步骤1404处的状态中并且当中断(INTR)信号被设置有效时,主设备1接收下载请求(步骤1501,图24中的t4时刻)。
然后,CPU 11通过将地址段作为数据段修改发送数据的格式,并传送一个程序块(步骤1502,图24中的t5和t7时刻和t9和t11时刻之间)。然后,CPU 11判断是否已完成了对程序的所有块的传送(步骤1503)。如果没有完成所有块的传送,则CPU 11转入准备接收下载请求的备用状态(步骤1504)。
另一方面,如果已完成所有块的传送,但是考虑到从设备2中的处理时间,CPU 11在预定时间周期后才使从设备2复位(步骤1505)。然后,结束下载操作(步骤1506)。
参考图22,在图21的1606步骤处的状态中,从设备2从主设备1接收下载数据(步骤1701)。在这种情况下,定时控制电路226使发送FIFO 222存储来自主设备1的下载数据的地址段中的数据,并且也使接收FIFO 224存储在地址段后的数据段中的数据。当定时控制电路226将中断(INTR)信号设置为有效时,则CPU 21将接收数据传送到RAM 25上的程序区(步骤1702)。
接下来,CPU 21判断是否已完成了对所有块的接收(步骤1703)。在此,已作为程序信息预先通知了块的数目。如果还没有完成接收,则将提供给主设备1的中断(INTR)信号设置为有效(步骤1704,图24中的t8时刻)。然后,CPU转入准备接收下一块下载数据的备用状态(步骤1705)。
另一方面,在已完成了对所有块的接收时,CPU 21就计算总校验和并判断计算是否正确(步骤1706)。如果校验和的计算是正确的,那么就设置程序存在标记(步骤1707)。然后,结束下载操作而且CPU 21转入复位备用状态(步骤1708)。在这种情况下,提供给主设备1的中断(INTR)信号没有被设置为有效,主设备1可以确认已执行下载所有块的操作(图24中的t12时刻)。
如果校验和的计算是不正确的,那么CPU21就不设置程序存在标记并且结束下载操作。
如上所述,在此具体实施例中,在下载程序时执行包括程序的大小和校验和的下载操作的有效性检查。因此,可以改善下载操作的有效性。
虽然至此已结合优选具体实施例描述了本发明,但本领域熟练的技术人员在不脱离阐明在权力要求中的范围的情况下可以轻易地以各种方式来实施本发明。