发布信息

用于高速串行总线事务的方法、设备和系统与流程

作者:admin      2022-10-26 08:15:17     845



计算;推算;计数设备的制造及其应用技术用于高速串行总线事务的方法、设备和系统1.相关申请的交叉引用2.本技术是于2020年9月24日提交的美国非临时申请号17/030,664的国际申请,该申请要求于2020年3月9日提交的具有序列号为62/987,230的美国临时专利申请的权益,其内容通过引用并入本文。技术领域3.本公开内容一般涉及在串行总线上执行事务的系统,并且更具体地涉及其中主机设备使用具有预定延迟的一个或更多个外围设备执行事务的系统。背景技术:4.诸如汽车电子设备的高级应用具有增加来自非易失性存储器(例如,nor闪速存储器)的带宽的需要。同时,在这样的系统中,可能需要将设备引脚的数量保持在最低限度。5.图20a是根据实施方式的传统存储器系统2001的框图。系统2001可以包括主机微控制器单元(mcu)2003、第一nor闪存设备2005-0和第二nor闪存设备2005-1。mcu 2003可以通过“四通道”串行总线io[3:0]连接至nor闪存设备2005-0/2005-1。[0006]图20b示出了关于对与图20a的系统类似的系统的nor闪存设备的传统单字节访问的时序图。在传统访问中,芯片选择信号cs#可以变为低,从而选择nor闪存设备。然后可以在串行总线上发送命令和地址数据。对nor闪存设备的这种访问可能具有访问延迟。[0007]时序图2007-0和2007-1分别示出了50mhz和100mhz时钟速度下的传统单倍数据速率(sdr)访问。时序图2007-2和2007-3分别示出了200mhz和400mhz时钟速度下的传统双倍数据速率(ddr)访问。如上所述,nor闪存设备具有延迟(在图20a中指示为“虚拟”)。因此,在命令和地址数据之后,通过nor设备在串行总线上可以输出有效数据之前将存在一些延迟。在此期间,主机设备可以等待串行时钟sck的多个“虚拟”循环。[0008]图20b示出了命令/地址/数据时间如何在串行总线上随着时钟速度和数据速率增加而大大减少。然而,虽然已使事务开销最小化,但是虚拟时段保持相对恒定。因此,虚拟循环的数量增加了。如图所示,虽然在50mhz下操作的系统在100ns延迟时段期间将包括5个时钟,但是400mhz系统在100ns延迟时段期间将包括40个时钟。[0009]虽然其他类型的系统具有较快的数据吞吐量的潜力,但是这样的系统依赖于单独的数据和命令总线。例如,图21示出了传统动态随机存取存储器(dram)系统2101。系统2101可以使用由存储器控制器2103在一个单向总线(add/cmd)上发出的命令和地址数据来执行流水线指令,而数据可以由dram 2105在双向数据总线dq上接收或发送。然而,这样的能力需要单独的总线,这与图20a和图20b的布置不同。[0010]期望以某种方式实现提高具有发送命令和地址值两者以及对应的事务数据(例如,读取数据或写入数据)的串行总线的系统的速度(例如,数据吞吐量)。附图说明[0011]图1a和图1b是示出根据实施方式的具有可以在其上分离事务的串行总线的系统的图。[0012]图2是示出根据实施方式的分离事务的时序图。[0013]图3是示出根据实施方式的分离读取事务和写入事务的时序图。[0014]图4a至图4c是示出根据实施方式的使用具有相同或相似延迟的外围设备执行分离事务的系统的图。[0015]图5a至图5c是示出根据实施方式的使用具有不同延迟的外围设备执行分离事务的系统的图。[0016]图6a至图6c是示出根据实施方式的使用同一外围设备的不同部分执行分离事务的系统的图。[0017]图7a和图7b是示出根据实施方式的使用不同类型的外围设备执行分离事务的系统的图。[0018]图8a和图8b是示出根据实施方式的执行使用非串行总线信号完成的分离事务的系统的图。[0019]图9a和图9b是示出根据实施方式的不同串行总线类型上的分离事务的时序图。[0020]图10a至图10c是示出根据实施方式的确定附加外围设备的分离事务能力的系统的图。[0021]图11a至图11c是示出根据实施方式的分离事务指令的表格。[0022]图12是根据实施方式的存储器设备的框图。[0023]图13是根据实施方式的控制器设备的框图。[0024]图14是根据实施方式的调度器的框图。[0025]图15是根据实施方式的存储器设备的图。[0026]图16a和图16b是示出根据实施方式的系统的图。[0027]图17是根据实施方式的用于执行分离事务的方法的流程图。[0028]图18是根据实施方式的用于执行流水线分离事务指令的方法的流程图。[0029]图19是根据实施方式的用于生成用于分离事务的指令的方法的流程图。[0030]图20a和图20b是示出传统存储器系统和操作的图。[0031]图21是传统分离总线系统的框图。具体实施方式[0032]根据实施方式,系统可以包括可以在串行总线上执行分离事务的主机设备。分离事务可以包括主机设备在串行总线上启动外围设备中的操作,并且然后在期望的时间处随后完成这样的事务。在一些实施方式中,可以以流水线方式启动事务,包括在前一事务的延迟时段期间启动事务。[0033]在一些实施方式中,主机设备可以在串行总线上为存储器设备分离事务。这可以包括在具有不同延迟的存储器设备之间分离事务,以及在同一存储器设备的不同部分(例如,存储体)之间分离事务。[0034]在一些实施方式中,可以通过主机设备向外围设备发送第一指令来启动事务。可以通过主机设备向外围设备发送第二指令来完成事务。[0035]在一些实施方式中,主机设备可以在串行总线上获取关于外围设备的参数信息,以确定外围设备是否可以执行分离事务。然后主机设备可以向这样的外围设备发出分离事务命令。在一些实施方式中,主机设备可以包括用于优化使用分离事务的调度器。[0036]在以下各种实施方式中,相同的项目由相同的附图标记表示,但前导数字对应于图号。[0037]图1a是根据实施方式的系统100的框图。系统100可以包括控制器(例如,主机)设备102和外围系统104。控制器设备102可以通过串行总线108与外围系统104进行通信,该串行总线108可以与串行时钟(sck)110同步地发送和接收数据。串行总线108可以是可以发送命令(例如,指令)、地址和数据值(cmd/add/data)的双向总线。外围系统104可以包括一个或更多个目标位置(两个目标位置被示出为106-0/106-1)。目标位置106-0/106-1可以包括但不限于:不同设备、同一设备的不同部分或同一设备的不同功能。在一些实施方式中,目标位置106-0/106-1可以通过在串行总线108上发送的地址或相似信息、由控制器设备102发送的一个或更多个选择信号(selx)112或其组合来选择。应当理解,选择信号selx与串行总线108是分开的。[0038]控制器设备102和外围系统104能够执行分离事务。分离事务可以与传统事务形成对比。在传统事务中,控制器设备可以在串行总线上发出命令(例如,指令),并且外围系统可以以预定延迟(例如,预定数量的时钟循环)返回对应于该命令的结果。与传统事务不同,在分离事务中,控制器设备可以发出可以开始事务的命令。事务的完成可以或者可以不根据来自控制器设备的输出来计时。在一些实施方式中,分离事务可以是相对于外围设备的异步事务。[0039]图1b是示出根据实施方式的用于图1a的系统的分离事务操作的时序图。图1b包括多个波形:selx示出了用于选择外围系统104内的不同目标位置的选择信号;sck示出了串行时钟;以及cmd/add/data示出了串行总线上的动作。图1b示出了其中可以一个接一个地启动多个事务(在这种情况下为两个事务)并且然后随后完成多个事务(在这种情况下为两个事务)的流水线操作的一个实施方式。[0040]仍然参照图1b,在时间t0处,控制器设备可以启动具有由选择信号值sel0指示的目的地的第一事务。这样的动作可以包括控制器设备在串行总线上与sck同步地发送命令数据。可选地,这样的动作还可以包括发出地址和/或其他数据。[0041]在时间t1处,可以完成第一事务的启动。在所示的实施方式中,第一事务可以具有固有延迟114。也就是说,一旦启动了第一事务,外围系统可能直到时间t6才提供结果。[0042]在时间t2处,控制器设备可以启动具有由选择信号值sel1指示的另一目的地的第二事务。如在第一事务的情况下,这样的动作可以包括控制器设备在串行总线上与sck同步地发送命令数据(以及可能具有地址或其他数据)。在所示的实施方式中,可以在时间t1与时间t2之间禁用sck。这与在整个访问操作中维持sck的传统方法形成对比。然而,在其他实施方式中,可以不禁用sck。此外,可以在延迟时段114中发生启动第二事务。传统地,这样的时段可能被其中在串行总线上无法存在有效活动的sck循环(即,“虚拟”循环)占据。[0043]在时间t3处,一旦启动了第二事务,控制器设备就可以禁用sck。同样,这与可以维持虚拟sck循环的传统方法形成对比。然而,在其他实施方式中,可以不禁用sck。应当理解,虽然图1b示出了控制器设备启动两个流水线事务,但是其他实施方式可以发出更多的流水线事务。[0044]在一些实施方式中,第二事务可以具有比第一事务的延迟较小的延迟。因此,可以在第一事务之前完成第二事务。在时间t4处示出了这样的布置。[0045]在时间t4处,外围系统可以完成第二事务。这样的动作可以包括与sck同步地发送数据,因此sck可以在时间t4处(或之前)恢复。在一些实施方式中,这样的动作还可以包括控制器设备在串行总线上或经由串行总线外部的信号向外围系统发信号,或者反之亦然(外围系统向控制器设备发信号)。[0046]在时间t5处,可以完成第二事务。在所示的实施方式中,可以在时间t5与时间t6之间禁用sck。[0047]在时间t6处,在延迟时段114之后,外围系统可以完成第一事务。这样的动作可以包括与sck同步地发送数据,其中sck在时间t6处(或之前)恢复。在一些实施方式中,这样的动作还可以包括控制器设备在串行总线上或经由串行总线外部的信号向外围系统发信号,或者反之亦然。应当注意,虽然第一操作可以在最小延迟时段114(即,通过外围系统可实现的最低延迟)内完成,但是在一些实施方式中,第一事务的完成可以推迟到最小延迟时段之后的时间。仅作为一个示例,控制器设备可以包括调度器,该调度器可以基于对外围设备的竞争请求来推迟第一操作的完成。[0048]在时间t7处,可以完成第一事务。在所示的实施方式中,可以在时间t7与时间t8之间禁用sck。[0049]在其中第二事务不具有比第一事务的延迟较小的延迟或者具有比第一事务较低的优先级的实施方式中,可以在第一事务之后完成第二事务。在时间t8处示出了这样的布置。[0050]在一些实施方式中,可以在预定延迟时段之后由外围设备自动地完成流水线事务。然而,在其他实施方式中,可以通过来自控制器设备或外围设备(即,从设备)的输出来引起事务的完成。在图2中,示出了这样的布置。[0051]图2是示出根据实施方式的串行总线上的事务的启动和完成的时序图。图2示出了:串行时钟(sck);在串行总线上与sck同步地发生的动作(serial bus);发生了但不在串行总线上的动作(other);以及哪个设备正在操作串行总线(bus operator)。时间段216指示sck何时活跃,并且时间段218指示sck何时不活跃。[0052]主机(例如,控制器)设备可以发出指令以启动事务220,其中对应的目标信息222识别关于事物的目标。目标信息222可以包括任何合适的信息,包括但不限于存储器地址或寄存器地址。指令220可以被流水线化,其在串行总线上一个接一个地发出而没有任何介入的命令或信号。sck可以在指令/目标信息对220/222之间是不活跃的(或活跃的)。一旦发出了所有流水线指令,sck可以被去激活(但是在其他实施方式中,可以保持活跃)。[0053]在所有流水线指令中预定延迟时段之后,主机设备或外围设备可以引起事务的完成。在一些实施方式中,这可以包括主机在串行总线上发出完成指令224。然而,在其他实施方式中,这可以包括主机设备或外围设备经由另一方式(即,不在串行总线上)发出完成指示224'。例如,主机设备或外围设备可以激活不作为串行总线的一部分的信号。[0054]响应于主机设备或外围设备引起事务的完成,外围设备可以生成响应226。响应226可以包括适合于该事务的任何响应,包括但不限于:返回请求的数据、返回完成了事务的确认、或其组合。然后可以以相同的方式完成先前启动的事务的剩余部分。在所示的实施方式中,sck可以在后续事务的完成之间被去激活,但是在其他实施方式中,sck可以保持活跃。[0055]虽然根据实施方式的分离事务可以在任何合适的总线中实现,但是在一些实施方式中,分离事务可以在串行外围接口(spi)总线或等同物上发生。图3是比较传统事务与根据实施方式的spi总线上的分离事务的时序图。[0056]图3示出了传统(即,旧有)读取操作328、根据实施方式的分离(即,划分)读取操作330-0,以及根据实施方式的分离写入操作330-1。操作328和操作330-0/330-1包括关于以下的波形:芯片选择信号(cs#),其在活跃(低)时可以选择设备;串行时钟(sck);以及“四通道”io串行总线(qio),其可以包括四个串行数据线。操作328和操作330-0/330-1可以由主机设备向外围存储器设备发出。[0057]在所示的实施方式中,qio上的操作可以以双倍数据速率(ddr)(即,与sck的上升沿和下降沿同步地发送的数据)发生。然而,其他实施方式可以包括以单倍数据速率(即,仅与sck的上升沿或下降沿同步地发送的数据)发生的所有或部分事务。图3示出了sck在400mhz下操作,但是sck可以具有任何合适的速度以用于给定应用或给定系统。虽然图3示出了四通道io,但是替选实施方式可以包括较少或较多数量的串行线。[0058]现在将描述旧有读取操作328。[0059]在时间t0处,可以激活cs#以选择存储器设备。与sck同步,可以在qio上发出传统读取指令319,然后是读取地址322。存储器设备,例如nor闪速存储器等,可以具有约100ns的延迟314,或40个时钟循环的sck。延迟时段被“虚拟”循环占据。[0060]在时间t5处,所有虚拟循环都已完成,外围设备可以在qio上输出读取数据326。在所示的示例中,读取数据可以是一个字节。应当注意,sck和cs#两者在虚拟循环期间保持活跃。[0061]在输出读取数据之后,cs#可以被去激活(即,返回高电平)。[0062]图3中的分离操作330-0/330-1描述了将读取(read)和写入(write)事务划分成两个单独的操作。在分开这两个操作的时段中,cs#可以是不活跃的。在一些实施方式中,在该时段中sck也可以是不活跃的。[0063]现在将描述根据实施方式的分离读取操作330-0。[0064]在时间t0处,分离读取事务可以通过主机设备(例如,微控制器单元,mcu)将cs#驱动为低电平(low)并在qio上与sck同步地指定分离读取(read)命令320-0和目标地址322来启动。一旦限定了目标地址322,cs#信号就可以返回高电平(high)。在接收分离读取(read)命令320-0和目标地址322之后,目标存储器设备(例如,nor闪速存储器)可以发起内部读取(read)操作。内部数组(读取)操作可以以异步方式发生。[0065]在时间t3处,在经过足够量的延迟时段314之后,可以从数组中取回目标读取数据并且准备好输出。主机设备可以在qio上发出第二(例如,完成)读取(read)命令324-0,以从外围设备中提取目标数据。在一些实施方式中,足够量的延迟时段314可以通过主机设备对sck的循环进行计数或者使用通过存储器设备输出的准备(ready)/忙碌(busy)信号来确定。注意,在延迟时段期间,cs#信号是空闲的(高电平(high)),而sck是不活跃的(即,未切换)。第二读取(read)事务可以包括指示应当输出目标数据的初始命令。在事务的完成期间,可能需要一小段总线周转时间以使得主机设备能够释放总线。在所示的实施方式中,这可以包括两个循环。[0066]在时间t5处,可以通过存储器设备在qio上输出读取数据326。如在传统读取操作328的情况下一样,分离读取(read)操作330-0是字节读取操作。然而,实施方式预期较大或较小的读取数据大小。[0067]应当注意,与可以使用虚拟数据值驱动总线的传统方法相比,串行总线和sck上的“空闲”时段可以有利地提供节能。这样的节省在可以在单个时间处传送大量数据的应用(例如,采用就地执行(xip)类型操作的系统)中可以是特别有利的。[0068]现在将描述根据实施方式的分离写入操作330-1。[0069]在时间t0处,分离写入事务可以由主机设备通过将cs#驱动为低电平(low)并在qio上指定分离写入(write)命令320-1和目标地址322来启动。一旦限定了目标地址322,cs#信号就可以返回高电平(high)。[0070]在经过一定量的延迟之后,存储器设备可以准备将数据值写入至数组等中。主机设备可以在qio上发出第二(例如,完成)写入(write)命令324-0,以将数据写入至外围设备中。虽然图3示出了与分离读取(read)操作(即,在时间t3处发生)相同的延迟值,但是在其他实施方式中,分离写入(write)操作可以具有相当短的延迟(包括零延迟)。[0071]已经根据实施方式描述了分离事务,现在将描述与这样的事务兼容的系统。[0072]图4a至图4c是示出可以为具有相同或相似延迟的目标目的地流水线分离事务的系统的图。图4a是系统400的框图。图4b是示出对系统400的传统访问的时序图。图4c是示出根据实施方式的对外围设备的分离事务访问的时序图。[0073]参照图4a,系统400可以包括主机设备(例如,主机mcu)402、第一(外围)设备406-0和第二(外围)设备406-1。设备406-0/406-1可以是具有相同或相似延迟的存储器设备,并且在所示的实施方式中是nor闪存设备。主机设备402可以通过串行总线408连接至外围设备406-0/406-1,并且可以向设备406-0/406-1提供串行时钟sck。主机设备402可以经由第一选择信号cs0#选择第一设备406-0,并且经由第二选择信号cs1#选择第二设备406-1。[0074]参照图4b,在传统操作中,在时间t0之前,控制器设备402可以通过将选择信号cs0#驱动为低电平来选择第一设备406-0。当信号cs1#为高电平时,第二设备406-1可以保持为未被选择。[0075]在时间t0处,主机设备402可以对第一设备406-0执行第一传统读取事务407-0。第一读取事务407-0可以包括在串行总线qio上与sck同步地输出的第一(传统)读取指令419-0和地址422。作为响应,第一设备406-0可以以同步方式对由第一读取事务407-0指示的地址执行读取操作。[0076]在时间t2处,在地址422的完成之后,对应于第一设备406-0的延迟,可以跟随多个虚拟循环421。[0077]在时间t3处,第一设备可以完成读取操作并将读取数据426放在qio上。应当注意,到此时为止,主机设备402已经继续断言cs0#,从而选择第一设备406-0。[0078]在时间t4处,主机设备402可以将cs0#驱动为高电平,从而取消选择第一设备406-0。[0079]在时间t5处,控制器设备402可以通过将选择信号cs1#驱动为低电平来选择第二设备406-1。主机设备402然后可以对第二设备406-1执行第二(传统)读取事务407-1。第二读取事务407-1可以采用与第一读取事务407-0相同的一般形式,并且可以导致第二设备406-1在另一系列虚拟循环421(因为设备406-0/406-1的延迟相同或相似)之后在qio上提供读取数据。[0080]图4c示出了根据实施方式的分离读取事务。在分离读取事务中,可以使得延迟时段期间串行总线上的空闲时间对同一spi总线上的其他设备(或同一设备上的不同位置)的流水线事务可用。[0081]参照图4c,在时间t0之前,控制器设备402可以通过将选择信号cs0#驱动为低电平来选择第一设备406-0。当信号cs1#为高电平时,第二设备406-1可以保持为未被选择。[0082]在时间t0处,主机设备402可以对第一设备406-0启动第一分离(读取)事务428-0。第一分离事务428-0可以包括在串行总线qio上与sck同步地输出的第一分离读取指令420-0和地址422(在时间t1处)。作为响应,第一设备406-0可以开始对由第一分离事务428-0指示的地址执行读取操作。[0083]在时间t2处,在完成地址422之后,主机设备402可以将cs0#驱动为高电平,从而取消选择第一设备406-0。此外,可以禁用sck。然而,在其他实施方式中,sck可以保持活跃。[0084]在时间t3处,控制器设备402可以通过将选择信号cs1#驱动为低电平来选择第二设备406-1。主机设备402然后可以对第二设备406-1启动第二分离(读取)事务428-1。启动第二分离事务可以采用与第一分离事务428-0的启动相同的一般形式。[0085]以这种方式,当第一设备406-0正在发起读取事务时,串行总线qio可以返回至空闲状态,从而使得第二设备406-1能够发起其自己的独立读取事务。[0086]在时间t5处,在启动第二分离事务428-1之后,主机设备402可以通过将cs1#驱动为高电平来取消选择第二设备406-1。此外,可以禁用sck,并且qio可以进入空闲。[0087]在时间t5与时间t6之间(即,延迟时段的剩余部分),选择信号cs0#/cs01#和sck可以保持不活跃。然而,在其他实施方式中,sck可以保持活跃。[0088]在时间t6处,主机设备402可以通过将cs0#驱动为高电平并重新开始sck来选择第一设备406-0。主机设备402然后可以完成第一分离事务430-0。完成第一事务430-0可以包括主机设备402在qio上发出第一完成指令424-0。作为响应,第一设备406-0可以在时间t7处在qio上输出读取数据426。[0089]在时间t8处,在来自第一设备406-0的读取数据426之后,主机设备402可以将cs0#驱动为高电平,从而取消选择第一设备406-0,并且可以禁用sck。[0090]在时间t9处,主机设备402可以通过将cs1#驱动为高电平并重新开始sck来选择第二设备406-1。主机设备402然后可以完成第二分离事务430-1。完成第二事务430-1可以包括与完成第一事务430-0相同的一般动作,包括来自主机设备402和第二设备406-1的指令424-1使用读取数据426来响应。[0091]应当注意,到第二(流水线)操作(430-1)完成检索其目标数据时,第二旧有读取操作(图4b中的407-1)才刚刚开始。[0092]图5a至图5c是示出可以为具有不同延迟的目标目的地流水线分离事务的系统的图。图5a是系统500的框图。图5b是示出与图4b相同的传统访问的时序图。图5c是示出根据实施方式的使用对具有不同延迟的设备的分离事务来访问的时序图。[0093]参照图5a,系统500可以包括主机设备(例如,主机mcu)502、第一(外围)设备506-0和第二(外围)设备506-1。设备506-0/506-1两者可以是存储器设备,其中第一设备506-0具有比第二设备506-1较大的访问延迟。在所示的实施方式中,第一设备506-0可以是nor闪存设备,而第二设备506-1可以是伪静态随机存取存储器(psram)。主机设备502可以以与图4a相同的方式连接至外围设备506-0/506-1。[0094]图5b示出了与图4b相同的访问。因此,在时间t5处的传统事务被引导至第二设备506-1,并且将导致第二设备506-1在延迟时段(其可以比关于第一设备506-0的延迟时段较短)之后在qio上返回读取数据。[0095]参照图5c,如在图4c的情况下一样,可以使得延迟时段期间串行总线上的空闲时间对其他设备位置的流水线事务可用。然而,由于延迟中的差异,可以在较慢设备的延迟时间期间完成较快设备的事务。[0096]在时间t0至t5处,主机设备502可以以与图4c相同的方式以流水线方式启动两个事务528-0/528-1。然而,与图4c不同,因为第二设备530-1具有较快的访问时间,所以在时间t6处,主机设备502可以在完成第一事务530-0之前完成第二事务530-1。[0097]在时间t9处,主机设备502可以以与图4c相同的方式完成第一事务530-0。[0098]应当注意,在第二旧有读取操作(图5b中的507-1)开始之前完成第一事务和第二事务(530-0/530-1)。虽然图5c示出了sck在延迟时段期间且事务部分之间被去激活,但是在其他实施方式中,sck可以保持活跃。[0099]图6a至图6c是示出可以为同一设备的不同目标目的地流水线分离事务的系统的图。图6a是系统600的框图。图6b是示出与图4b相同的传统访问的时序图。图6c是示出使用对同一设备的不同部分的分离事务来访问的时序图。[0100]参照图6a,系统600可以包括主机设备(例如,主机mcu)602和具有第一区域(或功能)606-0和第二区域(或功能)606-1的外围设备604。在所示的实施方式中,外围设备604可以是存储器设备,并且区域/功能606-0/606-1可以是不同存储体。主机设备602可以通过串行总线608连接至外围设备604,并且可以向外围设备604提供串行时钟sck。主机设备602可以经由第一选择信号cs0#选择第一存储体606-0和经由第二选择信号cs1#选择第二存储体606-1。然而,在替选实施方式中,可以使用在事务的启动期间在串行总线608上发送的地址值来选择不同存储体。[0101]图6b示出了与图4b的读取访问类似的读取访问,但是其中访问的是不同存储体606-0/606-1而不是不同的设备。因此,在时间t0处,主机设备602可以对外围设备604的第一存储体606-0执行传统读取事务607-0。在时间t3处,在延迟时段的虚拟循环621之后,主机设备602可以对外围设备604的第二存储体606-1执行第二传统读取事务607-1。在另一组虚拟循环之后,外围设备604可以输出来自第二存储体606-1的读取数据。[0102]参照图6c,如在图4c的情况下一样,可以使得延迟时段期间串行总线上的空闲时间对流水线事务可用。然而,流水线事务是针对同一设备的不同位置的。[0103]在时间t0至t5处,主机设备602可以以与图4c相同的方式以流水线方式启动两个事务628-0/628-1。然而,第一启动的事务628-0是针对第一存储体606-0的,而第二启动的事务628-1是针对第二存储体606-1的。此外,主机设备602可以通过激活对应的选择信号cs0#/cs1#来选择存储体606-0/1。然而,如上所述,在替选实施方式中,存储体可以由地址值(例如,622)指示。[0104]在时间t6处,主机设备602可以完成第一事务630-0。主机设备602可以通过激活cs0#(或发送存储体地址)来选择第一存储体606-0,可以激活sck,并且然后发出完成指示/指令624-0。作为响应,可以在qio上输出来自第一存储体606-0的读取数据626。[0105]在时间t8处,然后可以通过对cs0#去激活(或在已经输出数据之后超时)来取消选择第一存储体606-0。sck也可以被去激活。[0106]在时间t9处,主机设备602可以完成第二事务630-1。第二事务630-1的完成可以以与第一事务630-0的完成相同的一般方式发生,但是其中外围设备604提供来自第二存储体606-1的读取数据。[0107]如在图4c的情况下一样,到第二(流水线)操作(630-1)完成检索其目标数据时,第二旧有读取操作(图6b中的607-1)才刚刚开始。虽然图6c示出了sck在延迟时段期间且事务部分之间被去激活,但是在其他实施方式中,sck可以保持活跃。[0108]图7a和图7b是示出可以为不同类型的设备流水线分离事务的系统的图。图7a是系统700的框图,并且图7b是示出根据实施方式的使用对不同类型的设备的分离事务来访问的时序图。[0109]参照图7a,系统700可以包括主机设备(例如,主机mcu)702和第一外围设备706-0、第二外围设备706-1和第三外围设备706-2。在所示的实施方式中,第一外围设备和第二外围设备706-0/706-1可以是存储器设备,并且第三外围设备706-2可以是模数转换器(adc)。主机设备702可以通过串行总线708连接至外围设备706-0/706-1/706-2,并且可以向外围设备706-0/706-1/706-2提供串行时钟sck。主机设备702可以分别使用选择信号cs0#、cs1#和cs2#来在外围设备706-0/706-1/706-2之间选择。[0110]参照图7b,在时间t0处,主机设备702可以对adc 706-2启动第一事务728-0。在一些实施方式中,启动第一事务728-0可以包括主机设备702使用选择信号cs0#来选择adc 706-2并且在qio上发送指令。这样的指令可以包括或可以不包括附加数据(例如,寄存器地址)。[0111]在时间t1至t3处,在关于对adc 706-2的操作的延迟时段期间,主机设备702可以分别使用存储器设备706-0/706-1来启动第二事务和第三事务728-1/728-2。在所示的实施方式中,启动事务728-1/728-2可以以与图4c所示相同的方式发生,包括在启动事务之间禁用sck。[0112]在时间t3处,在三个事务728-0/728-1/728-2的流水线启动之后,可以禁用sck,并且可以空闲qio。[0113]在时间t4至t5处,在关于adc 706-2的延迟时段期间,可以完成第二事务和第三事务730-1/730-2。这可以包括图4c中描述的动作,包括主机设备引起来自存储器设备706-0/706-1的响应。[0114]在时间t6处,在adc延迟之后,可以完成第一事务730-0。在一些实施方式中,这样的动作可以包括主机设备702根据本文中描述的任何方法或等同方法引起来自adc 706-2的响应。虽然图7b示出了sck在延迟时段期间且事务部分之间被去激活,但是在其他实施方式中,sck可以保持活跃。[0115]图8a和图8b是示出其中主机设备可以使用不作为串行总线的一部分的信号来引起分离事务的完成的系统,以及其中外围设备可以具有可变延迟的系统的图。具有可变延迟的设备可以具有不同的延迟,这取决于其操作条件。仅作为许多可能示例之一,基于dram的存储器可能在访问正在刷新的存储器单元(即,刷新冲突)的情况下具有增加的延迟。图8a是系统800的框图。图8b是示出使用分离事务来访问的时序图。[0116]参照图8a,系统800可以包括主机设备(例如,主机mcu)802、第一(外围)设备806-0和第二(外围)设备806-1。设备806-0/806-1两者可以是存储器设备,并且在所示的实施方式中,设备806-0可以是nor闪存设备,并且设备806-1可以是psram设备。主机设备802可以以与图4a相同的方式连接至外围设备806-0/806-1。然而,此外,主机设备802可以通过非总线信号832连接至每个外围设备806-0/806-1,在所示的实施方式中,该非总线信号832可以是数据选通(ds)信号。[0117]参照图8b,在时间t0至t2处,主机设备802可以以与图5c相同的方式以流水线方式启动两个事务828-0/828-1。[0118]在时间t3处,在可能的第一延迟之后,主机设备802或外围设备806-1可以完成第二事务830-1。然而,与图5c不同,外围设备或主机设备802可以通过非串行总线信号ds1的操作来引起第二事务830-1的完成。响应于ds0被激活(在本示例中,进入低电平),psram设备806-1可以输出读取数据826。[0119]在时间t4处,主机设备802可以通过激活ds0来完成第一事务830-0。作为响应,nor设备806-1可以输出读取数据826。[0120]如上所述,第二设备806-1可以具有可变延迟。在所示的实施方式中,psram可能在刷新冲突的情况下具有增加的延迟。在时间t5处,示出了第二延迟情况。在时间t5处,在可能的第二延迟之后,主机设备802或外围设备806-1可以以关于时间t3所示的方式完成第二事务830-1。[0121]虽然图8b示出了sck在延迟时段期间且事务部分之间被去激活,但是在其他实施方式中,sck可以保持活跃。[0122]实施方式可以在串行总线上与串行时钟信号同步地启动和完成指令。这样的同步操作可以采用任何合适的形式,包括:单倍数据速率(sdr),其中数据值仅与串行时钟的上升(或仅下降)沿同步;和双倍数据速率(ddr),其中数据值与串行时钟的上升沿和下降沿两者同步;以及单倍数据速率(sdr)与双倍数据速率(ddr)的组合。图9a和图9b示出了根据实施方式的多种可能串行总线时序的两种实现方式。图9a和图9b包括关于选择信号cs0#、cs1#、时钟信号sck和四通道io串行总线(io0至io3)的波形。然而,串行总线可以包括少于或多于四个i/o的总线。[0123]图9a是示出根据实施方式的“全”双倍数据速率事务的时序图。在时间t0处,可以由主机设备启动第一事务928-0。这可以包括,在时间t0处,cs0#处于活跃,并且8位指令[i7:i0]在io上被驱动作为在sck的上升沿和下降沿上的两个四位值。这可以在时间t1处,跟随在sck的上升沿和下降沿上,以八个四位值发送的32位[a31:a0]地址。当然,地址位的数量可以根据目标设备的地址数量而变化。在时间t2处,cs0#可以返回高电平,并且可以禁用sck。[0124]在时间t3处,可以启动第二事务928-1。第二事务928-1的启动可以以与第一事务928-0的方式相同的方式发生。然而,通过激活cs1#来选择第二设备。[0125]在延迟时段之后,在时间t5处,可以完成第一事务930-0。这可以包括,在时间t5处,cs0#处于活跃,并且另一8位指令[i7:i0]在io上被驱动。这样的指令可以引起来自目标设备的响应。在所示的实施方式中,两个时钟循环可以专用于总线周转时间。在时间t7处,外围设备可以输出数据以完成第一事务。在所示的实施方式中,外围设备可以在sck的上升沿和下降沿上将8位值[d7:d0]输出为两个四位值。当然,较大的输出数据值可以占据较多的sck循环。[0126]在时间t9处,可以完成第二事务930-1。这可以以与第一事务930-0的方式相同的方式发生。然而,通过激活cs1#来选择第二设备。[0127]图9b是示出使用sdr命令的ddr事务的时序图。在时间t0处,可以由主机设备启动第一事务928-0'。cs0#可以被激活,并且在sck的上升沿上8位指令[i7:i0]可以在io0上被驱动为一位值。这可以在时间t1处,跟随在sck的上升沿和下降沿上,以四个四位值发送的16位[a15:a0]地址。同样,地址位的数量可以根据目标设备的地址数量而变化。在时间t2处,cs0#可以返回高电平,并且可以禁用sck。[0128]应当注意,可以在时间t2之后以如本文中描述的流水线方式或等同方式启动附加事务。[0129]在时间t3处,在延迟时段之后,可以完成第一事务930-0'。这可以包括,cs0#处于活跃,并且另一8位指令[i7:i0]以sdr速率在io0上被驱动。作为响应,在时间t4处,外围设备可以输出数据以完成第一事务。在所示的实施方式中,外围设备可以在sck的上升沿和下降沿上将8位值[d7:d0]输出为两个四位值。[0130]虽然图9a和图9b示出了sck在延迟时段期间且事务部分之间被去激活,但是在其他实施方式中,sck可以保持活跃。[0131]根据实施方式,主机(例如,控制器)设备可以连接至串行总线,并且可以从连接至串行总线的外围设备接收参数数据。参数数据可以指示外围设备是否能够处理分离事务。然后,控制器设备可以向兼容的外围设备发出分离事务命令,该分离事务命令包括在前一命令的延迟时段内(例如,在虚拟循环时间期间)发出的流水线命令。[0132]图10a至图10c是示出根据实施方式的系统1000和操作的一系列图。系统1000可以包括连接至串行总线1008的主机设备1002。主机设备1002可以包括参数存储器1034和参数检测器1036。参数存储器1024可以存储关于连接至串行总线1008的外围设备的参数值(device),该参数存储器包括外围设备是否与分离事务(split?)兼容。主机设备1002可以包括参数检测器处理1036,其可以从在串行总线1008上检测到的外围设备接收和/或请求参数信息。[0133]图10a示出了具有连接至串行总线1008的第一外围设备1006-0的系统1000。如由参数存储器1034所示,控制器设备1002已检测到第一(外围)设备1006-0(示出为dev0)。此外,通过参数检测器处理1036的操作,第一设备1006-0先前已被确定为不能执行分离事务(示出为“否”)。[0134]图10b示出了如第二(外围)设备1006-1连接至串行总线的系统1000。第二设备1006-1被主机设备1002检测到,该第二设备1006-1由出现在参数存储器1034中的“dev1”表示。[0135]图10c示出了如参数检测器处理1036确定第二设备1006-1可以执行分离事务的系统1000。如由参数存储器1034所示,第二外围设备(dev1)1006-1已被确定为能够执行分离事务(由出现在参数存储器1034中的“是”表示)。在所示的实施方式中,分离事务数据1038可以从第二设备1006-1发送至主机设备1002。在一些实施方式中,这可以包括主机设备1002从第二外围设备1006-1请求这样的数据。[0136]图11a至图11c是根据实施方式的分离事务命令的图。这样的命令可以由控制器(例如,主机)设备以指令发出,并由如本文中描述的外围设备执行。图11a至图11c示出了具有以下列的表格:“指令”给出关于指令的简写名称;“描述”是命令的简要描述;以及“代码(十六进制)”指示了命令可以以八位值发出。示为“xx”的代码值是可以采用未被现有标准的其他指令使用的任何可用代码的值。在一些实施方式中,值“xx”可以是对spi标准的补充指令。然而,应当理解,图11a至图11c的实施方式是示例性的,并且这样的命令对于给定的系统和总线协议可以具有任何合适的位大小。[0137]图11a示出了其中控制器设备可以具有用于完成各种事务的单独命令的命令集。分离读取操作可以通过“split_read_ini”指令启动,然后通过“split_read_cmp”指令随后完成。分离写入操作可以以相同的方式:“split_write_ini”和“split_write_cmp”指令来执行。[0138]图11b示出了其中控制器设备可以具有用于完成各种事务的一个命令的命令集。分离读取操作和写入操作可以通过“split_read”和“split_write”指令启动。随后,这样的启动事务可以通过“rdsr2”(例如,读取状态寄存器)指令完成。在一些实施方式中,rdsr2指令可以伴随有指示要完成的事务的值。在所示的实施方式中,这样的命令可以是spi协议的现有命令。[0139]图11c示出了控制器设备可以通过其从外围设备引起参数数据的命令,其包括外围设备是否可以执行分离事务。在所示的实施方式中,这样的命令可以是spi协议的现有命令。[0140]虽然实施方式可以包括被配置成执行分离事务的任何合适的外围设备,但是这样的能力可以极大地有益于非易失性存储器设备,例如闪速nor存储器,该非易失性存储器设备包括访问延迟,并且其中由于采用设备的应用而期望最小的引脚数。在图12中,示出了一个这样的实施方式。[0141]图12是根据实施方式的存储器设备1206的框图。存储器设备1206可以接收串行时钟(sck)1210,并且连接至串行总线1208。在所示的实施方式中,串行总线1208可以包括多个串行输入/输出(i/o)。串行总线1208可以包括在其上发送所有命令、地址和数据的一个或更多个线路。[0142]存储器设备1206可以包括时钟电路1240、i/o接口(i/f)1244、输入存储器(例如,缓冲器)1246和输出存储器(例如,缓冲器)1248、一个或更多个非易失性存储器阵列1250、读取/写入电路1252、控制电路1254和参数存储器1256。i/o i/f 1244可以与sck同步地通过总线1208来接收和发送数据。在所示的实施方式中,由i/o i/f 1244在串行总线1208上接收的数据(其可以包括指令、地址和相关数据)可以存储在输入缓冲器1246中。对于由i/o i/f 1244在串行总线1208上发送的数据可以从输出缓冲器1248接收。[0143]非易失性阵列1250可以包括一个或更多个非易失性存储器单元阵列,该非易失性存储器单元阵列包括nor闪存阵列。在一些实施方式中,例如图6a至图6c所示的那些或等同物,非易失性阵列可以包括可单独访问的多个存储体,从而实现流水线分离存储体访问事务。读取/写入电路1252可以包括用于访问存储在非易失性阵列中的数据的电路,并且可以包括解码器电路、读出放大器电路、编程电路、擦除电路等。[0144]控制电路1254可以包括用于控制存储器设备1206的各种功能的逻辑电路。控制电路1254可以包括各种部分和/或功能,包括但不限于:i/o控制1254-0、指令检测(例如,解码)1254-1和读取/写入控制1254-2。i/o控制1254-0可以控制i/o i/f 1244,包括发送响应数据以在预定时间内或根据预定时间表来完成事务。指令检测1254-1可以检测从主机设备接收的各种指令,包括分离事务指令1258-2。[0145]读取/写入控制1254-2可以生成用于控制读取/写入电路1252的信号,包括分离事务的执行。在一些实施方式中,读取/写入控制电路1254-2可以在传统模式与分离事务模式之间进行切换。在传统模式中,操作可以是与sck同步的,从而在预定延迟时间内完成。在分离事务模式中,操作可以是异步的,从而由来自控制器设备的输入启动,并且然后由来自控制器设备的另一输入完成。根据实施方式的读取写入控制电路的可能操作被示出为1258-0/1258-1。[0146]操作1258-0示出了分离读取操作。响应于指令检测1254-1检测到启动分离读取指令,读取/写入控制1254-2可以访问非易失性阵列1250。这样的动作可以包括响应于接收的地址来启用解码器电路以访问存储读取数据的存储器单元,以及激活读出放大器以输出读取数据。这样的读取数据可以从非易失性阵列1250输出,并存储在输出缓冲器1248中。然而,与传统读取命令不同,这样的读取数据不以预定延迟自动地输出。相反,读取数据保留在输出缓冲器1248中。响应于指令检测1254-1接收完成分离读取指令,读取/写入控制1254-2可以使读取数据能够通过i/o i/f 1244的操作从输出缓冲器1248在串行总线1208上输出。[0147]操作1258-1示出了分离写入操作。响应于指令检测1254-1接收启动分离写入指令,读取/写入控制1254-2可以将写入数据存储在输入缓冲器1246内。与传统写入命令不同,写入数据不自动地写入至非易失性阵列1250中。响应于指令检测1254-1接收完成分离写入指令,读取/写入控制1254-2可以访问非易失性阵列1250,并存储写入数据。这样的动作可以包括响应于接收的地址来激活解码器电路,以及激活编程电路和/或算法以将写入数据存储在目标存储器单元中。[0148]参数存储器1256可以存储存储器设备1206的操作参数。这样的参数可以包括传统参数,但是也可以包括分离事务参数。分离事务参数可以包括但不限于:指示存储器设备1206可以执行分离事务的一个或更多个值、指示与存储器设备1206兼容的分离事务的类型的一个或更多个值、以及关于事务的类型的延迟时段。参数存储器1256可以包括非易失性存储器电路,并且在一些实施方式中,可以是一个或更多个可寻址寄存器。[0149]在一些实施方式中,存储器设备1206可以被实现为单个集成电路。[0150]图13是根据实施方式的主机设备1302的框图。主机设备1302可以包括控制器部分1360、总线/背板系统1362、发送缓冲器1364、接收缓冲器1366和i/o电路1368。控制器部分1360可以通过总线/背板系统1362连接至发送/接收缓冲器1364/1366。发送缓冲器1364可以存储数据以用于通过i/o电路1368在串行总线1306上输出。接收缓冲器1366可以存储通过i/o电路1368在串行总线1308上接收的值。[0151]i/o电路1368可以被配置成生成和输出串行时钟(sck)1310,以及在串行总线1306上与sck同步地发送和接收数据。串行总线1308可以包括一个或更多个串行输入/输出(i/o),包括在其上发送所有命令、地址和数据的至少一个i/o。在一些实施方式中,如图8a/图8b或等同操作所示,i/o电路1368还可以控制可以用于表示分离事务的完成的非串行总线信号(示出为ds)。[0152]控制器部分1360可以包括处理器电路1360-0和存储器系统1360-1。在一些实施方式中,处理器电路1360-0可以执行存储在存储器系统1360-1中的指令,以提供本文中描述的各种主机(例如,控制器)设备功能和等同功能。处理器电路1360-0可以包括连接至存储器系统1360-1的一个或更多个处理器。存储器系统1360-1可以包括任何合适的存储器电路,包括易失性存储器、非易失性存储器或其组合。[0153]可由控制器部分1360执行的各种功能被示出为1370。功能可以包括在串行总线1308上可由外围设备执行的一组指令1372。指令1372可以包括分离事务指令1372-0。在所示的实施方式中,这样的指令可以包括分离读取指令(split_read)和分离写入指令(split_write)。这样的指令可以采用本文中描述的那些指令的任何形式或等同形式。这样的指令可以针对任何合适的类型的位置,包括但不限于:存储器设备位置和寄存器位置。分离读取和写入指令可以包括指令对(一个指令用于启动事务,一个指令用于完成事务),或用于使用单个指令(例如,read_status)或者使用非串行总线信号以完成事务的实施方式的单个指令。分离事务指令还可以包括用于查询外围设备以确定它们是否能够分离事务的指令(例如,read_param)。[0154]主机设备功能1370还可以包括i/o控制1374功能。在一些实施方式中,i/o控制1374可以包括串行时钟控制1374-0,包括在分离事务指令之间和事务的延迟时段期间禁用串行时钟(sck)。可选地,在其中主机设备可以使用非串行总线信号(例如,ds)来完成分离事务的情况下,i/o控制1374可以激活这样的非串行总线信号以完成分离事务。主机设备功能1370可以包括存储外围参数数据1376。这样的参数数据1376可以包括关于可以使主机能够调度事务的完成的操作的延迟值(延迟(latency))。此外,这样的数据可以包括关于分离事务能力(分离(split)op cfg)的外围设备的配置数据。[0155]主机设备功能还可以包括就地执行(xip)功能1378和调度器1380。xip功能1378可以包括通过串行总线1306使用分离事务读取操作来访问来自外围存储器设备的指令。这样的指令可以由处理器电路1360-0执行而无需被存储在另一存储器(例如,易失性存储器)中。调度器1380可以检查将由主机设备1302发出的命令的队列,并根据预定标准对它们进行排序。调度方法和标准可以根据应用而变化。[0156]图14是示出根据实施方式的主机设备1402的调度器部分1482的框图。调度器部分1482可以连接至控制器总线1484和i/o总线1462。调度器部分1482可以包括调度器进程1482-0和请求队列1482-1。对访问外围设备的请求可以在控制器总线1484上接收,并存储在请求队列1482-1中。接收的请求(req0至reqn)可以包括或被分配调度标准(pa、pi、pk)。在所示的实施方式中,调度器进程1482-0可以根据接收的请求(req0至reqn)生成包括分离事务命令1428/30'的内部命令。其中输出命令1428/30'的顺序可以基于调度标准(pa、pi、pk)由调度器进程1482-0确定。例如,延迟时段可以用于如本文中描述的流水线分离事务和等同事务。[0157]在一些实施方式中,调度器进程1482-0可以将请求转换成分离事务命令。此外,调度器进程1482-0可以使用传统(例如,不分离)命令来调度分离事务命令。[0158]可以在i/o总线1462上将由调度器部分1482生成的命令(1428/30')传送至tx缓冲器1464,并且通过串行i/o 1468在串行总线1408上与串行时钟(未示出)同步地将由调度器部分1482生成的命令(1428/30')输出为指令(如果适当的话,连同其他数据)。[0159]如本文所述,实施方式可以包括能够执行分离事务的存储器设备。虽然这样的存储器设备可以包括形成在同一封装中的多个集成电路,但是在一些实施方式中,存储器设备可以有利地是紧凑的单个集成电路(即,芯片)。图15示出了封装的单个芯片存储器设备1506。存储器设备1506可以包括有限数量的物理i/o(例如,引脚),其中一个引脚被示为1586。在一些实施方式中,物理i/o 1586可以包括不多于四个串行i/o的物理i/o。[0160]图16a示出了根据实施方式的系统1600。系统1600可以包括主机设备1602、第一(外围)设备1606-0和第二(外围)设备1606-1。主机设备1602可以通过串行总线1608连接至外围设备1606-0/1606-1,并且可以向设备1606-0/1606-1提供互补时钟ck/ck#和互补数据选通信号(ds/ds#)。主机设备1602可以经由第一选择信号cs0#来选择第一设备1606-0,以及经由第二选择信号cs1#来选择第二设备1606-1。在所示的实施方式中,第一设备1606-0可以是nor型闪存设备,并且第二设备1606-1可以是psram存储器设备。[0161]根据实施方式,主机设备1602、第一设备1606-0和第二设备1606-1可以与以大于或等于400mhz的时钟速度操作的高速、双倍数据速率标准兼容。在所示的实施方式中,设备1602和设备1606-0/1606-1可以具有与低功率ddr2(lpddr2)接口兼容的物理接口。在这样的布置中,串行总线1608上的i/o可以在1.2v下操作。在一些实施方式中,除了常规电源(vcc)之外,设备1602和设备1606-0/1606-1中的任何设备或所有设备可以包括用于io的单独电源(vccq)。第一设备和第二设备1606-0/1606-1可以接收参考电压(vrefca和vrefio)。然而,应当理解,命令、地址和数据值都可以通过同一串行总线1608来发送。此外,第一设备和第二设备1606-0/1606-1还可以具有参考终端电阻zq。[0162]系统1600可以执行如本文中描述的分离事务或等同事务。然而,在所示的实施方式中,可以提供互补时钟(ck/ck#)。此外,互补数据选通信号ds/ds#可以用于在串行总线1608上发送有效数据。[0163]图16b示出了根据实施方式的汽车系统1688。汽车系统1688可以包括控制单元1688-0和多个子系统(两个子系统被示出为1688-1/1688-2)。控制单元1688-0可以包括系统1600,如本文中描述的那些,该系统1600包括控制器设备和通过串行总线连接的一个或更多个外围设备。这样的系统1600可以执行如本文中描述的流水线分离事务,该流水线分离事务包括用于就地执行操作的读取事务。[0164]虽然所描述的设备和系统公开了根据实施方式的各种方法,但是将参照流程图来描述附加的方法。图17是根据实施方式的方法1790的流程图。方法1700可以包括在串行总线上与串行时钟同步地启动用于第一目标的第一事务1790-0。这样的动作可以包括控制器设备通过串行总线发送命令和目标信息。目标可以是附接至串行总线的外围设备或这样的外围设备的一部分(例如,存储体)。[0165]可以在串行总线上与串行时钟同步地,并在关于第一事务的延迟时段期间启动用于第二目标的第二事务1790-1。这样的动作可以包括控制器设备通过串行总线为不同的目标发送命令和目标信息。可以在延迟时段的大部分时间里禁用串行时钟1790-2。然后可以恢复串行时钟1790-3以完成启动的事务。[0166]在串行时钟的恢复之后和/或随着串行时钟的恢复,可以在串行总线上与串行时钟同步地完成第一事务1790-4。这样的动作可以包括第一目标在串行总线上将数据返回至控制器设备。在一些实施方式中,这样的动作还可以包括控制器设备向第一目标发出完成指示以引起响应。这样的完成指示可以在串行总线上或者与串行总线分开。[0167]方法1790还可以包括在串行总线上与串行时钟同步地完成第二事务1790-5。这样的动作可以在第一事务的完成之后或在第一事务的完成之前发生,包括在延迟时段期间发生。[0168]在一些实施方式中,方法1790可以由如本文中描述的控制器(例如,主机)设备或等同设备执行。[0169]图18是根据另一实施方式的另一方法1890的流程图。方法1890可以包括,在选择信号活跃时在指令地址数据串行总线上发送流水线分离事务指令1890-0。流水线分离事务指令可以是在串行总线上一个接一个地(即,没有任何中间信号)发送的一系列指令中的一个指令。此外,这样的流水线指令可以是如本文中描述的分离事务指令或等同指令。指令-地址-数据串行总线可以是具有发送指令数据、地址数据和事务数据的一个或更多个线路的串行总线。[0170]在分离事务指令的发送之后,可以对选择信号去激活1890-1。[0171]方法1890可以包括确定指令是否是最后的指令1890-2。如果尚未启动一组流水线指令中的最后的指令(来自1890-2的否),则方法1890-3可以转至下一流水线指令1890-3。下一流水线指令可以具有与前一流水线指令不同的选择信号。如果尚未发送一组流水线指令中的最后的指令(来自1890-2的否),则方法1890可以进行至一组流水线指令的下一分离事务指令1890-3。[0172]如果已经发送了一组流水线指令中的最后的指令(来自1890-2的是),则可以在初始延迟时段内对选择信号去激活1890-4。初始延迟时段可以是与流水线组的指令相关联的延迟时段。初始延迟时段可以对应于任何分离事务指令,并且不限于流水线组的第一分离事务指令。[0173]方法1890还可以包括,在选择信号活跃时在指令地址数据串行总线上完成对应于分离事务指令之一的分离事务1890-5。选择信号可以在不同的已完成分离事务之间变化。[0174]一旦完成了分离事务,就可以对选择信号去激活1890-6。[0175]方法1890可以包括确定是否已经完成最后的流水线事务1890-7。如果尚未完成最后的流水线事务(来自1890-7的否),则方法1890-3可以进行至下一流水线事务1890-8。[0176]应当注意,可以以与通过其由流水线分离事务指令启动它们的顺序不同的顺序来完成事务。[0177]在一些实施方式中,方法1890可以由如本文中描述的控制器(例如,主机)设备或等同设备执行。[0178]图19是根据另一实施方式的方法1990的流程图。方法1990可以包括在控制器设备处接收在串行总线上针对外围设备的请求1990-1。方法1990可以确定接收的请求是否对应于可以如本文中描述的分离的事务或等同事务,以及目标设备是否与这样的分离事务兼容1990-2。[0179]如果接收的请求不对应于分离事务,或者目标设备不能处理分离事务(来自1990-2的否),则方法1990可以生成对应于请求的一个或更多个标准指令1990-4。如果接收的请求确实对应于分离事务,并且目标设备可以处理分离事务(来自1990-2的是),则方法1990可以生成一个或更多个分离指令1990-3。分离指令1990-3可以包括用于启动事务的一个指令,并且在一些实施方式中,分离指令1990-3可以包括用于完成事务的另一指令。[0180]可以将生成的指令存储在请求队列中1990-5。[0181]可选地,可以对指令进行分类和排序1990-6。这样的动作可以包括基于预定标准对请求进行优先级排序的调度器操作。[0182]然后可以在串行总线上以流水线方式输出指令1990-7。[0183]根据实施方式,可以在串行总线上执行流水线分离事务以提高吞吐量。对于具有延迟的外围设备的读取操作,吞吐量几乎可以翻倍。实施方式对于具有相对较小(例如,字节大小)的数据传送的应用可以是非常有益的。[0184]实施方式可以在串行总线上提供较大的吞吐量,而不会不利地增加引脚数。[0185]实施方式可以通过在延迟时段期间禁用串行时钟来有利地降低功耗。这与在操作期间维持串行时钟的传统方法形成对比。[0186]应当理解,贯穿本说明书对“一个实施方式”或“实施方式”的引用意味着结合该实施方式描述的特定特征、结构或特性包括在本发明的至少一个实施方式中。因此,要强调并且应当理解的是,在本说明书的各个部分中对“实施方式”或“一个实施方式”或“替选实施方式”的两个或更多个引用不一定都指代同一实施方式。此外,在本发明的一个或更多个实施方式中,特定特征、结构或特性可以适当地组合。[0187]类似地,应当理解的是,在本发明的示例性实施方式的前述描述中,出于简化本公开内容、帮助理解各种发明方面中的一个或更多个方面的目的,本发明的各种特征有时在单个实施方式、图或其描述中被组合在一起。然而,本公开内容的方法不应被解释为反映权利要求需要比每个权利要求中明确列举的特征更多特征的意图。相反,发明方面在于少于单个前述公开实施方式的所有特征。因此,符合具体实施方式的权利要求由此明确地并入该具体实施方式,其中,每个权利要求独立地作为本发明的单独实施方式。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部