CN116601617A - 使用同步接口进行次级装置检测 - Google Patents
使用同步接口进行次级装置检测 Download PDFInfo
- Publication number
- CN116601617A CN116601617A CN202180082646.7A CN202180082646A CN116601617A CN 116601617 A CN116601617 A CN 116601617A CN 202180082646 A CN202180082646 A CN 202180082646A CN 116601617 A CN116601617 A CN 116601617A
- Authority
- CN
- China
- Prior art keywords
- chiplet
- primary
- data
- secondary device
- spi
- 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
Links
- 230000001360 synchronised effect Effects 0.000 title description 10
- 238000001514 detection method Methods 0.000 title description 4
- 238000004891 communication Methods 0.000 claims abstract description 91
- 230000002093 peripheral effect Effects 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims description 141
- 230000004044 response Effects 0.000 claims description 80
- 238000000034 method Methods 0.000 claims description 44
- 239000000872 buffer Substances 0.000 description 25
- 230000005540 biological transmission Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 208000014797 chronic intestinal pseudoobstruction Diseases 0.000 description 8
- 230000000630 rising effect Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000009849 deactivation Effects 0.000 description 2
- 238000011423 initialization method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 102000016726 Coat Protein Complex I Human genes 0.000 description 1
- 108010092897 Coat Protein Complex I Proteins 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/423—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
小芯片系统可包含用于通信的串行外围接口(SPI)总线。耦合到所述SPI总线的控制器或初级装置可用针对一或多个次级装置的读取或写入指令产生消息。在实例中,所述初级装置可经配置以使用数据输入端口或数据输入总线上的信息来确定所述总线上的一个或多个次级装置的通信状态。
Description
申请优先权
本申请要求2020年10月20日申请的序列号为17/074,852的美国申请的优先权权益,所述美国申请以其全文引用的方式并入本文中。
技术领域
本公开的实施例大体上涉及基于小芯片的电子系统且涉及此类系统中的通信。
背景技术
小芯片是用于集成各种处理功能性的新兴技术。一般来说,小芯片系统是由离散芯片(例如,不同衬底或裸片上的集成电路(IC))组成,所述离散芯片经集成于中介层上且被封装在一起。此布置不同于若干单芯片(例如IC)(其在一个衬底(例如单个裸片)上含有不同装置块(例如知识产权(IP)块)),例如单芯片系统(SoC),或集成于板上的离散封装的装置。一般来说,小芯片提供比离散封装的装置更好的性能(例如低功耗、减小的延时等),且小芯片提供比单个裸片芯片更大的生产效益。这些生产效益可包含更高良率或减小的开发成本及时间。
小芯片系统通常由一或多个应用程序小芯片及支持小芯片组成。在此,应用程序与支持小芯片之间的区别仅仅是对小芯片系统的可能设计场景的参考。因此,例如,合成视觉小芯片系统可包含用于产生合成视觉输出的应用程序小芯片以及支持小芯片,例如存储器控制器小芯片、传感器接口小芯片或通信小芯片。在典型用例中,合成视觉设计者可设计应用程序小芯片且从其他方获得支持小芯片。因此,通过避免体现于支持小芯片中的功能性的设计及生产,设计支出(例如,在时间或复杂性方面)减小。小芯片还支持原本可能很难的IP块的紧密集成,例如使用不同特征大小的IP块。因此,例如,在先前制造生产期间经设计具有更大特征大小的装置或其中特征大小针对功率、速度或热产生进行优化的那些装置——正如对于传感器可发生——可更容易地与具有不同特征大小的装置集成。另外,通过减小裸片的整体大小,小芯片的良率趋向于比更复杂的单个裸片装置的良率更高。
附图说明
为了容易地识别任何特定元件或动作的论述,附图标记中的最高有效数字或前几个最高有效数字是指所述元件在其中首次引入的图号。
图1A说明根据一个实施例的小芯片系统的第一实例。
图1B说明根据一个实施例的小芯片系统的第二实例。
图2说明根据一个实施例的存储器控制器小芯片的实例。
图3说明根据一个实施例的SPI系统。
图4说明根据一个实施例的第一时序图。
图5说明根据一个实施例的第二时序图。
图6大体上说明包含使用初级装置的输入端口处的信息识别次级装置状态回复的实例。
图7大体上说明包含分析次级装置状态回复信息的实例。
图8说明本公开的实施例可利用其、在其中或通过其操作的机器的实例。
具体实施方式
各种通信协议可用于在系统(例如小芯片系统)中的主机与存储器装置之间通信。此类协议的实例可包含开放NAND快闪接口(ONFi)、eMMC、UFS或串行外围接口(SPI)以及其它协议。这些协议通常使主机、初级装置或控制器能与存储器装置传递命令,例如写入(例如,编程)、读取、请求命令的状态、请求存储器装置的状态、起始或执行内务处理(housekeeping)操作,例如存储器内传送、废弃项目收集等。通常,这些协议限制到主机的通信的发起。即,主机作出请求且存储器装置作出响应。在一些实例中,存储器装置可发出异常(例如中断),其经设计以提示主机针对受到异常的操作的状态作出请求。
为了促进系统中的小芯片之间的通信,小芯片可包含多个输入-输出(I/O)通道(例如AIB通道),其例如可布置成小芯片的外围处的通道列。I/O通道可取决于特定设计或系统目标以一方式进行配置。举例来说,小芯片的I/O通道可配置为接收(RX)通道、传输(TX)通道或RX/TX通道的混合。
在实例中,系统的一或多个小芯片可包含初始化逻辑电路系统以通过各种初始化级或阶段推进小芯片I/O接口。在一些实例中,小芯片可包含通信接口(例如,串行外围接口或SPI),且配置数据可使用通信接口在小芯片之间传递。在一些实例中,通信接口可使用I/O通道的辅助通道(AUX)实施,且配置数据可使用带外信令传递。
在实例中,初始化逻辑电路系统可经配置以循序通过接口层推进小芯片接口的初始化,其中以最低接口层(例如,物理层)开始。初始化可通过多个初始化阶段而推进,其中通过在每一初始化阶段期间将初始化数据写入到小芯片I/O通道而在每一阶段期间初始化一个接口层。
并非所有的小芯片设计都可具有或使用相同类型的初始化。举例来说,个别小芯片针对I/O通道仅可支持基于硬件的初始化选项或针对I/O通道仅可支持基于软件的初始化选项。因为基于小芯片的系统可包含在相同系统中混合的不同小芯片设计,且没有支持基于硬件及基于软件的方法两者的标准方法,因此每一系统将需要个别点对点(ad hoc)的基于硬件或基于软件的初始化方法。这可导致小芯片的一些I/O通道无法与小芯片的其它I/O通道互操作。
在实例中,小芯片的I/O通道的初始化的标准化方法可允许多小芯片系统的所有小芯片与I/O接口在单个系统内可互操作。标准化方法可用于基于硬件及基于软件的初始化机制两者以保证经互连小芯片I/O通道的互操作性。在实例中,初始化方法可包含或使用利用SPI总线的小芯片之间的通信。SPI总线可用于在至少一初级装置与次级装置之间提供通信。如本描述中使用,初级装置(例如主机)可管理或控制与一或多个次级装置的通信或一或多个次级装置的操作。初级与次级装置之间的关系可为非对称关系,其在所属领域中有时使用旧时的术语主控及从属来提及。此类关系还可称为父/子、管理者/工作者、控制器/外围设备或类似物。
当初级装置或初级小芯片试图证实或确认SPI总线上存在或不存在次级装置或所选择的小芯片时,传统SPI通信会出现问题。在实例中,在初级装置与次级装置之间的事务期间没有用于确认次级装置存在或不存在的构件的情况下,初级装置可能不知道各种命令是成功或失败。举例来说,初级装置可能无法确定写入命令是否被成功递送或读取响应或其它响应消息是否有效。
为了解决这个问题,SPI通信系统(或其它类似通信系统)可经配置以包含或使用初级装置与多个次级装置之间的多点数据通信通道。数据通信通道可经耦合到初级装置的数据输入端口及多个次级装置的相应数据输出端口。在实例中,初级装置可包含例如缓冲器、电阻器或其它组件的上拉电路系统,其经配置以维持初级装置的数据输入端口处于经定义状态中,例如除非或直到数据输入端口由来自例如次级装置中的一者的信号驱动。在实例中,经定义状态可包含具有与系统中的逻辑高或逻辑低信号量值不同的量值的电压或电流信号,有时称为“弱”上拉信号。
本文中论述的系统及方法可包含或使用初级装置的数据输入端口处的上拉信号以确定初级装置是否存在于系统中且活动。在实例中,系统及方法可包含或使用从相应次级装置传递到初级装置的消息中的次级装置状态字段,且初级装置可使用次级装置状态字段中的信息来确定特定事务是否成功。在实例中,本文中论述的系统及方法可经配置以探测并发现系统上现存(即,存在的)及非现存(即,不存在的)次级装置或端点。
在实例中,传统SPI通信的另一问题源于对外围设备或次级装置的时序或延时的普遍依赖。较慢次级装置或经配置以实行计算复杂的或耗时的活动的次级装置可占据或占用SPI总线且因此抑制总线上其它装置之间的通信。举例来说,如果SPI次级装置无法立即对来自初级装置的读取请求作出响应,那么SPI总线可被占用,除非或直到次级装置完成其操作且准备且发送其响应。这可能会有问题且例如在其中系统中的多个小芯片需要进行初始化来激活系统的初始化期间引入显著延迟。
在实例中,系统可经配置以使用响应消息的次级装置状态字段来帮助解决延时问题,例如通过启用延期数据事务。在实例中,例如可包含或包括第一小芯片的初级装置可发出针对经指定有效负载的请求。作为响应,次级装置或第二小芯片可经配置以产生响应消息,其可包含次级装置状态字段。次级装置状态字段可包含关于次级装置是否要求或请求额外处理时间来准备合适或预期回复(例如具有经指定有效负载)的信息。次级装置可将具有次级装置状态字段的消息发送到初级装置,且初级装置又可将例如针对相同经指定有效负载的稍后请求进行排队。以此方式,对SPI总线占用的控制可提供给初级装置或第一小芯片。接着,初级装置可确定例如是否继续向相同次级装置发出针对经指定有效负载的读取请求或是否可执行其它操作,例如使用耦合到总线的其它次级装置。
下文描述的图1A提供小芯片系统及在其中操作的组件的实例。在此小芯片系统的上下文内,在小芯片之间的通信中或在与耦合到小芯片系统的其它系统或装置通信时会发生问题。在包含串行外围接口(SPI)总线或接口的小芯片系统中,第一外围装置或次级装置通常可经配置以在指定数目的时钟循环内对来自控制器或初级装置的读取请求作出响应。可抑制通常耦合到一个或多个其它次级装置的SPI接口实行其它数据通信直到第一次级装置或所选择的第一小芯片发送其完成响应。本发明人已认识到,除了其它事项外,此问题的解决方案可包含在SPI消息中使用次级装置状态字段。次级装置状态字段可指示次级装置何时准备好发送响应。如果次级装置状态字段指示次级装置尚未准备好作出响应,那么初级装置可经配置以发出稍后请求或延期请求。本发明人已进一步认识到,除了其它事项外,初级装置可经配置以使用来自次级装置状态字段的信息来证实或确认事务状态。在实例中,初级装置可经配置以在预期次级装置状态字段时,使用在初级装置的数据输入端口处接收的信息来识别或确认SPI总线上一或多个端点或次级装置的存在或不存在,例如在初始化时或在操作期间的其它时间。举例来说,初级装置可经配置以在耦合到初级装置的数据输入端口的数据通道上不存在次级装置端点时感测其数据输入端口处的其自身上拉行为。下文提供额外细节及实例。
图1A及图1B说明根据实施例的可包含一或多个小芯片的第一系统100的实例。图1A是安装在外围板104上的小芯片系统110的表示,外围板104可通过例如外围组件互连高速(PCIe)连接到更大计算机系统。小芯片系统110包含封装衬底102、中介层120及四个小芯片(应用程序小芯片106、主机接口小芯片112、存储器控制器小芯片114及存储器装置小芯片118)。如将从以下论述明显看出,其它系统可包含额外小芯片以提供额外功能性。小芯片系统110的封装被说明为具有覆盖物或盖子126,但可使用用于小芯片系统110的其它封装技术及结构。图1B是为了清楚起见标记小芯片系统中的组件的框图。
应用程序小芯片106被说明为包含用于支持小芯片间通信网络或小芯片网络122的片上网络(NOC 108)。在实例实施例中,NOC 108可被包含于应用程序小芯片106上。在一些实例中,NOC 108可响应于所选择的支持小芯片(例如主机接口小芯片112、存储器控制器小芯片114或存储器装置小芯片118)而定义,从而使得设计者能够选择适当数目的小芯片网络连接或交换机以用于NOC 108。在实例中,NOC 108可经定位于单独小芯片上,或甚至经定位于中介层120内。在本文中所论述的实例中,NOC 108将小芯片间通信网络实施为小芯片协议接口(CPI)网络。
CPI是支持虚拟通道以在小芯片之间实现灵活且高速交互的基于分组的网络。CPI实现从小芯片内网络到小芯片网络122的桥接。举例来说,高级可扩展接口(AXI)是广泛用于设计芯片内通信的规范。然而,AXI规范涵盖各种各样的物理设计选项,例如物理通道的数目、信号时序、功率等。在单个芯片内,这些选项通常经选择以满足设计目标,例如功耗、速度等。然而,为了实现小芯片系统的灵活性,使用适配器(例如CPI)以介接于可经实施于各个小芯片中的各个AXI设计选项之间。通过启用物理通道到虚拟通道映射及利用分组化协议包封基于时间的信令,CPI跨小芯片网络122成功桥接小芯片内网络。
CPI可使用各种不同物理层来传输分组。物理层可包含简单的导电连接,或可包含用于增加电压的驱动器,或以其它方式促进在较长距离内传输信号。一个此类物理层的实例可包含高级接口总线(AIB),在各个实例中,其可经实施于中介层120中。AIB使用源同步数据传送以及转发时钟来传输及接收数据。分组相对于所传输的时钟以单倍数据速率(SDR)或双倍数据速率(DDR)跨AIB传送。各个通道宽度由AIB支持。当以SDR模式操作时,AIB通道宽度是20位的倍数(20、40、60、…),且对于DDR模式是40位的倍数:(40、80、120、…)。AIB通道宽度包含传输及接收信号两者。通道可经配置以具有对称数目个传输(TX)及接收(RX)输入/输出(I/O),或具有非对称数目个传输器及接收器(例如全部是传输器或全部是接收器)。通道可用作AIB控制器或外围设备,这取决于哪个小芯片提供控制器时钟。AIB I/O单元支持三种时控模式:异步(即非计时)、SDR及DDR。在各个实例中,非计时模式用于时钟及一些控制信号。SDR模式可使用仅专用的SDR I/O单元或双重使用的SDR/DDR I/O单元。
在实例中,CPI分组协议(例如点到点或可路由)在AIB通道内可使用对称接收及传输I/O单元。CPI串流协议允许更灵活使用AIB I/O单元。在实例中,用于串流模式的AIB通道可将I/O单元配置为全部TX、全部RX或一半RX及一半RX。CPI分组协议可以SDR或DDR操作模式使用AIB通道。在实例中,针对SDR模式,以80个I/O单元(即40个TX及40个RX)的增量来配置AIB通道,而针对DDR模式是40个I/O单元。CPI串流协议可以SDR或DDR操作模式使用AIB通道。在此,在实例中,针对SDR及DDR模式两者,AIB通道采用40个I/O单元为增量。在实例中,每一AIB通道被指派唯一接口标识符。标识符在CPI复位及初始化期间用于确定跨邻近小芯片的成对AIB通道。在实例中,接口标识符是包括七位小芯片标识符、七位列标识符及六位链路标识符的20位值。AIB物理层使用AIB带外移位寄存器来传输接口标识符。20位接口标识符使用移位寄存器的位32到51跨AIB接口在两个方向上传送。
AIB将一组堆叠AIB通道定义为AIB通道列。AIB通道列具有某一数目的AIB通道加辅助通道。辅助通道含有用于AIB初始化的信号。列内的所有AIB通道(除了辅助通道之外)都具有相同配置(例如全部TX、全部RX或一半TX及一半RX,以及具有相同数目的数据I/O信号)。在实例中,以邻近于AUX通道的AIB通道开始,以连续增加的顺序对AIB通道进行编号。邻近于AUX的AIB通道被定义为AIB通道0。
一般来说,个别小芯片上的CPI接口可包含序列化-反序列化(SERDES)硬件。SERDES互连对于其中期望具有低信号计数的高速信令的场景作用很好。然而,SERDES可导致用于多路复用及解复用、错误检测或校正(例如,使用块级循环冗余校验(CRC))、链路级重试或前向错误校正的额外功耗及更长延时。然而,当低延时或能量消耗是超短距离(ultra-short reach)小芯片到小芯片互连的主要关注点时,可利用具有允许以最小延时进行数据传送的时钟速率的并行接口。CPI包含用于使这些超短距离小芯片互连中的延时及能量消耗两者最小化的元件。
针对流控制,CPI采用基于信用的技术。接收方(例如应用程序小芯片106)向发送方(例如存储器控制器小芯片114)提供表示可用缓冲器的信用。在实例中,CPI接收方在给定的传输时间单位内包含用于每一虚拟通道的缓冲器。因此,如果CPI接收方在时间上支持五条消息及单个虚拟通道,那么接收方具有布置成五行的五个缓冲器(每一单位时间一行)。如果支持四个虚拟通道,那么接收方具有布置成五行的二十个缓冲器。每一缓冲器保持一个CPI分组的有效载荷。
当发送方传输到接收方时,发送方基于所述传输而递减可用信用。一旦接收方的所有信用都被消耗,发送方就停止向接收方发送分组。这确保接收方总是具有可用缓冲器来存储传输。
随着接收方处理接收到的分组及释放缓冲器,接收方将可用缓冲器空间传递回到发送方。接着,此信用返回可由发送方使用以允许额外信息的传输。
还说明在无需NOC 108的情况下使用直接小芯片到小芯片技术的小芯片网状网络124。小芯片网状网络124可以CPI或另一小芯片到小芯片协议实施。小芯片网状网络124通常启用小芯片管线,其中一个小芯片用作到管线的接口,而管线中的其它小芯片仅与其本身介接。
另外,例如SPI接口或一或多个标准存储器接口(例如存储器接口116)(举例来说,例如同步存储器接口,例如DDR5、DDR6)的专用装置接口也可用于互连小芯片。小芯片系统或个别小芯片到外部装置(例如较大系统)的连接可通过所期望的接口(例如PCIe接口)实现。在一些实例中,此外部接口可通过主机接口小芯片112实施,在所描绘的实例中,主机接口小芯片112提供小芯片系统110外部的PCIe接口。此类专用接口通常在行业中的惯例或标准已汇聚在这样的接口上时被采用。所说明的将存储器控制器小芯片114连接到动态随机存取存储器(DRAM)存储器装置的双倍数据速率(DDR)接口116的实例是此行业惯例的实例。
在各种可能的支持小芯片中,由于几乎无所不在地使用存储以进行计算机处理以及复杂最先进技术存储器装置,存储器控制器小芯片114很可能存在于小芯片系统110中。因此,使用由其他人生产的存储器装置小芯片118及存储器控制器小芯片114使小芯片系统设计者能够获得复杂的生产商的稳健产品。一般来说,存储器控制器小芯片114提供存储器装置特定接口来读取、写入或擦除数据。通常,存储器控制器小芯片114可提供额外特征,例如错误检测、错误校正、维护操作或原子操作执行。对于一些类型的存储器,维护操作趋向于特定于存储器装置小芯片118,例如NAND快闪或存储类存储器中的废弃项目收集、NAND快闪存储器中的温度调整(例如,交叉温度管理)。在实例中,维护操作可包含逻辑到物理(L2P)映射或管理来提供数据的物理与逻辑表示之间的间接水平。在一些快闪存储器配置中,例如,“受管理的NAND”装置,此类管理操作中的一些或全部都可在耦合到多个NAND存储器裸片的专用NAND存储器控制器的控制下。在例如DRAM的其它类型的存储器中,例如刷新的一些存储器操作在某些时间可由主机处理器或由存储器控制器控制,而在其它时间由DRAM存储器装置本身或由与例如接口芯片(在一些实例中,缓冲器)的一或多个DRAM装置相关联的逻辑控制。此接口/缓冲器可在一些实例中用于重新分布及改变接口与个别存储器装置之间的信号的时钟速率。在一些实例中,此接口/缓冲器可并入额外控制功能性。
原子操作是例如可由存储器控制器小芯片114执行的数据操纵。在其它小芯片系统中,原子操作可由其它小芯片执行。举例来说,原子操作“递增”可由应用程序小芯片106在命令中指定,所述命令包含存储器地址及可能包含递增值。在接收到命令之后,存储器控制器小芯片114便从经指定存储器地址检索数字、将所述数字递增命令中指定的量及存储结果。在成功完成之后,存储器控制器小芯片114便将命令成功的指示提供到应用程序小芯片106。原子操作避免跨小芯片网络122传输数据,从而导致此类命令的较低延时执行。
原子操作可经分类为内置原子或可编程(例如定制)原子。内置原子是不可变地实施于硬件中的一组有限操作。可编程原子是可在存储器控制器小芯片114的可编程原子单元(PAU)(例如定制原子单元(CAU))上运行的小程序。图1A说明论述PAU的存储器控制器小芯片的实例。
存储器装置小芯片118可为或可包含易失性存储器装置或非易失性存储器的任何组合。易失性存储器装置的实例包含(但不限于)随机存取存储器(RAM)——例如DRAM、同步DRAM(SDRAM)、图形双倍数据速率类型6SDRAM(GDDR6 SDRAM)等。非易失性存储器装置的实例包含(但不限于)与非(NAND)型快闪存储器、存储类存储器(例如相变存储器或基于忆阻器的技术)、铁电RAM(FeRAM)等。所说明的实例包含存储器装置小芯片118作为小芯片,然而,存储器装置小芯片118可驻留在别处,例如在外围板104上的不同封装中。针对许多应用,可提供多个存储器装置小芯片。在一些实例中,这些存储器装置小芯片每一者可实施一个或多个存储技术。在一些实例中,存储器小芯片可包含不同技术的多个堆叠式存储器裸片,例如与一或多个DRAM装置一起堆叠或以其它方式与其通信的一或多个SRAM装置。存储器控制器小芯片114还可用于协调小芯片系统110中的多个存储器小芯片之间的操作;例如,在一或多个高速缓存存储级中利用一或多个存储器小芯片,及将一或多个额外存储器小芯片用作主存储器。小芯片系统110还可包含多个存储器控制器,如可用于为单独处理器、传感器、网络等提供存储器控制功能性。例如小芯片系统110中的小芯片架构提供允许在无需重新设计系统结构的剩余部分的情况下通过更新的小芯片配置而适应不同存储器存储技术及适应不同存储器接口的特定优点。
图2说明根据实施例的存储器控制器小芯片218(例如图1A的存储器控制器小芯片114)的实例的组件。存储器控制器小芯片218包含高速缓存202、高速缓存控制器204、裸片外存储器控制器206(例如,用于与裸片外存储器230通信)、网络通信接口208(例如,用于与小芯片网络122介接)及与其它小芯片通信)、SPI控制器232及一组原子及合并操作220。这组的成员可包含例如写入合并单元222、危险单元(存储器危险清除单元224)、内置原子单元226或PAU 228。各个组件是在逻辑上进行说明的,而非其必然会被实施的样子。举例来说,内置原子单元226很可能沿着到裸片外存储器的路径包括不同的装置。举例来说,内置原子单元226可定位于存储器小芯片上的接口装置/缓冲器中,如上文论述。相比之下,可编程原子操作很可能经实施于存储器控制器小芯片218上的单独处理器中(但在各个实例中,可经实施于其它位置,例如经实施于存储器小芯片上)。
裸片外存储器控制器206直接耦合到裸片外存储器230(例如,经由总线或其它通信连接)以提供到裸片外存储器230的写入操作及来自裸片外存储器230的读取操作。在所描绘的实例中,裸片外存储器控制器206还经耦合用于输出到原子及合并操作220,及用于输入到高速缓存控制器204(例如存储器侧高速缓存控制器)。在实例中,裸片外存储器控制器206可使用SPI总线耦合到裸片外存储器230。
在实例中,裸片外存储器控制器206(例如,用于裸片外存储器的存储器控制器)可包含或包括SPI控制器232的一部分。SPI控制器232可耦合到SPI总线且经配置以管理存储器控制器小芯片114与一或多个其它小芯片(例如小芯片网络122或裸片外存储器230中的其它小芯片)之间的通信。在实例中,存储器控制器小芯片114可使用SPI控制器232实行与耦合到存储器控制器小芯片114的各种小芯片的初始化例程。一旦初始化,存储器控制器小芯片114可继续使用与小芯片的基于SPI的通信或可改变成使用其它协议或总线。
在实例中,SPI控制器232或总线控制器可提供于主机接口小芯片112上,且主机接口小芯片112可使用PCIe接口在小芯片系统110外部通信。存储器控制器(例如存储器控制器小芯片114)可为SPI存储器装置或SPI次级装置。存储器控制器又可经配置以使用另一存储器接口,例如存储器接口116。
在实例配置中,高速缓存控制器204直接耦合到高速缓存202,且可经耦合到网络通信接口208以用于输入(例如传入读取或写入请求),且可经耦合用于输出到裸片外存储器控制器206。
网络通信接口208包含分组解码器210、网络输入队列212、分组编码器214及网络输出队列216来支持基于分组的小芯片网络122,例如CPI。小芯片网络122可提供处理器、存储器控制器、混合线程处理器、可配置处理电路或通信接口之间及之中的分组路由。在此类基于分组的通信系统中,每一分组通常包含目的地及源寻址以及任何数据有效载荷或指令。在实例中,取决于配置,小芯片网络122可经实施为具有折叠式克劳斯(clos)配置的交叉开关集合或提供额外连接的网状网络。
在各个实例中,小芯片网络122可为异步交换构造的部分。在此,数据分组可沿着各个路径中的任何者路由,使得任何所选择的数据分组到达经寻址目的地可取决于路由在多个不同时间中的任何时间发生。另外,小芯片网络122可至少部分经实施为同步通信网络,例如同步网状通信网络。根据本公开,考虑使用两种通信网络配置。
存储器控制器小芯片218可接收具有例如源地址、读取请求及物理地址的分组。作为响应,裸片外存储器控制器206或高速缓存控制器204将从指定的物理地址(其可在裸片外存储器230中或在高速缓存202中)读取数据,且将含有所请求数据的响应分组汇编到源地址。类似地,存储器控制器小芯片218可接收具有源地址、写入请求及物理地址的分组。作为响应,存储器控制器小芯片218将数据写入到指定的物理地址(其可在裸片外存储器230或在高速缓存202中),且将含有确认数据被存储到存储器的响应分组汇编到源地址。
因此,存储器控制器小芯片218可经由小芯片网络122接收读取及写入请求,且(如果可能的话)使用与高速缓存202介接的高速缓存控制器204处理所述请求。如果请求不能由高速缓存控制器204处置,那么裸片外存储器控制器206通过与裸片外存储器230、原子及合并操作220或两者通信来处置所述请求。如上文指出,一或多个高速缓存级也可经实施于裸片外存储器230中,且在一些此类实例中可由高速缓存控制器204直接存取。由裸片外存储器控制器206读取的数据可由高速缓存控制器204高速缓存于高速缓存202中以供稍后使用。
原子及合并操作250经耦合以接收裸片外存储器控制器220的输出(作为输入),且将输出提供到高速缓存210、网络通信接口225或直接提供到小芯片网络280。复位或存储器危险清除单元224、写入合并单元222及内置(例如,预定)内置原子单元226各自可与另一组合逻辑电路系统(例如加法器、移位器、比较器、与(AND)门、或(OR)门、异或(XOR)门或其任何合适组合)或其它逻辑电路系统一起经实施为状态机。这些组件还可包含用于存储操作数或其它数据的一或多个寄存器或缓冲器。PAU 228可经实施为一或多个处理器核心或控制电路系统,且与其它组合逻辑电路系统或其它逻辑电路系统一起经实施为各种状态机,且还可包含用于存储地址、可执行指令、操作数及其它数据的一或多个寄存器、缓冲器或存储器,或可经实施为处理器。
写入合并单元222接收读取数据及请求数据,且将请求数据与读取数据合并以创建具有读取数据及源地址的单个单元以在响应或返回数据分组中使用)。写入合并单元222将经合并数据提供到高速缓存202的写入端口(或等效地,提供到高速缓存控制器204以写入到高速缓存202)。任选地,写入合并单元222将经合并数据提供到网络通信接口208以编码及准备响应或返回数据分组以在小芯片网络122上进行传输。
当请求数据用于内置原子操作时,内置原子单元226从写入合并单元222或直接从裸片外存储器控制器206接收请求及读取数据。执行原子操作,及使用写入合并单元222将所得数据写入到高速缓存202、或提供到网络通信接口208以编码及准备响应或返回数据分组以在小芯片网络122上进行传输。
内置原子单元226处置预定义原子操作,例如提取及递增或比较及交换。在实例中,这些操作对大小为32字节或更少的单个存储器位置执行简单读取-修改-写入操作。从经由小芯片网络122传输的请求分组发起原子存储器操作。请求分组具有物理地址、原子操作符类型、操作数大小及任选地高达32字节的数据。原子操作对高速缓存202的高速缓存存储器行执行读取-修改-写入,如果必要的话,填充高速缓存存储器。原子操作符响应可为简单的完成响应,或具有高达32字节数据的响应。实例原子存储器操作符包含提取及与(AND)、提取及或(OR)、提取及异或(XOR)、提取及加、提取及减、提取及递增、提取及递减、提取及最小化、提取及最大化、提取及交换,以及比较及交换。在各个实例实施例中,支持32位及64位操作以及对16或32个字节数据的操作。本文中公开的方法还可与支持更大或更小操作及更多或更少数据的硬件兼容。
内置原子操作还可涉及对所请求数据的“标准”原子操作的请求,例如相对简单的单个循环整数原子——例如提取及递增或比较及交换——其将以与不涉及原子操作的常规存储器读取或写入操作相同的吞吐量发生。对于这些操作,高速缓存控制器204通常可通过设置危险位(在硬件中)来保留高速缓存202中的高速缓存行,使得高速缓存行在其正转变时不能被另一过程读取。数据从裸片外存储器230或高速缓存202获得且经提供到内置原子单元226以执行所请求原子操作。在原子操作之后,除了将所得数据提供到分组编码器214以对传出数据分组进行编码以供在小芯片网络122上传输之外,内置原子单元226将所得数据提供到写入合并单元222,其还将所得数据写入到高速缓存202。在将所得数据写入到高速缓存202之后,被设置的任何对应危险位将由存储器危险清除单元224清除。
PAU 228实现可编程原子操作(还称为“定制原子操作”)的高性能(高吞吐量及低延时),其与内置原子操作的性能相当。不同于执行多个存储器存取,响应于指定可编程原子操作及存储器地址的原子操作请求,存储器控制器小芯片218中的电路系统将原子操作请求传送到PAU 228且设置存储在存储器危险寄存器中的对应于原子操作中使用的存储器行的存储器地址的危险位,以确保不会对那个存储器行执行其它操作(读取、写入或原子),接着,在原子操作完成之后便清除所述危险位。经提供用于PAU 228执行可编程原子操作的额外直接数据路径允许额外写入操作,而不会受到由通信网络的带宽施加的任何限制且不会增加通信网络的任何拥塞。
PAU 228包含多线程处理器,例如(举例来说)基于RISC-V ISA的多线程处理器,其具有一或多个处理器核心且进一步具有用于执行可编程原子操作的扩展指令集。当具有用于执行可编程原子操作的扩展指令集时,PAU 228可经体现为一或多个混合线程处理器。在一些实例实施例中,PAU 228提供桶式(barrel-style)轮询瞬时线程切换以维持高的每时钟指令速率。
可编程原子操作可由PAU 228执行,涉及对所请求数据的可编程原子操作的请求。用户可准备编程代码来提供此类可编程原子操作。举例来说,可编程原子操作可为相对简单的多循环操作,例如浮点加法,或相对复杂的多指令操作,例如布隆(Bloom)过滤器插入。可编程原子操作可与预定原子操作相同或不同,只要它们是由用户定义而非由系统供应商定义的。对于这些操作,高速缓存控制器204可通过设置危险位(在硬件中)来保留高速缓存202中的高速缓存行,使得高速缓存行在其正转变时不能被另一过程读取。数据从裸片外存储器230或高速缓存202获得且经提供到PAU 228以执行所请求可编程原子操作。在原子操作之后,PAU 228将所得数据提供到网络通信接口208,以对具有所得数据的传出数据分组直接进行编码以供在小芯片网络122上传输。另外,PAU 228将所得数据提供到高速缓存控制器204,其还将所得数据写入到高速缓存202。在将所得数据写入到高速缓存202之后,被设置的任何对应危险位将由高速缓存控制器204清除。
在所选择的实例中,为可编程原子操作采用的方法将提供多个通用定制原子请求类型,其可通过小芯片网络122从例如处理器或其它系统组件的始发源发送到存储器控制器小芯片218。高速缓存控制器204及/或裸片外存储器控制器206将请求识别为定制原子且将所述请求转发到PAU 228。在代表性实施例中,PAU 228:(1)是能够有效地执行用户定义的原子操作的可编程处理元件;(2)能执行加载及存储到存储器、算术及逻辑运算及控制流决策;及(3)利用具有一组新的专用指令的RISC-V ISA来促进与控制器交互以原子地执行用户定义的操作。在所期望的实例中,RISC-V ISA含有支持高级语言操作符及数据类型的一整组指令。PAU 228可利用RISC-V ISA,但当包含在存储器控制器小芯片218内时,通常将支持一组更有限的指令及有限的寄存器堆大小以减小单元的裸片大小。
如上文提及,在将读取数据写入到高速缓存202之前,用于经保留高速缓存行的设置危险位将被存储器危险清除单元224清除。因此,当请求及读取数据被写入合并单元222接收时,复位或清除信号可由存储器危险清除单元224传输到高速缓存202以将用于经保留高速缓存行的设置存储器危险位复位。而且,将此危险位复位还将释放涉及经指定(或经保留)高速缓存行的待决读取或写入请求,从而将待决读取或写入请求提供到入站请求多路复用器以供选择及处理。
在实例中,小芯片系统可经配置以包含或使用串行外围接口(SPI)总线或接口。SPI总线通常包含在两个装置(初级装置及次级装置)之间实现同步数据链路的多线串行通信接口。其对支持SPI的装置之间的低到中带宽网络连接提供支持。在具有SPI总线的小芯片系统中,初级装置可为第一小芯片,且一或若干次级装置可为使用SPI总线耦合到第一小芯片的一或多个其它小芯片。
SPI总线的线通常包含两个控制通道及两个数据通道。SPI总线的控制通道包含芯片选择(CS)通道及串行时钟通道(SCLK)。在一些实例中,多于一个次级装置可连接到初级装置,然而,在任何给定时间通常可存取仅一个次级装置。从多个次级装置之间选择特定次级装置可使用芯片选择或CS通道来完成。CS信号从初级装置输出且允许由初级装置激活及取消激活次级装置。在实例中,每个次级装置可使用其自身单独CS通道进行激活。在本文中论述的其它实例中,单个多点CS通道可用于多个次级装置的全局激活或取消激活,且唯一次级装置标识符可用于选择特定次级装置来从初级装置接收命令。
初级装置还可提供串行时钟信号。时钟信号可用于对串行数据移位进出初级及次级装置进行计时。使用此时钟允许SPI架构在初级/次级全双工模式中操作,其中数据可同时从一个装置传送到另一装置。
SPI总线的数据通道可包含串行数据输入(SDI)线及串行数据输出(SDO)线。SDI线是将数据从初级装置输出到次级装置的数据通信线。SDO线是用于将数据从次级装置输出到初级装置的第二数据通信线。当针对经指定次级装置激活芯片选择通道时,两个数据通道都有效,除非经指定次级装置经配置以依永远开启方式操作。
在实例中,小芯片系统110中的多个小芯片的I/O通道的初始化可包含或使用SPI总线。使用SPI总线,多小芯片I/O接口的所有小芯片的I/O通道可在单个系统内是可互操作的。本文中论述的基于SPI的技术可用于基于硬件及基于软件的初始化机制两者以保证经互连小芯片I/O通道的互操作性。
图3大体上说明SPI系统300的实例。SPI系统300可包含初级装置312或第一小芯片,其与次级装置或第二小芯片(例如SPI存储器装置302)介接。在实例中,SPI系统300可包括来自图1A的实例的第一系统100或来自图2的实例的第一实例200的一部分。举例来说,初级装置312及SPI存储器装置302中的一或多者可为第一系统100中的相应小芯片。在实例中,第一系统100包含初级装置312,SPI存储器装置302驻留在第一系统100外部,且初级装置312使用SPI接口与SPI存储器装置302通信。
在实例中,初级装置312包括存储器控制器小芯片114及SPI控制器232,且裸片外存储器230包括SPI存储器装置302。初级装置312可包含用于耦合到SPI接口中的相应通道或总线的端口。举例来说,初级装置312可包含经配置以从数据通信通道接收数据信号的数据输入端口338、经配置以将数据信号提供到不同数据通信通道的数据输出端口340、经配置以使用芯片选择信号总线将芯片选择信号提供到一个或多个次级装置的芯片选择信号端口342及经配置以将系统时钟信号提供到时钟信号通道的时钟信号端口344。
在实例中,存储器装置312的端口中的一或多者可包含或使用缓冲器电路系统,例如三态缓冲器电路系统。举例来说,数据输入端口338或数据输出端口340可包含相应三态缓冲器电路系统。缓冲器电路系统可在内部提供到初级装置312或可在外部。在实例中,数据输入端口338经耦合到上拉电路系统,其经配置以在数据输入端口338处维持固定电压或电流,例如在经耦合到数据输入端口338的总线或通道未被使用或未被占用时,例如在数据事务之间或在总线上没有次级装置被初级装置312选择时。
外围装置或次级装置(例如SPI存储器装置302)可包含次级装置控制器314,其具有多个接口端口或引脚,包含用于接收选择信号318的芯片选择(CS)端口、用于接收时钟信号320的时钟(SCLK)端口、用于从初级装置312接收次级装置输入信号322的控制器输出外围输入端口(COPI端口或MOSI端口)端口及用于将次级装置输出信号316提供到初级装置312的控制器输入外围输出端口(CIPO端口或MISO端口)。初级装置312与SPI存储器装置302或次级装置之间的数据传送可使用次级装置输出信号316及次级装置输入信号322串行且同步地发生。在实例中,SPI存储器装置302的CIPO端口可经配置以包含或使用三态缓冲器电路系统。当SPI存储器装置302未被选择用于与初级装置312通信(例如,根据CS端口上的信号选择)时,三态缓冲器电路系统可经配置以维持CIPO端口处于高阻抗状态或有效电断开的状态中。当SPI存储器装置302经选择用于通信时,接着,SPI存储器装置302及缓冲器电路系统可经配置以使用适于给定系统的逻辑电平通信信号(例如高/低信号)。
在实例中,SPI存储器装置302可包含装置标识符310。装置标识符310可包含可例如响应于静态ID输入静态地或动态地指派给特定值的存储器地址或寄存器。即,装置标识符310可静态地或动态地绑定到唯一地识别SPI存储器装置302的值,例如当SPI存储器装置302与SPI系统300中的其它次级装置一起使用时。
在实例中,初级装置312可通过将芯片选择信号318设置为低来启用次级装置控制器314。在实例中,次级装置控制器314可使用SPI存储器装置302处的静态绑定的芯片选择端口来启用,例如当CS信号未使用或不可用时。在次级装置控制器314被启用之后,初级装置312可发送时钟信号320及对应数据信号或次级装置输入信号322。在次级装置输入信号322或次级装置输出信号316中传输的每一位可与时钟信号320的上升沿或下降沿同步。在实例中,初级装置312可在锁存于上升时钟沿上的次级装置输入信号322上提供数据,且SPI存储器装置302可在下降沿上的次级装置输出信号316上提供数据。在此实例中,时钟信号320的第一上升沿可对应于次级装置输入信号322的第一位,且时钟信号320的后续上升时钟沿可对应于次级装置输入信号322的后续位。类似地,在次级装置输出信号316上输出的每一位可在时钟信号320的下降沿上转变。可类似地使用其它信号时序方案。
在实例中,初级装置312与次级装置控制器314之间的通信可在初级装置312将选择信号318设置为低时开始。初级装置312随后可发送时钟信号320且开始使用次级装置输入信号322传输消息。在实例中,消息可包含单字节命令,接着是一或多个完整字节的存储器地址,且进一步接着是一或多个完整字节的数据。次级装置控制器314可通过使用次级装置输出信号316发送同步消息作出响应。由于常规SPI的性质,次级装置控制器314可经配置以在次级装置输出信号316上输出信息直到初级装置312预期或经配置以接收响应的指定或预期时间为止。
在实例中,初级装置312可在消息中将写入寄存器命令或读取寄存器命令发送到次级装置控制器314。写入寄存器命令或读取寄存器命令可配置次级装置控制器314以存取存储器寄存器324。数据传送到次级装置控制器314及寄存器324及从次级装置控制器314及寄存器324传送数据可使用寄存器总线334,例如可具有专用控制线。寄存器324可包含例如状态寄存器以指示装置操作状态及/或特殊模式启用寄存器,例如块写入锁定寄存器或BWL寄存器326,例如以防止存储器的某些部分被写入。在实例中,寄存器324可包含:一次性可编程(OTP)启用寄存器或OTP寄存器328,例如用于实现从存储器的OTP部分读取或写入到存储器的OTP部分;及/或参数页面(PP)启用寄存器或PP寄存器330,例如用于实现从存储器的参数页面读取或写入到存储器的参数页面。在实例中,次级装置控制器314可经配置以在其执行其它内部操作时存取寄存器324。
在实例中,对寄存器324进行存取可准许用户或客户端控制SPI存储器装置302的功能方面,例如输出缓冲器驱动强度、用于输出数据的延时的所期望的时钟循环数目、要求全部字节或使用最小的地址数目的地址循环格式及/或是启用还是停用错误校正码(ECC)。某些寄存器可保持例如错误状态信息,例如可在寄存器写入命令发出之后复位,而其它寄存器可使用户能基于改变时钟信号320的频率来控制时序。在实例中,寄存器可经配置以使SPI存储器装置302能在不同模式及接口之间切换,例如在SPI NAND与NAND用户模式及接口之间。
在实例中,为了在经指定存储器地址处执行操作,次级装置控制器314可使用总线将存储器地址信号发送到行及列解码器(未描绘)。次级装置控制器314可使用控制线控制行及列解码器的激活。取决于操作,次级装置控制器314可例如使用高速缓存总线332将数据字节加载到高速缓存寄存器304中。在实例中,NAND阵列308可通过数据寄存器306例如与高速缓存寄存器304协调地接收数据,例如一次一个页面。
在实例中,第一SPI外围设备或第一SPI次级装置(例如SPI存储器装置302或其它次级装置或小芯片)可经配置以在经指定数目的时钟循环内对来自控制器或其它小芯片(例如初级装置312)的读取请求作出响应。可阻碍例如可耦合到一个或多个次级装置或小芯片的SPI总线实行其它数据通信直到第一SPI外围设备或次级装置向初级装置312发送完成响应。本发明人已认识到,除了其它事项外,此总线占用问题的解决方案可包含在从第一SPI次级装置发送的SPI消息中使用次级装置状态字段。举例来说,次级装置状态字段可包含于传递到初级装置312的次级装置输出信号316中。次级装置状态字段可指示发送次级装置准备好或尚未准备好发送响应。当次级装置状态字段指示次级装置尚未准备好发送响应时,接着,初级装置312可经配置以向次级装置发出稍后或延期请求。本文中论述的系统及方法可因此用于使长延时SPI操作能在后台中继续,同时SPI总线用于例如初级装置312与一或多个其它次级装置之间的其它通信或事务。在实例中,本文中论述的系统及方法可在小芯片系统的初始化例程期间使用,例如,使用SPI操作及硬件用于转变到其它协议或总线之前的初始通信。
在实例中,针对包含次级装置状态字段的消息,初级装置312可经配置以监测CIPO端口,例如数据输入端口338。在实例中,耦合到CIPO端口的数据通信通道可能在对应于初级装置312预期响应消息时的响应周期或时间的一时钟周期或经指定数目的时钟信号循环期间未被使用或未被占用。换句话说,初级装置312可在时钟信号320的特定数目的循环内预期来自次级装置(例如SPI存储器装置302)的响应消息,且响应消息可经配置以包含次级装置状态字段。在不包含响应消息的实例中,初级装置312可经配置以读取数据输入端口338处的上拉信号或将其解译为关于次级装置状态的信息。如果上拉信号在经指定数目的时钟循环(例如,取决于系统的配置,一个、两个或更多个循环)内是高的,那么初级装置312可确定通道处没有次级装置端点。
在实例中,当次级装置以延期读取响应状态作出响应,那么初级装置312可将针对延期信息的稍后读取请求进行排队。在从次级装置接收到延期读取响应状态信息与发出稍后延期读取请求之间,初级装置312可使用相同SPI总线执行其它操作。在实例中,初级装置312最终可例如使用特殊请求信号发出延期读取请求。在实例中,初级装置312可在从次级装置接收延期读取响应之后立即发出延期读取请求,或初级装置312可在经指定或可变消隐周期之后发出延期读取请求。
在实例中,响应于初级装置312使用特殊请求信号发出延期读取请求,如果有效负载尚不可用,那么次级装置可任选地发出另一延期。如果有效负载可用,那么次级装置可用包含成功次级装置状态字段及有效负载的消息作出回复。
图4及图5的实例大体上说明实例通信方法或时序图,其可包含或使用次级装置标识符且可用于使用SPI总线实行延期-响应通信。时序图描述在SPI总线上使用多个不同信号通道或总线进行的通信。表1描述用于所说明的消息字段及相关联消息内容或用途的时序图中的惯例。
表1:SPI延期-响应通信中的实例消息字段
在实例中,从初级装置发送到次级装置的消息可包含2位命令字段(例如,表1中的C[1:0])。命令字段可包括次级装置输入信号322的一部分且可指示来自初级装置312的命令或指令。在实例中,命令字段可包含关于接收装置或次级装置是否被指示执行读取操作或写入操作的信息。在实例中,命令字段可指示控制器请求(例如读取请求)是初始请求还是延期请求。
在实例中,消息可包含7位小芯片标识字段及奇偶校验位(例如,表1中的ID[6:0]及IDP)。小芯片标识字段可包含标识符,其可用于例如寻址系统中(例如小芯片系统110中)的特定小芯片或特定次级装置。在实例中,小芯片标识字段可在外围设备或次级装置SPI芯片选择通道不可用于或未用于SPI总线中时使用。在实例中,小芯片标识字段可用于减少或消除在SPI总线中要求或使用的芯片选择通道或线的数目。
在实例中,32位地址及奇偶校验位(例如,表1中的A[31:0]及AP)可跟随在小芯片标识消息之后。地址消息可用于例如定位特定寄存器,例如在数据寄存器306中或在小芯片系统110中的其它位置。在实例中,64位数据消息及奇偶校验位(例如,表1中的D[63:0]及DP)可跟随在地址消息之后。数据消息可包括数据有效负载例如用于存储于次级装置中或从次级装置检索。
在实例中,包含次级装置状态字段及奇偶校验位(例如,表1中的S[2:0]及SP)的消息可从次级装置提供到初级装置。在实例中,次级装置状态字段可为一个、两个、三个或更多个位字段或消息。在本文中说明的实例中,次级装置状态字段包括3位消息及奇偶校验位,然而,次级装置状态字段或消息可经配置以取决于要交换的信息量而具有更多或更少位。各种命令或信息可编码于次级装置状态字段中,例如以指示成功操作、不成功或未完成操作或故障。表2大体上描述可编码于次级装置状态消息中的各种命令或信息。
表2:次级装置状态消息命令
本文中论述的各种消息字段、用途及消息分量仅是实例且不应被视为具限制性。举例来说,可使用其它额外消息字段,或在SPI延期-响应通信中可使用更少消息字段。在实例中,各种字段可以不同顺序或序列布置以类似地提供延期-响应通信。字段或消息分量的各种大小或位长度仅作为实例被提供。
使用表1中提供的惯例,图4大体上说明第一时序图400,其包含使用次级装置标识字段408用于读取操作,且图5大体上说明第二时序图500,其包含使用次级装置状态字段508用于写入操作。
图4的实例展示使用SPI总线例如在初级装置312与SPI存储器装置302之间传递的各种信号的通用时序图。图4包含例如SPI总线中的单独通道上的选择信号318、时钟信号320、次级装置输入信号322及次级装置输出信号316的实例。如上文提及,初级装置312可通过将选择信号318设置为低来发起通信,如大体上由附图标记402指示。
在图4的实例中,时钟信号320的第一上升沿404对应于2位命令字段的第一位。在图4中,2位命令字段是0-1且向次级装置指示消息包含第一或初始读取指令。在命令字段之后,初级装置312可发送消息的小芯片标识字段部分。小芯片标识字段可包含SPI总线上或系统中存在的多个次级装置中的特定者的n位标识符。小芯片标识字段之后接着可为地址字段,例如用于指示寄存器位置。各种消息位分量的位可对应于时钟信号320中的相应脉冲。在图4的实例中,消隐周期可跟随在地址字段之后。
响应于命令、小芯片标识及地址字段,次级装置可准备响应且将响应传递到初级装置312,例如使用次级装置输出信号316。在图4的实例中,次级装置输出信号316包括引领次级装置状态字段410的信号。取决于次级装置状态字段410中的信息,次级装置输出信号316可包含或包括有效负载,例如包括n位数据字段。通信可在初级装置312将选择信号318设置为高时终止,例如在图4中由附图标记412指示。
在实例中,例如当由初级装置312寻址或选择的特定次级装置不可操作或未使用时,次级装置输出信号316可能不可用或不存在。如果特定次级装置不存在,那么无法响应于次级装置输入信号322中的读取消息来驱动初级装置312的CIPO端口或数据输入端口338。在实例中,初级装置312可包含或使用数据输入端口338处的上拉电路系统以保持CIPO端口处于非零状态中,包含当数据总线处不存在次级装置时。因此,初级装置312可经配置以例如在呈现读取消息之后的时钟循环期间由于上拉电路系统从数据输入端口338读取非零状态信息,例如对应于次级装置标识字段408。初级装置312可将非零状态信息解译为次级装置状态字段的一部分,例如可指示当非零状态信息在经指定数目的时钟循环内表示高信号时(例如,当次级装置标识字段408是1-1-1时,例如当次级装置状态字段经配置以包含三个位时)不存在次级装置端点。
图5的实例展示使用SPI总线例如在初级装置312与SPI存储器装置302之间传递的各种信号的第二时序图500。图5包含选择信号318、时钟信号320、次级装置输入信号322及次级装置输出信号316的实例。如上文提及,初级装置312可通过将选择信号318信号设置为低来发起通信,如大体上由附图标记502指示。
在图5的实例中,时钟信号320的第一上升沿504对应于2位命令字段的第一位。在图5中,2位命令字段是1-0且向次级装置指示消息包含写入指令。在命令字段之后,初级装置312可发送小芯片标识字段,例如接着是地址字段,例如用于指示特定次级装置及所述特定次级装置上的寄存器位置。在地址字段之后,初级装置312可发送数据字段或有效负载,例如用于存储于由通信的地址字段部分中的信息指示的寄存器中。在图5的实例中,消隐周期可跟随在数据字段之后。
在消隐周期之后且响应于写入指令,次级装置可使用次级装置输出信号316将消息返回到初级装置312。在图5的实例中,返回消息可包含次级装置状态字段508。使用次级装置状态字段508中的信息,初级装置312可经配置以作出特定响应动作。举例来说,次级装置状态字段508可向初级装置312指示其应将延期读取请求排队例如到相同或不同次级装置。可使用例如上文在表2中描述的次级装置状态字段508等指示各种其它动作。
在实例中,例如当由初级装置312寻址或选择的特定次级装置不可用、不可操作或未使用时,次级装置输出信号316可能不可用或不存在。如果特定次级装置不存在,那么无法响应于次级装置输入信号322中的读取消息驱动初级装置312的CIPO端口或数据输入端口338。由于初级装置312的数据输入端口338处的上拉电路系统,数据输入端口338可被维持处于非零状态中,包含当数据总线处不存在次级装置时。因此,初级装置312可经配置以在来自初级装置312的写入消息之后从数据输入端口338读取非零状态信息,例如对应于次级装置状态字段508。初级装置312可将非零状态信息解译为当非零状态信息在经指定数目的时钟循环内表示高信号时(例如,当次级装置状态字段508是1-1-1时,例如当次级装置状态字段经配置以包含三个位时)不存在次级装置端点的指示。
图6大体上说明使用SPI接口及包含次级装置状态信息的数据消息进行通信的第一方法600的实例的流程图。在图6的实例中,第一方法600在框602处以在第一小芯片的数据输入端口处提供上拉信号开始。在实例中,框602可包含在初级装置312的数据输入端口338处使用缓冲器电路系统提供上拉信号。
在框604处,第一方法600可包含使用SPI接口将时钟信号及第一消息从第一小芯片或初级装置传递到第二小芯片或次级装置。在实例中,框604可包含使用初级装置312将时钟信号320提供到SPI存储器装置302且并发地将第一消息(例如包括次级装置输入信号322的一部分)提供到SPI存储器装置302。举例来说,框604可包含写入指令的一部分,例如在图5中说明,且可任选地包含将消息从初级装置312发送到SPI存储器装置302,其中消息包含次级装置标识字段510及数据有效负载512。
在框604之后,第一小芯片完成其传出消息,且在框606处,第一小芯片可经配置以监听或监测数据输入端口的响应消息。举例来说,初级装置312可经配置以监测数据输入端口338的来自第二小芯片的响应消息。
在框608处,初级装置312可经配置以使用来自数据输入端口338的信息以识别次级装置状态回复。在实例中,次级装置状态回复可包含在第一小芯片的数据输入端口处接收到或感测到的信息,且可任选地包含由第二小芯片准备且发送到第一小芯片的消息。
图7大体上说明可包含分析由第一小芯片接收到的次级装置状态回复的第二方法700的实例的流程图。在实例中,第二方法700在框702处以识别或接收初级装置或第一小芯片处的次级装置状态回复开始。在实例中,框702可包含或对应于来自图6的实例的框608。
在框702处,第二方法700可在决策框704处继续。在决策框704处,第一小芯片可确定次级装置状态回复是否对应于在第一小芯片的数据输入端口处存在的上拉信号。上拉信号的特性(例如信号量值信息)可由第一小芯片先验地获知。
如果在决策框704处次级装置状态回复不对应于上拉信号,那么第二方法700在框706处继续。举例来说,如果上拉信号的量值特性不同于次级装置状态回复中的量值信息,那么第二方法700可继续到框706。在706处,第二方法700可包含使用次级装置状态回复中的信息来识别响应消息的次级装置状态字段。次级装置状态字段中的信息可指示第一小芯片或初级装置与第二小芯片或次级装置之间的事务的状态。举例来说,除了其它事项外,状态可包含通信延期状态或奇偶校验错误(参阅例如表2)。
如果在决策框704处次级装置状态回复确实对应于上拉信号,那么第二方法700在框708处继续。举例来说,如果上拉信号的量值特性类似于次级装置状态回复中的量值信息,那么第二方法700可继续到框708。在实例中,次级装置状态回复可包含在第一小芯片的数据输入端口处接收到或感测到的关于端口处的上拉信号或缓冲器参考值的信息。换句话说,次级装置状态回复可包含当没有其它端点或次级装置或小芯片主动向第一小芯片发送响应消息时在第一小芯片的输入端口处感测到的信息。在实例中,当次级装置状态回复例如在经指定数目的时钟循环内包含上拉信号或参考值信息时,接着,第一小芯片或初级装置312可确定第二小芯片或SPI存储器装置302未被成功启用、未通过第一消息成功到达或第二小芯片未经配置以理解第一消息或对第一消息作出响应。
图8说明本文中论述的技术(例如方法)中的任一者或多者可利用其、在其中或通过其实施的实例机器800的框图。如本文中描述,实例可包含机器800中的逻辑或数个组件或机构或可由机器800中的逻辑或数个组件或机构操作。电路系统(例如处理电路系统)是实施于包含硬件(例如简单电路、门、逻辑等)的机器800的有形实体中的电路集合。电路系统成员关系可随着时间为灵活的。电路系统包含在操作时可单独或组合地执行经指定操作的成员。在实例中,电路系统的硬件可经不变地设计以实行特定操作(例如硬接线)。在实例中,电路系统的硬件可包含可变连接的物理组件(例如执行单元、晶体管、简单电路等),包含物理上经修改(例如,不变质量粒子的磁性、电、可移动置放等)以对所述特定操作的指令进行编码的机器可读媒体。在连接物理组件中,硬件构成的基础电性质(例如)从绝缘体改变为导体或反之亦然。指令使得嵌入式硬件(例如,执行单元或加载机构)能够经由可变连接创建硬件中的电路系统的成员以在操作中实行特定操作的部分。因此,在实例中,机器可读媒体元件是电路系统的部分或当装置操作时通信地耦合到电路系统的其它组件。在实例中,物理组件中的任何者可用于多于一个电路系统的多于一个成员中。例如,在操作下,执行单元可在一时间点用于第一电路系统的第一电路中,且在不同时间由第一电路系统中的第二电路或由第二电路系统中的第三电路再使用。关于机器800的这些组件的额外实例如下。
在替代性实施例中,机器800可作为独立装置操作或可连接(例如联网)到其它机器。在联网部署中,机器800可在服务器-客户端网络环境中作为服务器机器、客户端机器或两者而操作。在实例中,机器800可在对等(P2P)(或其它分布式)网络环境中充当对等机器。机器800可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络设备、网络路由器、交换机或桥接器或能够(循序或以其它方式)执行指定由所述机器所采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”还应被视为包含个别或联合执行一组(或多组)指令以执行本文中论述的方法中的任一或多者的机器的任何集合,例如云计算、软件即服务(SaaS)、其它计算机集群配置。
机器800(例如计算机系统)可包含硬件处理器802(例如中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器808、静态存储器810(例如用于固件的存储器或存储装置、微代码、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)等)及大容量存储装置812(例如硬盘驱动器、磁带驱动器、快闪存储装置或其它块装置),其中一些或所有可经由互链818(例如总线,例如SPI总线)彼此通信。机器800可进一步包含显示器装置820、字母数字输入装置822(例如键盘)及用户接口(UI)导航装置824(例如鼠标)。在实例中,显示器装置820、输入装置822及导航装置824可为触摸屏显示器。机器800可另外包含大容量存储装置812(例如驱动单元)、信号产生装置828(例如扬声器)、网络接口装置814及一或多个传感器826(例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器)。机器800可包含输出控制器830,例如用以通信或控制一或多个外围装置(例如打印机、读卡器等)的串行(例如通用串行总线(USB)、并行、或其它有线或无线(例如红外(IR)、近场通信(NFC)等)连接。
处理器802、主存储器808、静态存储器810或大容量存储装置812的寄存器可为或包含机器可读媒体806,在其上存储体现本文中描述的技术或功能中的任一或多者或由本文中描述的技术或功能中的任一或多者利用的一或多组数据结构或指令804(例如软件)。指令804还可在其由机器800执行期间完全或至少部分驻留于处理器802、主存储器808、静态存储器810或大容量存储装置812的寄存器中的任何者内。在实例中,硬件处理器802、主存储器808、静态存储器810或大容量存储装置812中的一者或任何组合可构成一或若干机器可读媒体806。虽然将机器可读媒体806说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令804的单个媒体或多个媒体(例如集中式或分布式数据库或相关联高速缓存及服务器)。在实例中,各种存储器单元或处理器802可使用总线(例如SPI总线)通信地耦合。
术语“机器可读媒体”可包含能够存储、编码或携载由机器800执行的指令且致使机器800执行本公开的技术中的任一或多者,或能够存储、编码或携载由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器、光学媒体、磁性媒体及信号(例如射频信号、其它基于光子的信号、声音信号等)。在实例中,非暂时性机器可读媒体包括具有含不变(例如静止)质量的多个粒子的机器可读媒体,且因此是物质的组合物。因此,非暂时性机器可读媒体是不包含暂时性传播信号的机器可读媒体。非暂时性机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))及快闪存储器装置;磁盘,例如内部硬盘及可装卸磁盘;磁光盘;及CD-ROM及DVD-ROM磁盘。
在实例中,存储或以其它方式提供于机器可读媒体806上的信息可表示指令804,例如指令804本身或可从其导出指令804的格式。可从其导出指令804的此格式可包含源代码、经编码指令(例如呈压缩或加密形式)、经封装指令(例如,分为多个包)或类似物。表示机器可读媒体806中的指令804的信息可由处理电路系统处理成用于实施本文中论述的任何操作的指令。举例来说,从信息导出指令804(例如,由处理电路系统处理)可包含:编译(例如,从源代码、目标代码等)、解译、加载、组织(例如,动态或静态链接)、编码、解码、加密、解密、封装、解封装或以其它方式将信息操纵成指令804。
在实例中,指令804的导出可包含信息的汇编、编译或解译(例如,通过处理电路系统)以从由机器可读媒体806提供的一些中间或经预处理格式创建指令804。信息当被提供于多个部分中时可经组合、解包及修改以创建指令804。举例来说,信息可在一或若干远程服务器上的多个压缩源代码包(或目标代码或二进制可执行代码等)中。如果必要的话,源代码包可在经由网络输送时被加密及解密、解压缩、汇编(例如链接),并在本地机器处进行编译或解译(例如编译或解译成库、独立可执行等)且由本地机器执行。
指令804可进一步利用数个传送协议(例如帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)中的任一者经由网络接口装置814使用传输媒体通过通信网络816发射或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如因特网)、移动电话网络(例如蜂窝网络)、普通老式电话(POTS)网络及无线数据网络(例如电气及电子工程师协会(IEEE)802.11系列标准(称为)、IEEE 802.16系列标准(称为/>))、IEEE 802.15.4系列标准、对等(P2P)网络,等等。在实例中,网络接口装置814可包含一或多个物理插孔(例如以太网络、同轴或电话插孔)或一或多个天线以连接到通信网络816。在实例中,网络接口装置814可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者进行无线通信。术语“传输媒体”应被视为包含能够存储、编码或携载由机器800执行的指令的任何无形媒体,且包含用于促进此软件的通信的数字或模拟通信信号或其它无形媒体。传输媒体是机器可读媒体。
以下是根据本文中的教示的实例或装置及方法。在实例中,以下实例中的一或多者可与SPI系统一起用于确认系统中次级装置的存在或不存在及/或实行系统中初级与第二装置或小芯片之间的延期事务。
实例1可包含一种设备,其包含:初级小芯片,其使用针对串行外围接口(SPI)协议配置的SPI接口能耦合到多个次级小芯片,其中所述初级小芯片包含耦合到所述SPI接口的相应第一及第二数据通道的第一及第二数据端口,其中所述初级小芯片经配置以:使用所述第一数据端口发送第一消息,所述第一消息包括经配置以存取所述多个次级小芯片中的所选择的第一小芯片的命令字段,所述所选择的第一小芯片经配置为SPI次级装置。在实例1中,所述初级小芯片可经配置以使用所述第二数据端口接收关于所述多个次级小芯片的通信状态的信息,包含关于所述第一消息是否成功到达所述所选择的第一小芯片的信息。
实例2可包含或使用实例1所述的特征,其中所述初级小芯片经配置以响应于所述第一消息从所述所选择的第一小芯片接收响应消息,且所述响应消息包含指示所述第一消息成功到达所述所选择的第一小芯片的次级装置状态字段。
实例3可包含或使用实例2所述的特征,其中所述次级装置状态字段指示所述所选择的第一小芯片将特定数据有效负载提供到所述初级小芯片的准备状态。
实例4可包含或使用实例2或实例3所述的特征,其中所述次级装置状态字段包含经设置以指示延期返回状态的一或多个位。在实例4中,所述初级小芯片可进一步经配置以响应于接收到具有经设置以指示所述延期返回状态的一或多个位的响应消息而向所述所选择的第一小芯片发送延期读取请求。
实例5可包含或使用实例2到4所述的特征,其中所述次级装置状态字段可包含经设置以指示数据奇偶校验错误的一或多个位。
实例6可包含或使用先前实例中的任何者所述的特征,其中所述初级小芯片包含经配置以在所述第二数据端口处提供上拉信号的电路系统。
实例7可包含或使用实例6所述的特征,其中所述初级小芯片经配置以使用所述上拉信号识别关于所述多个次级小芯片的所述通信状态的所述信息。
实例8可包含或使用实例6或7所述的特征,其中在所述第二数据通道上不存在响应于所述第一消息的响应消息的情况下,所述初级小芯片可经配置以使用所述上拉信号识别关于所述多个次级小芯片的所述通信状态的所述信息。
实例9可包含或使用先前实例中的任何者所述的特征,其中关于所述多个次级小芯片的所述通信状态的所述信息指示所述第二数据通道中不存在所述多个次级小芯片。
实例10可包含或使用先前实例中的任何者所述的特征,其中实例10可进一步包括所述多个次级小芯片,其中所述多个次级小芯片中的每一者包含耦合到所述SPI接口的所述第二数据通道的相应数据输出端口,且所述多个次级小芯片中的每一者可经配置在其未用于与所述初级小芯片通信时将其相应数据输出置于三态。
实例11可包含一种系统,其包括:初级小芯片,其使用经配置以使用串行外围接口(SPI)协议的SPI接口耦合到多个次级小芯片;及所述多个次级小芯片中的所选择的第一小芯片,所述所选择的第一小芯片经配置以使用所述SPI接口与所述初级小芯片介接。在实例11中,所述初级小芯片可经配置以执行包括以下的操作:例如,使用所述SPI接口的时钟通道将时钟信号发送到所述所选择的第一小芯片;使用所述SPI接口的第一数据通道发送第一消息,所述第一消息包括命令字段及寄存器地址字段,所述命令字段包含用于启用所述所选择的第一小芯片上的控制器的一或多个位,且所述寄存器地址字段包含用于寻址所述所选择的第一小芯片上的特定存储器寄存器的一或多个位;及使用所述SPI接口的第二数据通道接收关于所述多个次级小芯片的通信状态信息。
实例12可包含或使用实例11所述的特征,其中所述初级小芯片可进一步经配置以执行包括以下的操作:例如,使用所述SPI接口的芯片选择通道将芯片选择信号发送到所述所选择的第一小芯片;及使用所述SPI接口的所述第二数据通道从所述所选择的第一小芯片接收响应消息,其中所述响应消息包含指示所述初级小芯片与所述所选择的第一小芯片之间的事务的状态的次级装置状态字段。
实例13可包含或使用实例12所述的特征,其中所述次级装置状态字段包含经设置以指示延期返回状态的一或多个位,且所述初级小芯片可进一步经配置以响应于接收到所述响应消息而向所述所选择的第一小芯片发送延期读取请求。
实例14可包含或使用实例11到13中的任何者所述的特征,其中所述初级小芯片可包含耦合到所述SPI接口的所述第二数据通道的数据输入端口,且所述初级小芯片可经配置以在所述数据输入端口处提供上拉信号。
实例15可包含或使用实例11到14中的任何者所述的特征,其中所述初级小芯片经配置以基于所述上拉信号的量值特性确定所述多个次级小芯片的通信状态。
实例16可包含或使用实例14或15中的任何者所述的特征,其中当所述初级小芯片经由所述时钟信号的一系列脉冲检测到所述数据输入端口处的所述上拉信号时,所述初级小芯片经配置以确定包含所述所选择的第一小芯片的所述多个次级小芯片从所述SPI接口的所述第二数据通道解耦。
实例17可包含一种用于确定次级装置是否可用于使用针对串行外围接口(SPI)协议配置的SPI接口与初级装置通信的方法,其中所述初级装置包含数据输入端口及数据输出端口,且其中所述初级装置经配置以在所述数据输入端口处提供上拉信号。实例17可包含包括以下的步骤:在所述初级装置处,使用所述SPI接口的时钟端口及时钟通道发送时钟信号;使用所述数据输出端口及所述SPI接口的第一数据通道发送第一消息,所述第一消息包括经配置以存取所述次级装置的命令字段;从所述数据输入端口接收信息;及基于所述上拉信号的参考量值与从所述数据输入端口接收的所述信息之间的关系确定所述SPI接口上所述次级装置的存在或不存在。
实例18可包含或使用实例17所述的特征,其中确定所述SPI接口上所述次级装置的所述存在或不存在可包含使用关于所述上拉信号的所述参考量值的信息及使用在所述时钟信号的多个循序循环内从所述数据输入端口接收的信息。
实例19可包含或使用实例17或18中的任何者所述的特征,且可进一步包含在所述次级装置处,接收所述第一消息且作为响应使用所述SPI接口的第二数据通道向所述初级装置发送响应消息,其中所述初级装置的所述数据输入端口耦合到所述第二数据通道,且其中所述响应消息包含指示所述次级装置将特定数据有效负载提供到所述初级装置的准备状态的次级装置状态字段。
实例20可包含或使用实例17到19中的任何者所述的特征,且可进一步包含:在所述初级装置处,响应于所述第一消息从所述次级装置接收响应消息;识别所述响应消息的次级装置状态字段;及确定所述次级装置状态字段是否指示延期、完成事务或通信错误。
实例21可包含或使用实例17到20中的任何者所述的特征,且可进一步包含:在所述次级装置处,维持次级装置数据输出端口处于三态化状态中,所述次级装置数据输出端口经由所述SPI接口的第二数据通道耦合到所述初级装置的所述数据输入端口;接收所述第一消息;确定所述第一消息是否包含对应于所述次级装置的装置标识符;及当所述第一消息包含对应于所述次级装置的所述装置标识符时,在所述次级装置数据输出端口处提供数据信号,其中所述数据信号具有不同于所述三态化状态的值的信号值。
上述实例中的每一者可以各种方式一起组合或使用以经由同步接口(例如经由SPI接口)实行通信。
上文详细描述包含对形成具体实施方式的一部分的附图的参考。图式通过说明的方式展示可实践本发明的特定实施例。这些实施例在本文中还称为“实例”。此类实例可包含除展示或描述的元件之外的元件。然而,本发明人还考虑其中仅提供展示或描述的那些元件的实例。此外,本发明人还考虑使用关于特定实例(或其一或多个方面)或关于本文中展示或描述的其它实例(或其一或多个方面)展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在此文件中,如专利文件中常见的,使用术语“一”或“一个”来包含一个或多于一个,其独立于“至少一个”或“一或多个”的任何其它例子或使用。在此文件中,使用术语“或”指非排他性或,使得“A或B”可包含“A但非B”、“B但非A”及“A及B”,除非另有指示。在所附权利要求书中,术语“包含”及“其中(in which)”用作相应术语“包括”及“其中(wherein)”的普通英语等效形式。而且,在所附权利要求书中,术语“包含”及“包括”是开放式的,即,包含除了权利要求中在此术语之后所列的元件之外的元件的系统、装置、物品或过程仍被认为落于所述权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”及“第三”等仅用作标记,且不希望对其对象强加数字要求。
上文描述希望是说明性而非限制性。举例来说,上述实例(或其一或多个方面)可彼此组合使用。例如所属领域的一般技术人员在检视上文描述后可使用其它实施例。应理解提交上文描述并非用于解释或限制权利要求书的范围或含义。而且,在上文具体实施方式中,可将各种特征组合在一起以简化本公开。此不应被解译为希望未要求的公开特征是任何权利要求所必需的。确切来说,发明主题可在于少于特定公开实施例的所有特征。因此,所附权利要求书特此并入具体实施方式中,其中每一权利要求自身作为单独实施例,且考虑此类实施例可以各种组合或排列彼此组合。应参考所附权利要求连同这些权利要求所赋予的等效物的全范围来确定本发明的范围。
Claims (20)
1.一种设备,其包括:
初级小芯片,其使用针对串行外围接口(SPI)协议配置的SPI接口能耦合到多个次级小芯片,其中所述初级小芯片包含耦合到所述SPI接口的相应第一及第二数据通道的第一及第二数据端口,其中所述初级小芯片经配置以:
使用所述第一数据端口发送第一消息,所述第一消息包括经配置以存取所述多个次级小芯片中的所选择的第一小芯片的命令字段,所述所选择的第一小芯片经配置为SPI次级装置;及
使用所述第二数据端口接收关于所述多个次级小芯片的通信状态的信息,包含关于所述第一消息是否成功到达所述所选择的第一小芯片的信息。
2.根据权利要求1所述的设备,其中所述初级小芯片经配置以响应于所述第一消息从所述所选择的第一小芯片接收响应消息,其中所述响应消息包含指示所述第一消息成功到达所述所选择的第一小芯片的次级装置状态字段。
3.根据权利要求2所述的设备,其中所述次级装置状态字段指示所述所选择的第一小芯片将特定数据有效负载提供到所述初级小芯片的准备状态。
4.根据权利要求2所述的设备,其中所述次级装置状态字段包含经设置以指示延期返回状态的一或多个位;且
其中所述初级小芯片进一步经配置以响应于接收到具有经设置以指示所述延期返回状态的一或多个位的响应消息而向所述所选择的第一小芯片发送延期读取请求。
5.根据权利要求1所述的设备,其中所述初级小芯片包含经配置以在所述第二数据端口处提供上拉信号的电路系统。
6.根据权利要求5所述的设备,其中所述初级小芯片经配置以使用所述上拉信号识别关于所述多个次级小芯片的所述通信状态的所述信息。
7.根据权利要求5所述的设备,其中在所述第二数据通道上不存在响应于所述第一消息的响应消息的情况下,所述初级小芯片经配置以使用所述上拉信号识别关于所述多个次级小芯片的所述通信状态的所述信息。
8.根据权利要求1所述的设备,其中关于所述多个次级小芯片的所述通信状态的所述信息指示以下中的至少一者:所述第二数据通道中不存在所述多个次级小芯片,或所述多个次级小芯片中的一或多者发生故障。
9.根据权利要求1所述的设备,其进一步包括所述多个次级小芯片,其中所述多个次级小芯片中的每一者包含耦合到所述SPI接口的所述第二数据通道的相应数据输出端口,且其中所述多个次级小芯片中的每一者经配置以在其未用于与所述初级小芯片通信时将其相应数据输出置于三态。
10.一种系统,其包括:
初级小芯片,其使用经配置以使用串行外围接口(SPI)协议的SPI接口耦合到多个次级小芯片;及
所述多个次级小芯片中的所选择的第一小芯片,所述所选择的第一小芯片经配置以使用所述SPI接口与所述初级小芯片介接;
其中所述初级小芯片经配置以执行包括以下的操作:
使用所述SPI接口的时钟通道将时钟信号发送到所述所选择的第一小芯片;
使用所述SPI接口的第一数据通道发送第一消息,所述第一消息包括命令字段及寄存器地址字段,所述命令字段包含用于启用所述所选择的第一小芯片上的控制器的一或多个位,且所述寄存器地址字段包含用于寻址所述所选择的第一小芯片上的特定存储器寄存器的一或多个位;及
使用所述SPI接口的第二数据通道接收关于所述多个次级小芯片的通信状态信息。
11.根据权利要求10所述的系统,其中在所述初级小芯片中,进一步经配置以执行包括以下的操作:
使用所述SPI接口的芯片选择通道将芯片选择信号发送到所述所选择的第一小芯片;及
使用所述SPI接口的所述第二数据通道从所述所选择的第一小芯片接收响应消息,其中所述响应消息包含指示所述初级小芯片与所述所选择的第一小芯片之间的事务的状态的次级装置状态字段。
12.根据权利要求11所述的系统,其中所述次级装置状态字段包含经设置以指示延期返回状态的一或多个位;且
其中所述初级小芯片进一步经配置以响应于接收到所述响应消息向所述所选择的第一小芯片发送延期读取请求。
13.根据权利要求10所述的系统,其中所述初级小芯片包括耦合到所述SPI接口的所述第二数据通道的数据输入端口,且其中所述初级小芯片经配置以在所述数据输入端口处提供上拉信号。
14.根据权利要求13所述的系统,其中所述初级小芯片经配置以基于所述上拉信号的量值特性确定所述多个次级小芯片的通信状态。
15.根据权利要求13所述的系统,其中当所述初级小芯片经由所述时钟信号的一系列脉冲检测到所述数据输入端口处的所述上拉信号时,所述初级小芯片经配置以确定包含所述所选择的第一小芯片的所述多个次级小芯片从所述SPI接口的所述第二数据通道解耦。
16.一种用于确定次级装置是否可用于使用针对串行外围接口(SPI)协议配置的SPI接口与初级装置通信的方法,其中所述初级装置包含数据输入端口及数据输出端口,且其中所述初级装置经配置以在所述数据输入端口处提供上拉信号,所述方法包括:
在所述初级装置处,
使用所述SPI接口的时钟端口及时钟通道发送时钟信号;
使用所述数据输出端口及所述SPI接口的第一数据通道发送第一消息,所述第一消息包括经配置以存取所述次级装置的命令字段;
从所述数据输入端口接收信息;及
基于所述上拉信号的参考量值与从所述数据输入端口接收的所述信息之间的关系确定所述SPI接口上所述次级装置的存在或不存在。
17.根据权利要求16所述的方法,其中确定所述SPI接口上所述次级装置的所述存在或不存在包含使用关于所述上拉信号的所述参考量值的信息及使用在所述时钟信号的多个循序循环内从所述数据输入端口接收的信息。
18.根据权利要求16所述的方法,其进一步包括:
在所述次级装置处,接收所述第一消息且作为响应使用所述SPI接口的第二数据通道向所述初级装置发送响应消息,其中所述初级装置的所述数据输入端口耦合到所述第二数据通道,且其中所述响应消息包含指示所述次级装置将特定数据有效负载提供到所述初级装置的装备状态的次级装置状态字段。
19.根据权利要求16所述的方法,其进一步包括:
在所述初级装置处:
响应于所述第一消息从所述次级装置接收响应消息;
识别所述响应消息的次级装置状态字段;及
确定所述次级装置状态字段是否指示延期、完成事务或通信错误。
20.根据权利要求16所述的方法,其进一步包括:
在所述次级装置处,
维持次级装置数据输出端口处于三态化状态中,所述次级装置数据输出端口经由所述SPI接口的第二数据通道耦合到所述初级装置的所述数据输入端口;
接收所述第一消息;
确定所述第一消息是否包含对应于所述次级装置的装置标识符;及
当所述第一消息包含对应于所述次级装置的所述装置标识符时,在所述次级装置数据输出端口处提供数据信号,其中所述数据信号具有不同于所述三态化状态的值的信号值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/074,852 | 2020-10-20 | ||
US17/074,852 US11379402B2 (en) | 2020-10-20 | 2020-10-20 | Secondary device detection using a synchronous interface |
PCT/US2021/053979 WO2022086718A1 (en) | 2020-10-20 | 2021-10-07 | Secondary device detection using a synchronous interface |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116601617A true CN116601617A (zh) | 2023-08-15 |
Family
ID=81185148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180082646.7A Pending CN116601617A (zh) | 2020-10-20 | 2021-10-07 | 使用同步接口进行次级装置检测 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11379402B2 (zh) |
CN (1) | CN116601617A (zh) |
WO (1) | WO2022086718A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11379402B2 (en) * | 2020-10-20 | 2022-07-05 | Micron Technology, Inc. | Secondary device detection using a synchronous interface |
CN117346220A (zh) * | 2022-06-27 | 2024-01-05 | 佛山市顺德区美的电子科技有限公司 | 家电系统及其通讯方法、设备、存储介质 |
CN116166469B (zh) * | 2022-11-08 | 2023-06-20 | 湖南毂梁微电子有限公司 | 数据传输电路及数据传输方法 |
CN116484406A (zh) * | 2023-01-10 | 2023-07-25 | 极海微电子股份有限公司 | 一种芯片应答方法、目标芯片及计算机可读存储介质 |
CN117453609B (zh) * | 2023-10-18 | 2024-06-07 | 原粒(北京)半导体技术有限公司 | 多芯粒的软件程序配置方法、装置、电子设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7916633B2 (en) | 2004-02-12 | 2011-03-29 | General Instrument Corporation | Variable response message length for master-slave communications |
US7761633B2 (en) * | 2007-01-29 | 2010-07-20 | Microsemi Corp. - Analog Mixed Signal Group Ltd. | Addressable serial peripheral interface |
US8943250B2 (en) * | 2012-08-20 | 2015-01-27 | General Electric | Systems and methods for concatenating multiple devices |
US9003091B2 (en) * | 2012-10-18 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Flow control for a Serial Peripheral Interface bus |
US9990316B2 (en) * | 2015-09-21 | 2018-06-05 | Qualcomm Incorporated | Enhanced serial peripheral interface |
EP3174252A1 (en) | 2015-11-26 | 2017-05-31 | Gemalto Sa | Communication system |
GB2571680B (en) * | 2016-12-21 | 2022-04-13 | Centre For Dev Of Telematics C Dot | A method and a mirrored serial interface (MSI) for transferring data |
US20190068466A1 (en) | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US10700046B2 (en) | 2018-08-07 | 2020-06-30 | Bae Systems Information And Electronic Systems Integration Inc. | Multi-chip hybrid system-in-package for providing interoperability and other enhanced features to high complexity integrated circuits |
TWI698752B (zh) | 2018-08-22 | 2020-07-11 | 新唐科技股份有限公司 | 積體電路、匯流排系統以及其控制方法 |
US11379402B2 (en) | 2020-10-20 | 2022-07-05 | Micron Technology, Inc. | Secondary device detection using a synchronous interface |
-
2020
- 2020-10-20 US US17/074,852 patent/US11379402B2/en active Active
-
2021
- 2021-10-07 CN CN202180082646.7A patent/CN116601617A/zh active Pending
- 2021-10-07 WO PCT/US2021/053979 patent/WO2022086718A1/en active Application Filing
-
2022
- 2022-03-30 US US17/708,674 patent/US11669487B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2022086718A1 (en) | 2022-04-28 |
US11669487B2 (en) | 2023-06-06 |
US20220222199A1 (en) | 2022-07-14 |
US20220121611A1 (en) | 2022-04-21 |
US11379402B2 (en) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11954055B2 (en) | Mapping high-speed, point-to-point interface channels to packet virtual channels | |
US11669487B2 (en) | Secondary device detection using a synchronous interface | |
US11924313B2 (en) | Multiple protocol header processing | |
US11669486B2 (en) | Initialization sequencing of chiplet I/O channels within a chiplet system | |
US20230195348A1 (en) | Method of organizing a programmable atomic unit instruction memory | |
WO2022046279A1 (en) | Optional path ordering in packet-based network | |
WO2022046264A1 (en) | Transparent packet splitting and recombining | |
US11868300B2 (en) | Deferred communications over a synchronous interface | |
US11953989B2 (en) | Low-latency register error correction | |
US12020064B2 (en) | Rescheduling a failed memory request in a processor | |
US20220121483A1 (en) | Thread execution control in a barrel processor | |
US11650876B2 (en) | Payload parity protection for a synchronous interface | |
US11698791B2 (en) | On-demand programmable atomic kernel loading | |
US20220121612A1 (en) | Static identifiers for a synchronous interface | |
US20240311084A1 (en) | Near-memory pseudorandom number generation | |
CN116635824A (zh) | 桶式处理器中的线程调度控制及存储器分割 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |