CN116569157A - 通过同步接口的经延迟通信 - Google Patents
通过同步接口的经延迟通信 Download PDFInfo
- Publication number
- CN116569157A CN116569157A CN202180083096.0A CN202180083096A CN116569157A CN 116569157 A CN116569157 A CN 116569157A CN 202180083096 A CN202180083096 A CN 202180083096A CN 116569157 A CN116569157 A CN 116569157A
- Authority
- CN
- China
- Prior art keywords
- chiplet
- message
- secondary device
- field
- 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
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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40032—Details regarding a bus interface enhancer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
一种小芯片系统可包含用于通信的串行外围接口(SPI)总线。耦合到所述SPI总线的主要装置可生成用于次要装置的读取或写入指令。响应于来自所述主要装置的指令,所述次要装置可准备响应。响应消息可包含用于指示所述次要装置准备好将特定数据有效负载提供到所述主要装置的次要装置状态字段。使用从所述次要装置传达到所述主要装置的延迟可使时延较长的SPI操作能够在不独占所述SPI总线的情况下继续进行。
Description
申请优先权
本申请要求2020年10月20日提交的美国申请序列号17/074,787的优先权权益,所述申请以全文引用的方式并入本文中。
技术领域
本公开的实施例大体上涉及基于小芯片的电子系统和此类系统中的通信。
背景技术
小芯片是用于集成各种处理功能性的新兴技术。通常,小芯片系统由集成在中介层上且封装在一起的离散芯片(例如,不同衬底或裸片上的集成电路(IC))构成。这种布置不同于单芯片(例如,IC),所述单芯片在一个衬底(例如,单个裸片)上含有不同装置块(例如,知识产权(IP)块),例如芯片上系统(SoC),或集成在板上的离散封装装置。通常,小芯片提供比离散封装装置更好的性能(例如,更低的功率消耗、缩短的时延等),并且小芯片提供比单裸片芯片更大的生产效益。这些生产效益可包含更高的良率或减少的开发成本和时间。
小芯片系统通常由一或多个应用小芯片和支持小芯片构成。此处,应用小芯片与支持小芯片之间的区别只是对小芯片系统可能的设计情境的参考。因此,例如,合成视觉小芯片系统可包含用于产生合成视觉输出的应用小芯片以及支持小芯片,例如存储器控制器小芯片、传感器接口小芯片或通信小芯片。在典型的用例中,合成视觉设计者可设计应用小芯片并且从其它方获取支持小芯片。因此,通过避免设计和生产支持小芯片中所包含的功能性,减少了设计支出(例如,在时间或复杂性方面)。小芯片还支持IP块的紧密集成,否则可能很难实现,例如使用不同特征大小的那些IP块。因此,例如,在上一代制造期间设计的具有更大特征大小的装置,或者其中特征大小针对功率、速度或热量生成而优化的那些装置-如传感器可能发生的,可更易于与具有不同特征大小的装置集成。另外,通过减小裸片的整体大小,小芯片的良率往往高于更复杂的单裸片装置的良率。
附图说明
为了容易地识别对任何特定元件或动作的论述,附图标记中的一个或多个最高有效数字是指首次介绍所述元件的图号。
图1A示出根据一个实施例的小芯片系统的第一实例。
图1B示出根据一个实施例的小芯片系统的第二实例。
图2示出根据一个实施例的存储器控制器小芯片的实例。
图3示出根据一个实施例的SPI系统。
图4示出根据一个实施例的第一时序图。
图5示出根据一个实施例的第二时序图。
图6示出根据一个实施例的第三时序图。
图7示出根据一个实施例的第四时序图。
图8示出根据一个实施例的第五时序图。
图9示出根据一个实施例的用于在经延迟响应消息传递的情况下使用串行外围接口通信的方法的实例的流程图。
图10示出机器的实例,本公开的实施例可利用所述机器、在所述机器中或通过所述机器进行操作。
具体实施方式
多种通信协议可用于在系统(例如小芯片系统)中的主机与存储器装置之间进行通信。此类协议的实例可包含开放式NAND快闪接口(ONFi)、eMMC、UFS或串行外围接口(SPI)等。这些协议通常使主机、主要装置或控制器能够传送命令-例如写入(例如,编程)、读取,请求命令的状态、请求存储器装置的状态,起始或执行与存储器装置的内务处理操作-例如存储器内传送、垃圾收集等。通常,这些协议限制与主机的通信的起始。也就是说,主机作出请求且存储器装置作出响应。在一些实例中,存储器装置可发布异常(例如,中断),所述异常被设计成提示主机对受异常影响的操作的状态作出请求。
为了促进系统中的小芯片之间的通信,小芯片可包含多个输入-输出(I/O)信道(例如,AIB信道),例如可在小芯片外周处按多列信道布置。I/O信道可取决于特定设计或系统目标的方式配置。举例来说,小芯片的I/O信道可被配置为接收(RX)信道、传输(TX)信道或RX/TX信道的混合。
在实例中,系统的一或多个小芯片可包含初始化逻辑电路系统以推进小芯片I/O接口经历初始化的各个时期或阶段。在一些实例中,小芯片可包含通信接口(例如,串行外围接口或SPI),并且可使用通信接口在小芯片之间传达配置数据。在一些实例中,可使用I/O信道的辅助信道(AUX)实施通信接口,并且可使用带外信令传达配置数据。
在实例中,初始化逻辑电路系统可被配置成通过从最低接口层(例如,物理层)开始的接口层循序地推进小芯片接口的初始化。初始化可利用在每一阶段期间通过在每一初始化阶段期间将初始化数据写入到小芯片I/O信道而初始化的一个接口层推进通过多个初始化阶段。
并非所有小芯片设计都可具有或使用相同类型的初始化。举例来说,个别小芯片可能仅支持用于I/O信道的基于硬件的初始化选项,或可能仅支持用于I/O信道的基于软件的初始化选项。由于基于小芯片的系统可包含在同一系统中混合的不同小芯片设计,而无支持基于硬件和基于软件的方法两者的标准方法,因此每一系统将需要基于个别专门硬件或软件的初始化方法。这可导致小芯片的一些I/O信道不可与小芯片的其它I/O信道互操作。
在实例中,小芯片的I/O信道的初始化的标准化方法可允许多小芯片系统和I/O接口中的所有小芯片可在单一系统内互操作。标准化方法可用于基于硬件和基于软件的初始化机制两者以保证互连小芯片I/O信道的互操作性。在实例中,初始化方法可包含或使用利用SPI总线的小芯片之间的通信。
传统SPI通信的问题来源于对外围设备或次要装置的时序或时延的普遍依赖。如本说明书中所使用,主要装置(例如主机)可管理或控制与一或多个次要装置的通信或操作。主要装置与次要装置之间的关系可能是不对称关系,有时在本领域中使用过时的术语主装置和从装置来提及这种关系。此类关系也可称为父母/孩子、监视员/工作人员、控制器/外围设备等。
较慢次要装置或被配置成进行计算复杂或耗时的活动的次要装置可占用或占据SPI总线,并且因此禁止总线上的其它装置之间的通信。举例来说,如果SPI次要装置不能够立即对来自主要装置的读取请求作出响应,则SPI总线可能被占据,除非或直到次要装置完成其操作且准备并发送其响应为止。这可能是成问题的,并且引入显著延迟,例如,在其中系统中的多个小芯片需要初始化以激活系统的初始化期间。
为了解决所述问题,SPI系统可被配置成使用经延迟数据事务。在实例中,主要装置,例如可包含或包括第一小芯片,可发布对指定有效负载的请求。作为响应,次要装置或第二小芯片可被配置成生成响应消息,其可包含次要装置状态字段。次要装置状态字段可包含关于次要装置是否需要或请求额外处理时间以准备例如具有指定有效负载的合适或预期答复的信息。次要装置可将具有次要装置状态字段的消息发送到主要装置,并且继而,主要装置可将例如对同一指定有效负载的稍后请求排队。以此方式,可将对SPI总线的占据的控制提供到主要装置或第一小芯片。举例来说,主要装置可接着确定是否继续将对指定有效负载的读取请求发布到次要装置,或是否可例如使用耦合到总线的其它次要装置执行其它操作。
下文所描述的图1A提供小芯片系统和在其中操作的组件的实例。在此类小芯片系统的上下文内,小芯片之间的通信或与耦合到小芯片系统的其它系统或装置的通信中可能产生问题。在包含串行外围接口(SPI)的小芯片系统中,第一次要装置大体上可被配置成在指定数目个时钟循环内对来自主要装置的读取请求作出响应。可能禁止通常耦合到一个或多个其它次要装置的SPI接口进行其它数据通信,直到第一次要装置或小芯片发送其完全响应为止。本发明人已认识到,除其它之外,对此问题的解决方案可包含在SPI消息中使用次要装置状态字段。次要装置状态字段可指示次要装置何时准备好发送响应。如果次要装置状态字段指示次要装置未准备好作出响应,则主要装置可被配置成发布稍后请求或经延迟请求。下文提供额外细节和实例。
图1A和图1B示出根据实施例的可包含一或多个小芯片的第一系统100的实例。图1A是安装在外围板104上的小芯片系统110的表示,所述外围板可例如通过外围组件互连高速(PCIe)连接到更广泛的计算机系统。小芯片系统110包含封装衬底102、中介层120和四个小芯片,即:应用小芯片106、主机接口小芯片112、存储器控制器小芯片114和存储器装置小芯片118。其它系统可包含额外小芯片以提供额外功能性,如将从以下论述中显而易见。小芯片系统110的封装被示出为具有罩盖或盖126,但可使用用于小芯片系统110的其它封装技术和结构。图1B是为了清楚起见标记小芯片系统中的组件的框图。
应用小芯片106被示出为包含支持小芯片间通信网络或小芯片网络122的芯片上网络(NOC 108)。在示例实施例中,NOC 108可包含在应用小芯片106上。在一些实例中,NOC108可响应于所选择支持小芯片(例如,主机接口小芯片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模式,AIB信道宽度为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或一半为TX且一半为RX。CPI包协议可在SDR或DDR操作模式中使用AIB信道。在实例中,AIB信道针对SDR模式以80个I/O单元(即,40个TX和40个RX)的增量配置,并且针对DDR模式以40个I/O单元的增量配置。CPI流式传输协议可在SDR或DDR操作模式中使用AIB信道。此处,在实例中,AIB信道针对SDR和DDR模式两者以40个I/O单元为增量。在实例中,向每一AIB信道指派唯一的接口标识符。标识符在CPI复位和初始化期间用于确定跨邻近小芯片的成对AIB信道。在实例中,接口标识符为包括七位小芯片标识符、七位列标识符和六位链路标识符的20位值。AIB物理层使用AIB带外移位寄存器来传输接口标识符。使用移位寄存器的位32-51跨AIB接口在两个方向上传送20位接口标识符。
AIB将堆叠的一组AIB信道限定为AIB信道列。AIB信道列具有一定数目个AIB信道,外加辅助信道。辅助信道含有用于AIB初始化的信号。列内的所有AIB信道(辅助信道除外)具有相同配置(例如,全部为TX、全部为RX,或一半为TX且一半为RX,以及具有相同数目个数据I/O信号)。在实例中,从邻近于AUX信道的AIB信道开始,以连续递增次序对AIB信道进行编号。邻近于AUX的AIB信道定义为AIB信道零。
通常,个别小芯片上的CPI接口可包含串行化-反串行化(SERDES)硬件。SERDES互连非常适用于需要高速信令以及低信号计数的情境。然而,对于复用和解复用、错误检测或校正(例如,使用块级循环冗余校验(CRC))、链路级重试或前向错误校正,SERDE可能会引起额外的功率消耗和更长的时延。然而,在低时延或能量消耗是超短距离小芯片到小芯片互连的主要关注点时,可利用时钟速率允许以最少时延进行数据传送的并行接口。CPI包含用于使这些超短距离小芯片互连的时延和能量消耗两者最小化的元件。
对于流控制,CPI采用基于信用的技术。例如应用小芯片106的接收方向例如存储器控制器小芯片114的发送方提供表示可用缓冲器的信用。在实例中,CPI接收方包含用于给定传输时间单位的每一虚拟信道的缓冲器。因此,如果CPI接收方在时间上支持五个消息和单个虚拟信道,则接收方具有布置成五行的五个缓冲器(例如,每一单位时间一行)。如果支持四个虚拟信道,则接收方具有布置成五行的二十个缓冲器。每一缓冲器保持一个CPI包的有效负载。
在发送方向接收方进行传输时,发送方基于传输而使可用信用递减。一旦接收方的所有信用消耗完,发送方就停止将包发送到接收方。这确保接收方始终具有可用缓冲器以存储传输。
当接收方处理接收到的包并释放缓冲器时,接收方将可用缓冲空间传送回到发送方。发送方可接着使用此信用返回以允许传输额外信息。
还示出了小芯片网状网络124,其使用直接小芯片到小芯片技术,而不需要NOC108。小芯片网状网络124可在CPI或另一小芯片到小芯片协议中实施。小芯片网状网络124通常实现小芯片流水线,其中一个小芯片充当到流水线的接口,而流水线接口中的其它小芯片仅与自身介接。
另外,还可使用专用装置接口来互连小芯片,所述专用装置接口是例如SPI接口或一或多个标准存储器接口,例如存储器接口116(例如,同步存储器接口,例如DDR5、DDR6)。小芯片系统或个别小芯片到例如较大系统的外部装置的连接可经由所要接口,例如,PCIe接口。在一些实例中,可通过主机接口小芯片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和从所述裸片外存储器提供写入操作和读取操作。在所描绘实例中,裸片外存储器控制器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可各自被实施为具有其它组合逻辑电路系统(例如加法器、移位器、比较器、与门、或门、异或门或其任何合适的组合)或其它逻辑电路系统的状态机。这些组件还可包含一或多个寄存器或缓冲器以存储操作数或其它数据。PAU 228可实施为一或多个处理器核心或控制电路系统,以及具有其它组合逻辑电路系统或其它逻辑电路系统的各种状态机,并且还可包含一或多个寄存器、缓冲器或存储器以存储地址、可执行指令、操作数和其它数据,或可实施为处理器。
写入合并单元222接收读取数据和请求数据,并且合并请求数据和读取数据以产生具有读取数据和将在响应或返回数据包中使用的源地址的单个单元。写入合并单元222将合并的数据提供到高速缓存器202的写入端口(或等效地,提供到高速缓存器控制器204以写入到高速缓存器202)。任选地,写入合并单元222将合并的数据提供到网络通信接口208以编码且准备响应或返回数据包以在小芯片网络122上进行传输。
当请求数据用于内置原子操作时,内置原子单元226从写入合并单元222或直接从裸片外存储器控制器206接收请求和读取数据。执行原子操作,并且使用写入合并单元222,将所得数据写入到高速缓存器202,或提供到网络通信接口208以编码和准备响应或返回数据包以供在小芯片网络122上进行传输。
内置原子单元226处理预定义原子操作,例如提取并递增或者比较并交换。在实例中,这些操作对大小为32字节或更小的单个存储器位置执行简单的读取-修改-写入操作。根据通过小芯片网络122传输的请求包起始原子存储器操作。请求包具有物理地址、原子操作符类型、操作数大小,并且任选地具有至多32字节的数据。原子操作对高速缓存器202的高速缓存器线执行读取-修改-写入,从而在必要时填充所述高速缓存器。原子操作符响应可为简单的完成响应,或具有至多32字节的数据的响应。示例原子存储器操作符包含提取并与、提取并或、提取并异或、提取并加、提取并减、提取并递增、提取并递减、提取并最小、提取并最大、提取并交换和比较并交换。在各种示例实施例中,支持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提供桶式轮循瞬时线程切换以维持较高的每时钟指令速率。
可编程原子操作可由PAU 228执行,其涉及对关于所请求数据的可编程原子操作的请求。用户可准备编程代码以提供此类可编程原子操作。举例来说,可编程原子操作可为相对简单的多循环操作,例如浮点加法,或可为相对复杂的多指令操作,例如布隆过滤器插入(Bloom filter insert)。可编程原子操作可与预定原子操作相同或不同,只要它们是由用户而不是系统供应商限定的。对于这些操作,高速缓存器控制器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-VISA,但通常会支持更有限的指令集和有限的寄存器文件大小,以在包含在存储器控制器小芯片218内时减小单元的裸片大小。
如上文所提及,在将读取数据写入到高速缓存器202之前,存储器危险清除单元224将清除所保留高速缓存器线的所设置危险位。因此,当写入合并单元222接收到请求和读取数据时,存储器危险清除单元224可将复位或清除信号传输到高速缓存器202以复位所保留高速缓存器线的所设置存储器危险位。而且,复位此危险位还将释放涉及所指定(或所保留)的高速缓存器线的未决读取或写入请求,从而将未决读取或写入请求提供到入站请求复用器以供选择和处理。
在实例中,小芯片系统可被配置成包含或使用串行外围接口(SPI)。SPI总线通常包含多导线串行通信接口,所述多导线串行通信接口实现两个装置(主要装置和次要装置)之间的同步数据链路。SPI总线对支持SPI的装置之间的中低带宽网络连接提供支持。在具有SPI总线的小芯片系统中,主要装置可为第一小芯片,并且一或多个次要装置可为使用SPI总线耦合到第一小芯片的一或多个其它小芯片。
SPI总线的导线包含两个控制线和两个数据线。SPI总线的控制线包含芯片选择(CS)线和串行时钟线(SCLK)。在一些实例中,多于一个次要装置可连接到主要装置,然而,在任何给定时间通常仅可存取一个次要装置。可使用芯片选择或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可包含与次要装置或第二小芯片(例如SPI存储器装置302)介接的主要装置310或第一小芯片。在实例中,SPI系统300可包括来自图1A的实例的第一系统100或来自图2的实例的第一实例200的部分。举例来说,主要装置310和SPI存储器装置302中的一或多个可为第一系统100中的相应小芯片。在实例中,第一系统100包含主要装置310,SPI存储器装置302驻存在第一系统100外部,并且主要装置310使用SPI接口与SPI存储器装置302通信。在实例中,主要装置310包括存储器控制器小芯片114和SPI控制器232,并且裸片外存储器230包括SPI存储器装置302。
外围装置或次要装置,例如SPI存储器装置302,可包含次要装置控制器312,其具有多个接口引脚,包含用于接收选择信号316的芯片选择(CS)引脚、用于接收时钟信号318的时钟(SCLK)引脚、用于接收次要装置输入信号320的控制器输出外围输入(COPI或MOSI)引脚和用于提供次要装置输出信号314的控制器输入外围输出(CIPO或MISO)引脚。主要装置310与SPI存储器装置302或次要装置之间的数据传送可使用次要装置输出信号314和次要装置输入信号320串行地且同步地进行。
在实例中,主要装置310可通过将芯片选择信号316设置为低而启用次要装置控制器312。在启用次要装置控制器312之后,主要装置310可发送时钟信号318和对应的数据信号,或次要装置输入信号320。在次要装置输入信号320或次要装置输出信号314中传输的每一位可同步到时钟信号318的上升沿或下降沿。在实例中,主要装置310可在锁存在上升时钟沿上的次要装置输入信号320上提供数据,并且SPI存储器装置302可在下降沿上的次要装置输出信号314上提供数据。在此实例中,时钟信号318的第一上升沿可对应于次要装置输入信号320的第一位,并且时钟信号318的后续上升时钟沿可对应于次要装置输入信号320的后续位。类似地,次要装置输出信号314上的每一位输出可在时钟信号318的下降沿上转变。可类似地使用其它信号时序方案。
在实例中,主要装置310与次要装置控制器312之间的通信可在主要装置310将选择信号316设置为低时开始。主要装置310可随后发送时钟信号318并开始使用次要装置输入信号320传输消息。在实例中,消息可包含一个字节的命令,之后跟着一或多个完整字节的存储器地址,并且之后还跟着一或多个完整字节的数据。次要装置控制器312可通过使用次要装置输出信号314发送同步消息来作出响应。由于常规SPI的性质,次要装置控制器312可被配置成输出关于次要装置输出信号314的信息,直到主要装置310预期或被配置成接收响应的指定或预期时间为止。
在实例中,主要装置310可在消息中向次要装置控制器312发送写入寄存器命令或读取寄存器命令。写入寄存器命令或读取寄存器命令可将次要装置控制器312配置成存取存储器寄存器322。相对于次要装置控制器312和寄存器322的数据传送可使用寄存器总线332,例如可具有专用控制导线。寄存器322可包含例如用于指示装置操作状态的状态寄存器和/或例如块写入锁定寄存器或BWL寄存器324等特殊模式启用寄存器,以便防止存储器的某些部分被写入。在实例中,寄存器322可包含一次可编程(OTP)启用寄存器或OTP寄存器326,以便启用相对于存储器的OTP部分的读取或写入,和/或包含参数页(PP)启用寄存器或PP寄存器328,以便启用相对于存储器的参数页的读取或写入。在实例中,次要装置控制器312可被配置成在其执行其它内部操作时存取寄存器322。
在实例中,对寄存器322的存取可准许用户或客户端控制SPI存储器装置302的功能方面,例如输出缓冲器驱动强度、输出数据的时延的所要时钟循环数、需要整个字节或使用最小数目个地址的地址周期格式,和/或是否启用或停用错误校正码(ECC)。某些寄存器可保持例如错误状态信息,所述信息例如可在发布寄存器写入命令后复位,而其它寄存器可使用户能够基于变化的时钟信号318的频率控制时序。在实例中,寄存器可被配置成使SPI存储器装置302能够在不同模式与接口之间(例如在SPI NAND与NAND用户模式和接口之间)切换。
在实例中,为了在指定存储器地址处执行操作,次要装置控制器312可使用总线将存储器地址信号发送到行和列解码器(未描绘)。次要装置控制器312可使用控制导线控制行和列解码器的激活。取决于操作,次要装置控制器312可例如使用高速缓存器总线330将数据字节加载到高速缓存寄存器304中。在实例中,NAND阵列308可通过数据寄存器306(例如与高速缓存寄存器304协调)例如一次一页地接收数据。
在实例中,第一SPI次要装置,例如SPI存储器装置302或者其它次要装置或小芯片,可被配置成在指定数目个时钟循环内对来自控制器或其它小芯片(例如主要装置310)的读取请求作出响应。可阻碍(例如可耦合到一个或多个次要装置或小芯片的)SPI总线进行其它数据通信,直到第一SPI外围设备或次要装置将完整响应发送到主要装置310为止。
本发明人已认识到,除此之外,对此总线占据问题的解决方案可包含使用从第一SPI次要装置发送的SPI消息中的次要装置状态字段。举例来说,次要装置状态字段可包含在传达到主要装置310的次要装置输出信号314中。次要装置状态字段可指示发送次要装置是否准备好发送响应。当次要装置状态字段指示次要装置未准备好发送响应时,主要装置310可被配置成将稍后或经延迟请求发布到次要装置。因此,本文中所论述的系统和方法可用于使长时延SPI操作能够在后台中继续进行,同时SPI总线用于例如主要装置310与一或多个其它次要装置之间的其它通信或事务。在实例中,本文中所论述的系统和方法可在用于小芯片系统的初始化例程期间使用,例如,在转变到其它协议或总线之前使用SPI操作和硬件来进行初始通信。
在实例中,当第一SPI次要装置以经延迟读取响应状态作出响应时,主要装置310可将对经延迟信息的稍后读取请求排队。在从次要装置接收经延迟读取响应状态信息与发布稍后经延迟读取请求之间,主要装置310可使用同一SPI总线执行其它操作。在实例中,主要装置310可最终例如使用特殊请求信号发布经延迟读取请求。在实例中,主要装置310可在从次要装置接收到经延迟读取响应后就立即发布经延迟读取请求,或主要装置310可在指定或可变消隐周期之后发布经延迟读取请求。
在实例中,响应于主要装置310使用特殊请求信号发布经延迟读取请求,如果有效负载尚不可用,则次要装置可任选地发布另一延迟。如果有效负载可用,则次要装置可以成功次要装置状态消息和有效负载作出答复。
图4、图5、图6、图7和图8的实例大体上示出用于使用SPI进行经延迟响应通信的示例通信方法或时序图。时序图描述了在SPI上使用多个不同信号线或总线的通信。
表1描述了时序图中用于所示出消息字段和相关联的消息内容或用途的惯例。
消息字段 | 用途 |
C[1:0] | 2位命令 |
ID[6:0] | 7位小芯片识别 |
IDP | 命令和小芯片识别;例如,奇校验 |
A[31:0] | 32位地址 |
AP | 地址;例如,奇校验 |
D[63:0] | 64位读取或写入数据 |
DP | 数据;例如,奇校验 |
S[2:0] | 次要装置状态 |
SP | 次要装置状态;例如,奇校验 |
表1:SPI经延迟响应通信中的示例消息字段
在实例中,2位命令消息(例如,表1中的C[1:0])可从主要装置提供到次要装置。命令消息可包括次要装置输入信号320的部分或字段,并且可指示来自主要装置310的命令或指令。在实例中,命令消息可包含关于接收装置或次要装置经引导以执行读取操作还是写入操作的信息。在实例中,命令消息可指示控制器请求(例如,来自主要装置的读取请求)是初始请求还是经延迟请求。
在实例中,7位小芯片识别消息和校验位(例如,表1中的ID[6:0]和IDP)可从主要装置提供到次要装置。小芯片识别消息可例如用于寻址系统中(例如小芯片系统110中)的特定小芯片。小芯片识别消息可为任选的,并且在实例中,在个别SPI芯片选择不可用或未使用的情况下使用。
在实例中,32位地址和校验位(例如,表1中的A[31:0]和AP)可跟在小芯片识别消息之后。地址消息可例如用于定位特定寄存器,例如在数据寄存器306中或在小芯片系统110中的其它地方。在实例中,64位数据消息和校验位(例如,表1中的D[63:0]和DP)可跟在地址消息之后。数据消息可包括数据有效负载,例如用于存储在次要装置中或从次要装置检索。
在实例中,次要装置状态消息和校验位(例如,表1中的S[2:0]和SP)可从次要装置提供到主要装置。在实例中,次要装置状态消息可为一位、两位、三位或更多位消息或字段。在本文中所示出的实例中,次要装置状态消息包括3位消息和校验位,然而,取决于将与消息交换的信息的量,次要装置状态消息可被配置成具有更多或更少位。表2大体上描述了可编码在次要装置状态消息中的各种命令或信息。
S[2:0] | 命令 |
0 | 成功;例如,CSR操作成功地完成 |
1 | 经延迟读取响应;例如,CSR读取操作未完成 |
2 | 奇校验错误;例如,CSR操作异常结束 |
3 | 协议错误;例如,CSR操作异常结束 |
4-6 | 保留 |
7 | 不存在次要装置端点 |
表2:次要装置状态消息命令
本文中所论述的各种消息字段、用途和消息组件仅为实例且不应被视为具限制性。举例来说,可使用其它额外消息字段,或可在SPI经延迟响应通信中使用较少消息字段。在实例中,各种字段可以不同次序或序列布置以类似地提供经延迟响应通信。各种大小的消息组件仅作为实例提供。
使用表1和表2中所提供的惯例,图4大体上示出第一时序图400,其包含在用于读取操作中的消息中使用次要装置状态字段,并且图5大体上示出第二时序图500,其包含在用于写入操作中的消息中使用次要装置状态字段。
图4的实例展示使用SPI总线例如在主要装置310与SPI存储器装置302之间传达的各种信号的一般时序图。图4包含选择信号316、时钟信号318、次要装置输入信号320和次要装置输出信号314的实例。如上文所提及,主要装置310可通过将选择信号316设置为低(如大体上由附图标记402所指示)来起始通信。
在图4的实例中,时钟信号318的第一上升沿404对应于2位命令消息的第一位。在图4中,2位命令消息是0-1,并且向次要装置指示消息包含第一或初始读取指令。在命令消息之后,主要装置310可发送小芯片识别消息,例如之后跟着地址消息,以便指示寄存器位置。各种消息位组件的位可对应于时钟信号318中的相应脉冲。在图4的实例中,消隐周期可跟在地址消息之后。
响应于命令、小芯片识别和地址消息,次要装置可准备响应且将响应传达到主要装置310,例如使用次要装置输出信号314。在图4的实例中,次要装置输出信号314包括以次要装置状态消息408开头的信号。取决于次要装置状态消息408中的信息,次要装置输出信号314可包含或包括有效负载,例如包括n位数据消息。当主要装置310将选择信号316设置为高(例如在图4中由附图标记410所指示)时,通信可终止。
图5的实例展示使用SPI总线例如在主要装置310与SPI存储器装置302之间传达的各种信号的第二时序图500。图5包含选择信号316、时钟信号318、次要装置输入信号320和次要装置输出信号314的实例。如上文所提及,主要装置310可通过将选择信号316信号设置为低(如大体上由附图标记502所指示)来起始通信。
在图5的实例中,时钟信号318的第一上升沿504对应于2位命令消息的第一位。在图5中,2位命令消息是1-0,并且向次要装置指示消息包含写入指令。在命令消息之后,主要装置310可发送小芯片识别消息,例如之后跟着地址消息,以便指示寄存器位置。在地址消息之后,主要装置310可发送数据消息或有效负载,例如用于存储在由通信的地址消息部分中的信息指示的寄存器中。在图5的实例中,消隐周期可跟在数据消息之后。
在消隐周期之后且响应于写入指令,次要装置可使用次要装置输出信号314将消息返回到主要装置310。在图5的实例中,返回消息可包含次要装置状态消息508。使用次要装置状态消息508中的信息,主要装置310可被配置成采取特定响应性动作。举例来说,次要装置状态消息508可向主要装置310指示其应将例如对相同或不同次要装置的经延迟读取请求排队。
图6大体上示出具有经延迟返回次要装置状态的第三时序图600。图6包含选择信号316、时钟信号318、次要装置输入信号320和次要装置输出信号314的实例。在实例中,主要装置310可通过将选择信号316设置为低(如大体上由附图标记602所指示)根据第三时序图600起始通信。
在602处的转变之后的时钟信号318的第一上升沿604上,主要装置310可提供命令消息。在图6的实例中,命令消息是0-1,并且向次要装置指示消息包含读取请求或指令。在命令消息之后,主要装置310可发送小芯片识别消息,例如之后跟着地址消息,以便指示寄存器位置。
响应于命令、小芯片识别和地址消息,次要装置可准备响应且将响应传达到主要装置310,例如使用次要装置输出信号314。在图6的实例中,次要装置输出信号314包括以经延迟次要装置状态消息606(例如,次要装置状态消息0-0-1)开头的信号。根据表2中的信息,次要装置状态消息可理解为对经延迟读取响应的请求。
在实例中,当次要装置不能够答复或还未准备好将恰当响应发送到主要装置310时,可通过次要装置提供经延迟次要装置状态消息606或经延迟读取响应状态。换句话说,次要装置可发布经延迟次要装置状态消息606,以请求更多时间来完成如在通信开始之后从主要装置310接收到的指令。在第三时序图600中的经延迟次要装置状态消息606之后,通信可终止。在实例中,在接收到经延迟次要装置状态消息606后,主要装置310就可将经延迟读取请求排队以用于与次要装置的稍后通信。
图7大体上示出具有来自次要装置的经延迟读取响应的第四时序图700。图7包含选择信号316、时钟信号318、次要装置输入信号320和次要装置输出信号314的实例。在实例中,主要装置310可通过将选择信号316设置为低(如大体上由附图标记702所指示)根据第四时序图700起始通信。
在702处的CS转变之后的时钟信号318的第一上升沿704上,主要装置310可提供命令消息。在图7的实例中,命令消息是1-1,并且向次要装置指示消息包含经延迟读取请求或指令。换句话说,经延迟读取请求或指令可向次要装置指示当前指令跟在从同一次要装置接收到的先前指令之后,以延迟其响应。在命令消息之后,主要装置310可发送小芯片识别消息。
在图7的实例中,经延迟读取请求省略了地址消息。由于次要装置先前发布了延迟,因此次要装置可被配置成预期接收经延迟读取请求。因此,次要装置可使其响应在高速缓存寄存器中排队,例如,以帮助加快其答复且由此避免主要装置310对每一经延迟读取请求重复地址消息的任何需要。
响应于命令和小芯片识别消息,次要装置可准备响应且将响应传达到主要装置310,例如使用次要装置输出信号314。在图7的实例中,次要装置输出信号314包含以次要装置状态消息706开头的信号,所述次要装置状态消息之后跟着有效负载数据消息708。当主要装置310将选择信号316设置为高(例如在图7中由附图标记710所指示)时,通信可在数据消息708的传输之后终止。
图8大体上示出具有来自次要装置的另一经延迟读取响应的第五时序图800。图8包含选择信号316、时钟信号318、次要装置输入信号320和次要装置输出信号314的实例。在实例中,主要装置310可通过将选择信号316设置为低(如大体上由附图标记802所指示)根据第五时序图800起始通信。
在802处的CS转变之后的时钟信号318的第一上升沿804上,主要装置310可提供命令消息。在图8的实例中,命令消息是1-1,并且向次要装置指示消息包含经延迟读取请求或指令。换句话说,经延迟读取请求或指令可向次要装置指示当前指令跟在从同一次要装置接收到的先前指令之后,以延迟其响应。在命令消息之后,主要装置310可发送小芯片识别消息。
在图8的实例中,经延迟读取请求省略了地址消息。由于次要装置先前发布了延迟,因此次要装置可被配置成预期接收经延迟读取请求。因此,次要装置可使其响应在高速缓存寄存器中排队,例如,以帮助加快其答复且由此避免主要装置310对每一经延迟读取请求重复地址消息的任何需要。
响应于命令和小芯片识别消息,次要装置可准备响应且将响应传达到主要装置310,例如使用次要装置输出信号314。在图8的实例中,次要装置输出信号314包含以指示延迟的次要装置状态消息808开头的信号。也就是说,次要装置输出信号314可包含以经延迟次要装置状态消息(例如,次要装置状态消息0-0-1)开头的信号,所述经延迟次要装置状态消息例如可指示对经延迟读取响应的请求。在实例中,当次要装置最初或仍然不能够对主要装置310恰当地作出答复时,可通过次要装置提供经延迟读取响应状态。换句话说,次要装置可发布具有另一延迟的次要装置状态消息808,以请求额外时间来完成如先前从主要装置310接收到的指令。
在实例中,在第五时序图800中的次要装置状态消息808之后,通信可终止。在实例中,在接收到指示另一延迟的次要装置状态消息808后,主要装置310就可将经延迟读取请求排队以用于与次要装置的稍后通信,或在一些实例中,可在指定持续时间或指定数目次读取尝试之后放弃。
图9示出根据一个实施例的用于在经延迟响应消息传递的情况下使用SPI接口通信的第一方法900的实例的流程图。在图9的实例中,第一方法900以框902开始,其中使用SPI接口来在第一小芯片或主要装置与第二小芯片或次要装置之间传达消息。框902可包含使用SPI接口来将第一消息从第一小芯片发送到第二小芯片,例如在具有两个或更多个小芯片的系统中。
第一消息可包含各种字段,例如具有被配置成启用对第二小芯片的存取的一或多个位的命令字段,以及具有被配置成指示或指定来自系统中的一或多个其它小芯片的第二小芯片的一或多个位的小芯片识别字段。在实例中,第一消息包括对来自第二小芯片的特定数据有效负载的请求。在实例中,第一消息包括用于第二小芯片的初始化指令。
在框904处,第一方法900可包含在第二小芯片处接收第一消息。在框906处,第一方法900可包含使用第二小芯片来准备对第一消息的响应消息。在实例中,响应消息可包含一或多个字段或位,例如次要装置状态字段。状态字段可包含指示第二小芯片的状态,包含第二小芯片准备好将特定数据有效负载提供到第一小芯片的一或多个位。在框908处,第二小芯片可使用SPI接口来将响应消息发送到第一小芯片。在实例中,响应消息可包含关于第二小芯片的初始化状态的信息。
在框910处,第一方法900可包含例如经由SPI接口在第一小芯片处接收响应消息。在框912处,第一方法900可包含使用同一SPI接口来将后续第二消息从第一小芯片发送到第二小芯片。后续第二消息可包含例如特定数据请求。在实例中,第一消息和第二消息包括对来自同一第二小芯片的同一数据有效负载的请求。举例来说,第一和第二消息可包括对关于第二小芯片的初始化的校验或时序信息的请求。
在框914处,第二小芯片可准备经更新响应消息。在实例中,经更新响应消息可包含对应于第二消息中的数据请求的数据有效负载。举例来说,有效负载可包含指示第二小芯片经初始化且准备好开始使用另一协议或总线来进行其它操作的信息。在框916处,第一方法900可包含使用SPI接口来将具有数据有效负载的经更新响应消息从第二小芯片发送到第一小芯片。
图10示出示例机器1000的框图,可利用所述机器、在所述机器中或通过所述机器实施本文中所论述的技术(例如,方法)中的任一或多种。如本文中所描述,实例可包含机器1000中的逻辑或多个组件或机构,或可由其操作。电路系统(例如,处理电路系统)是在机器1000的有形实体中实施的电路集合,其包含硬件(例如,简单电路、门、逻辑等)。电路系统成员资格可随时间推移为灵活的。电路系统包含可在操作时单独或以组合形式执行指定操作的部件。在实例中,电路系统的硬件可被永恒地设计成进行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以编码特定操作的指令的机器可读媒体。在连接物理组件时,硬件构成的基础电气性质例如从绝缘体改变为导体或反之亦然。指令使嵌入式硬件(例如,执行单元或加载机构)能够经由可变连接产生硬件中的电路系统的部件以在处于操作中时进行特定操作的部分。因此,在实例中,机器可读媒体元件为电路系统的部分或在装置操作时以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可在多于一个电路系统中的多于一个部件中使用。举例来说,在操作下,执行单元可在一个时间点在第一电路系统的第一电路中使用,并且由第一电路系统中的第二电路重新使用,或在不同时间由第二电路系统中的第三电路重新使用。下面是关于机器1000的这些组件的额外实例。
在替代实施例中,机器1000可作为独立装置而操作,或可连接(例如,联网)到其它机器。在联网部署中,机器1000可在服务器-客户端网络环境中作为服务器机器、客户端机器或两者操作。在实例中,机器1000可充当对等式(P2P)(或其它分布式)网络环境中的对等式机器。机器1000可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定将由所述机器采取的动作的指令的任何机器。另外,虽然仅示出单个机器,但术语“机器”也应被视为包含个别地或共同地执行指令集(或多个指令集)以执行本文中所论述的方法中的任一或多个(例如云计算、软件即服务(SaaS)、其它计算机集群配置)的任何机器集合。
机器1000(例如,计算机系统)可包含硬件处理器1002(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器1008、静态存储器1010(例如,固件、微码的存储器或存储装置、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)等),以及大容量存储装置1012(例如,硬盘驱动器、磁带机、快闪存储装置或其它块装置),其中的一些或全部可经由互联件1018(例如,总线,例如SPI总线)彼此通信。机器1000可进一步包含显示装置1020、字母数字输入装置1022(例如,键盘)和用户接口(UI)导航装置1024(例如,鼠标)。在实例中,显示装置1020、输入装置1022和导航装置1024可为触摸屏显示器。机器1000可另外包含大容量存储装置1012(例如,驱动器单元)、信号生成装置1028(例如,扬声器)、网络接口装置1014,以及一或多个传感器1026,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器1000可包含输出控制器1030,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接,以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
处理器1002、主存储器1008、静态存储器1010或大容量存储装置1012的寄存器可为或包含机器可读媒体1006,在其上存储体现本文中所描述的技术或功能中的任一或多种或被其利用的一或多组数据结构或指令1004(例如,软件)。指令1004还可在其由机器1000执行期间完全或至少部分驻存在处理器1002的寄存器、主存储器1008、静态存储器1010或大容量存储装置1012中的任一个内。在实例中,硬件处理器1002、主存储器1008、静态存储器1010或大容量存储装置1012中的一个或任何组合可构成一或多个机器可读媒体1006。虽然机器可读媒体1006示出为单个媒体,但术语“机器可读媒体”可包含被配置成存储所述一或多个指令1004的单个媒体或多个媒体(例如,集中式或分布式数据库,或相关联高速缓存器和服务器)。在实例中,各种存储器单元或处理器1002可使用例如SPI总线等总线以通信方式耦合。
术语“机器可读媒体”可包含能够存储、编码或携带供机器1000执行的指令且致使机器1000执行本公开的技术中的任一或多种或能够存储、编码或携带由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器、光学媒体、磁性媒体和信号(例如,射频信号、其它基于光子的信号、声音信号等)。在实例中,非暂时性机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量,并且因此为物质组成。因此,非暂时性机器可读媒体是不包含暂时性传播信号的机器可读媒体。非暂时性机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可装卸磁盘;磁光盘;和CD-ROM和DVD-ROM磁盘。
在实例中,存储或以其它方式设置在机器可读媒体1006上的信息可表示指令1004,例如指令1004自身或可从其导出指令1004的格式。可从其导出指令1004的此格式可包含源码、已编码指令(例如,呈压缩或加密形式)、已封装指令(例如,拆分成多个封装)等。表示机器可读媒体1006中的指令1004的信息可由处理电路系统处理到指令中以实施本文中所论述的操作中的任一个。举例来说,从信息(例如,通过处理电路系统处理)导出指令1004可包含:编译(例如,从源码、目标码等)、解译、加载、组织(例如,动态地或静态地链接)、编码、解码、加密、解密、封装、解封装或以其它方式将信息操纵到指令1004中。
在实例中,指令1004的导出可包含对信息的汇编、编译或解译(例如,由处理电路系统)以从由机器可读媒体1006提供的一些中间或预处理格式创建指令1004。当在多个部分中提供信息时,可组合、解封装和修改所述信息以创建指令1004。举例来说,信息可在一个或若干远程服务器上的多个压缩源码封装(或目标码,或二进制可执行码等)中。源码封装可在通过网络传输时被加密,并且在必要时被解密、解压缩、汇编(例如,链接),并且在本地机器处被编译或解译(例如,到可独立执行的库中等),并且由本地机器执行。
指令1004可使用传输媒体经由网络接口装置1014通过通信网络1016进一步传输或接收,所述网络接口装置利用数种传送协议(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)中的任一种。示例通信网络可包含局域网(LAN)、广域网(WAN)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝式网络)、普通老式电话(POTS)网络和无线数据网络(例如,被称为的电气电子工程师学会(IEEE)802.11标准系列、被称为/>的IEEE 802.16标准系列)、IEEE 802.15.4标准系列、对等(P2P)网络等。在实例中,网络接口装置1014可包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到通信网络1016。在实例中,网络接口装置1014可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个无线地通信。术语“传输媒体”应被视为包含能够存储、编码或携带指令以用于由机器1000执行的任何无形媒体,并且包含数字或模拟通信信号或用于促进此类软件的通信的其它无形媒体。传输媒体是机器可读媒体。
下文是根据本文中的教示的实例或装置和方法。
实例1可包含一种小芯片系统,其包括使用串行外围接口(SPI)接口耦合到多个其它小芯片的第一小芯片,所述SPI接口使用SPI协议,第一小芯片被配置为SPI主要装置。在实例1中,第一小芯片可被配置成跨越SPI接口发送第一消息,第一消息包括被配置成存取多个其它小芯片中的第一所选择小芯片的命令字段。在实例1中,第一所选择小芯片可被配置为SPI次要装置或外围装置。实例1可进一步包含被配置成响应于第一消息而从第一所选择小芯片接收响应消息的第一小芯片,并且响应消息可包含响应消息的次要装置状态字段。次要装置状态字段可指示第一所选择小芯片准备好将数据有效负载提供到第一小芯片。
实例2可包含或使用实例1的特征,并且可进一步包含具有被设置为指示经延迟返回状态的一或多个位的次要装置状态字段,并且第一小芯片可进一步被配置成响应于接收到具有被设置为指示经延迟返回状态的一或多个位的响应消息而将经延迟读取请求发送到第一所选择小芯片。
实例3可包含或使用实例2的特征,并且可进一步包含第一所选择小芯片。响应于经延迟读取请求,第一所选择小芯片可被配置成将经更新响应消息发送到主要装置,并且经更新响应消息可包括具有用于指示次要装置随后准备好将数据有效负载提供到主要装置的一或多个位的次要装置状态字段。
实例4可包含或使用前述实例中的任一实例的特征,并且可进一步将被设置为指示主要装置先前是否从次要装置接收到延迟的一或多个位包含在第一消息的命令字段中。
实例5可包含或使用前述实例中的任一实例的特征,并且可进一步将第一消息的寄存器地址字段包含在第一消息中,寄存器地址字段包含被设置为指示第一所选择小芯片上的存储器寄存器的地址的一或多个位。
实例6可包含或使用实例5的特征,其中第一消息包括数据字段,并且数据字段中的数据被配置成存储在对应于第一消息的寄存器地址字段的位置中。
实例7可包含或使用实例6的特征,其中第一消息包括第一消息的指示多个其它小芯片中的第一所选择小芯片的小芯片识别字段,并且其中在第一消息中,数据字段紧跟在小芯片识别字段之后,并且小芯片识别字段紧跟在命令字段之后。
实例8可包含或使用前述实例中的任一实例的特征,其中响应消息包括有效负载,并且有效负载包括来自第一所选择小芯片上的存储器寄存器的数据。
实例9可包含或使用前述实例中的任一实例的特征,其中第一消息的命令字段包含被设置为启用第一所选择小芯片以存取第一所选择小芯片上的指定存储器寄存器的一或多个位。
实例10可包含一种系统,其包括耦合到多个到多个其它小芯片的第一小芯片,其中第一小芯片被配置成生成时钟信号,并且实例10可进一步包含多个其它小芯片中的第一所选择小芯片,其中第一所选择小芯片被配置成使用串行外围接口(SPI)接口协议与第一小芯片介接。在实例10中,第一小芯片可被配置成执行包括以下各项的操作:启用第一所选择小芯片上的控制器,将时钟信号发送到第一所选择小芯片,使用SPI接口将第一消息发送到第一所选择小芯片,其中第一消息包括:第一消息的命令字段,命令字段包含用于启用控制器以存取第一所选择小芯片的存储器寄存器的一或多个位,以及第一消息的寄存器地址字段,寄存器地址字段包含用于寻址第一所选择小芯片小芯片上的特定存储器寄存器的一或多个位。在实例10中,响应于接收到第一消息,第一所选择小芯片可被配置成使用SPI接口将响应消息发送到第一小芯片,其中响应消息包括次要装置状态字段,其包含用于指示第一所选择小芯片准备好将有效负载提供到第一小芯片的一或多个位。
实例11可包含或使用实例10的特征,其中第一消息进一步包括第一消息的数据字段。
实例12可包含或使用实例10或实例11的特征,其中当次要装置状态字段指示第一所选择小芯片准备好提供有效负载时,响应消息包括有效负载。
实例13可包含或使用实例10至12中任一实例的特征,其中响应消息包括被设置为指导第一小芯片将对第一所选择小芯片的稍后读取请求排队的一或多个位。
实例14可包含或使用实例10至13中任一实例的特征,其中第一消息包括第一消息的小芯片识别字段,小芯片识别字段包含用于寻址第一所选择小芯片的一或多个位,并且其中在第一消息中,小芯片识别字段紧跟在命令字段之后,并且寄存器地址字段紧跟在小芯片识别字段之后。
实例15可包含或使用实例10至14中任一实例的特征,其中响应消息以在一或多个其它数据位之前的次要装置状态字段开头。
实例16可包含一种方法,其包括在被配置成使用串行外围接口(SPI)接口总线以通信方式耦合到第二小芯片的第一小芯片处将第一消息发送到第二小芯片,其中第一消息包括第一消息的命令字段,其包含被配置成启用对第二小芯片的存取的一或多个位。在实例16中,方法可包括响应于来自第一小芯片的第一消息而从第二小芯片接收响应消息,响应消息包括次要装置状态字段,其中次要装置状态字段包含经选择以指示第二小芯片准备好将数据有效负载提供到第一小芯片的一或多个位。
实例17可包含或使用实例16的特征,并且可进一步包含在第二小芯片处准备响应消息。在第二小芯片处准备响应消息可包含准备指示次要装置状态字段中的延迟的响应消息,并且方法可进一步包含在第一小芯片处接收响应消息,且将后续第二消息发送到第二小芯片以确定数据有效负载是否可用。
实例18可包含或使用实例17的特征,并且可进一步包含响应于后续第二消息,将经更新响应消息从第二小芯片发送到第一小芯片,经更新响应消息包括次要装置状态字段中用于指示第二小芯片随后准备好将数据有效负载提供到第一小芯片的一或多个位。
实例19可包含或使用实例16至18中任一实例的特征,其中第一消息的命令字段指示第一消息是对第二小芯片的指定寄存器中的信息的原始读取请求还是经延迟读取请求。
实例20可包含或使用实例16至19中任一实例的特征,其中第一小芯片使用SPI接口总线以通信方式耦合到第三小芯片,并且方法进一步包括:在第一小芯片处,将第二消息发送所述第三小芯片,其中第二消息包括第二消息的命令字段,其包含被配置成启用对第三小芯片的存取的一或多个位;以及在第三小芯片处,从第一小芯片接收第二消息,并且作为响应,准备包括次要装置状态字段的第二响应消息,其中次要装置状态字段包含经选择以指示第三小芯片准备好将数据有效负载提供到第一小芯片的一或多个位。
以上实例中的每一个可以各种方式组合或一起使用于通过同步接口(例如通过SPI接口)进行经延迟通信。
以上详细描述包含对附图的参考,所述附图形成详细描述的部分。所述图式借助于说明展示可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含所示出或描述元件之外的其它元件。然而,本发明人还考虑其中仅提供所展示或所描述的那些元件的实例。此外,本发明人还考虑使用关于特定实例(或其一或多个方面)或关于本文中所展示或所描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在本文件中,如专利文件中常见,使用术语“一(a)”或“一(an)”以包含一个或多于一个,这与“至少一个”或“一或多个”的任何其它情形或使用无关。在本文件中,除非另有指示,否则术语“或”用于指非排它性或,使得“A或B”可包含“A而非B”、“B而非A”和“A和B”。在所附权利要求书中,术语“包含(including)”和“其中(in which)”用作相应术语“包括(comprising)”和“其中(wherein)”的通俗英语等效物。而且,在以下权利要求书中,术语“包含”和“包括”是开放的,也就是说,包含除了权利要求项中列在此类术语之后的那些元件之外的元件的系统、装置、物件或过程仍被认为处于所述权利要求项的范围内。此外,在以下权利要求书中,术语“第一”、“第二”和“第三”等仅用作标签,并且并不意欲对其对象施加数字要求。
以上描述打算为说明性的而非限制性的。举例来说,上述实例(或其一或多个方面)可彼此组合使用。例如一般技术者在查阅以上描述后可使用其它实施例。应理解,所述实施例将不用于解释或限制权利要求书的范围或含义。而且,在以上详细描述中,可将各种特征分组在一起以简化本公开。不应将这一情况解释为意欲未要求的公开特征对于任何权利要求来说是必需的。而是,本发明标的物可在于比特定所公开实施例的所有特征要少的特征。因此,特此将以下权利要求书并入到详细描述中,其中每一权利要求作为单独实施例而独立存在,并且经考虑此类实施例可以各种组合或排列彼此组合。本发明的范围应通过参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围来确定。
Claims (20)
1.一种设备,其包括:
第一小芯片,其能够使用串行外围接口(SPI)耦合到多个其它小芯片,所述SPI被配置成用于SPI协议,所述第一小芯片被配置为SPI主要装置,其中所述第一小芯片被配置成:
跨越所述SPI接口发送第一消息,所述第一消息包括被配置成存取所述多个其它小芯片中的第一所选择小芯片的命令字段,所述第一所选择小芯片被配置为SPI次要装置;以及
响应于所述第一消息而从所述第一所选择小芯片接收响应消息,其中所述响应消息包括指示所述第一所选择小芯片准备好将数据有效负载提供到所述第一小芯片的次要装置状态字段。
2.根据权利要求1所述的设备,其中所述次要装置状态字段包含被设置为指示经延迟返回状态的一或多个位;并且
其中所述第一小芯片进一步被配置成响应于接收到具有被设置为指示经延迟返回状态的一或多个位的响应消息而将经延迟读取请求发送到所述第一所选择小芯片。
3.根据权利要求2所述的设备,其进一步包括所述第一所选择小芯片,其中响应于所述经延迟读取请求,所述第一所选择小芯片被配置成将经更新响应消息发送到所述第一小芯片,并且所述经更新响应消息包括所述次要装置状态字段,其包含用于指示所述第一所选择小芯片随后准备好将所述数据有效负载提供到所述第一小芯片的一或多个位。
4.根据权利要求1所述的设备,其中所述第一消息的所述命令字段包含被设置为指示所述第一小芯片先前是否从所述第一所选择小芯片接收到延迟的一或多个位。
5.根据权利要求1所述的设备,其中所述第一消息进一步包括所述第一消息的寄存器地址字段,所述寄存器地址字段包含被设置为指示所述第一所选择小芯片上的存储器寄存器的地址的一或多个位。
6.根据权利要求5所述的设备,其中所述第一消息包括数据字段,并且所述数据字段中的数据被配置成存储在对应于所述第一消息的所述寄存器地址字段的位置中。
7.根据权利要求6所述的设备,其中所述第一消息包括指示所述多个其它小芯片中的所述第一所选择小芯片的小芯片识别字段;
其中在所述第一消息中,所述数据字段紧跟在所述小芯片识别字段之后,并且所述小芯片识别字段紧跟在所述命令字段之后。
8.根据权利要求1所述的设备,其中所述响应消息包括所述有效负载,并且所述有效负载包括来自所述第一所选择小芯片上的存储器寄存器的数据。
9.根据权利要求1所述的设备,其中所述命令字段包含被设置为启用所述第一所选择小芯片以存取所述第一所选择小芯片上的指定存储器寄存器的一或多个位。
10.一种系统,其包括:
第一小芯片,其耦合到多个其它小芯片,所述第一小芯片被配置成生成时钟信号;以及
所述多个其它小芯片中的第一所选择小芯片,所述第一所选择小芯片被配置成使用串行外围接口(SPI)协议与所述第一小芯片介接;
其中所述第一小芯片被配置成执行包括以下各项的操作:
启用所述第一所选择小芯片上的控制器;
将所述时钟信号发送到所述第一所选择小芯片;
使用SPI接口将第一消息发送到所述第一所选择小芯片,其中所述第一消息包括命令字段和寄存器地址字段,所述命令字段包含用于启用所述控制器以存取所述第一所选择小芯片的存储器寄存器的一或多个位,并且所述寄存器地址字段包含用于寻址所述第一所选择小芯片上的特定存储器寄存器的一或多个位;并且
其中响应于接收到所述第一消息,所述第一所选择小芯片被配置成:
使用所述SPI接口将响应消息发送到所述第一小芯片,其中所述响应消息包括次要装置状态字段,其包含用于指示所述第一所选择小芯片准备好将有效负载提供到所述第一小芯片的一或多个位。
11.根据权利要求10所述的系统,其中所述第一消息进一步包括数据字段。
12.根据权利要求10所述的系统,其中当所述次要装置状态字段指示所述第一所选择小芯片准备好提供所述有效负载时,所述响应消息包括所述有效负载。
13.根据权利要求10所述的系统,其中所述响应消息包括被设置为指导所述第一小芯片将用于所述第一所选择小芯片的稍后读取请求排队的一或多个位。
14.根据权利要求10所述的系统,其中所述第一消息包括小芯片识别字段,其包含用于寻址所述第一所选择小芯片的一或多个位;并且
其中在所述第一消息中,所述小芯片识别字段紧跟在所述命令字段之后,并且所述寄存器地址字段紧跟在所述小芯片识别字段之后。
15.根据权利要求10所述的系统,其中所述响应消息以在一或多个其它数据位之前的所述次要装置状态字段开头。
16.一种方法,其包括:
在被配置成使用串行外围接口(SPI)接口总线以通信方式耦合到第二小芯片的第一小芯片处,
将第一消息发送到所述第二小芯片,其中所述第一消息包括命令字段,其包含被配置成启用对所述第二小芯片的存取的一或多个位;以及
响应于来自所述第一小芯片的所述第一消息而从所述第二小芯片接收响应消息,所述响应消息包括次要装置状态字段,其中所述次要装置状态字段包含经选择以指示所述第二小芯片准备好将数据有效负载提供到所述第一小芯片的一或多个位。
17.根据权利要求16所述的方法,其进一步包括在所述第二小芯片处准备所述响应消息,其中所述响应消息指示所述次要装置状态字段中的延迟,并且所述方法进一步包含:
使用所述第一小芯片,将后续第二消息发送到所述第二小芯片以确定所述数据有效负载是否可用。
18.根据权利要求17所述的方法,其进一步包含响应于所述后续第二消息,将经更新响应消息从所述第二小芯片发送到所述第一小芯片,所述经更新响应消息包括所述次要装置状态字段中用于指示所述第二小芯片随后准备好将所述数据有效负载提供到所述第一小芯片的一或多个位。
19.根据权利要求16所述的方法,其中所述命令字段指示所述第一消息是对所述第二小芯片的指定寄存器中的信息的原始读取请求还是经延迟读取请求。
20.根据权利要求16所述的方法,其中所述第一小芯片使用SPI接口总线以通信方式耦合到第三小芯片,并且所述方法进一步包括:
在所述第一小芯片处,
将第二消息发送到所述第三小芯片,其中所述第二消息包括命令字段,其包含被配置成启用对所述第三小芯片的存取的一或多个位;以及
在所述第三小芯片处,
从所述第一小芯片接收所述第二消息,并且作为响应,
准备包括次要装置状态字段的第二响应消息,其中所述次要装置状态字段包含经选择以指示所述第三小芯片准备好将数据有效负载提供到所述第一小芯片的一或多个位。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/074,787 US11379401B2 (en) | 2020-10-20 | 2020-10-20 | Deferred communications over a synchronous interface |
US17/074,787 | 2020-10-20 | ||
PCT/US2021/053964 WO2022086716A1 (en) | 2020-10-20 | 2021-10-07 | Deferred communications over a synchronous interface |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116569157A true CN116569157A (zh) | 2023-08-08 |
Family
ID=81186695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180083096.0A Pending CN116569157A (zh) | 2020-10-20 | 2021-10-07 | 通过同步接口的经延迟通信 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11379401B2 (zh) |
CN (1) | CN116569157A (zh) |
WO (1) | WO2022086716A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11379401B2 (en) | 2020-10-20 | 2022-07-05 | Micron Technology, Inc. | Deferred communications over a synchronous interface |
CN114925010B (zh) * | 2022-05-23 | 2024-05-10 | 中国电子科技集团公司第五十八研究所 | 一种Quad SPI转AXI接口的方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4063529B2 (ja) * | 2001-11-28 | 2008-03-19 | Necエレクトロニクス株式会社 | バスシステムおよびリトライ方法 |
GB2407662B (en) * | 2003-11-03 | 2006-02-22 | Compxs Uk Ltd | Two way serial communication |
US7548552B2 (en) * | 2005-01-18 | 2009-06-16 | Freescale Semiconductor, Inc. | Method for polling in a medium access control protocol |
US7734858B2 (en) * | 2006-04-27 | 2010-06-08 | Dell Products L.P. | Fabric interposer for blade compute module systems |
US7761633B2 (en) * | 2007-01-29 | 2010-07-20 | Microsemi Corp. - Analog Mixed Signal Group Ltd. | Addressable serial peripheral interface |
US8346974B2 (en) * | 2007-07-27 | 2013-01-01 | Microsoft Corporation | Hardware control interface for IEEE standard 802.11 |
US8103936B2 (en) | 2007-10-17 | 2012-01-24 | Micron Technology, Inc. | System and method for data read of a synchronous serial interface NAND |
US8327052B2 (en) | 2009-12-23 | 2012-12-04 | Spansion Llc | Variable read latency on a serial memory bus |
US8433838B2 (en) | 2010-09-17 | 2013-04-30 | International Business Machines Corporation | Remote multiplexing devices on a serial peripheral interface bus |
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 |
US10642769B2 (en) * | 2017-03-24 | 2020-05-05 | Analog Devices Global Unlimited Company | Serial peripheral interface daisy chain mode system and apparatus |
TWI634429B (zh) | 2017-04-11 | 2018-09-01 | 來揚科技股份有限公司 | 基於spi界面的多記憶體協作結構 |
JP6444475B1 (ja) * | 2017-11-28 | 2018-12-26 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US11379401B2 (en) | 2020-10-20 | 2022-07-05 | Micron Technology, Inc. | Deferred communications over a synchronous interface |
-
2020
- 2020-10-20 US US17/074,787 patent/US11379401B2/en active Active
-
2021
- 2021-10-07 WO PCT/US2021/053964 patent/WO2022086716A1/en active Application Filing
- 2021-10-07 CN CN202180083096.0A patent/CN116569157A/zh active Pending
-
2022
- 2022-06-03 US US17/831,856 patent/US11868300B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11868300B2 (en) | 2024-01-09 |
US20220121596A1 (en) | 2022-04-21 |
US20220300447A1 (en) | 2022-09-22 |
WO2022086716A1 (en) | 2022-04-28 |
US11379401B2 (en) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220066969A1 (en) | Mapping high-speed, point-to-point interface channels to packet virtual channels | |
CN114385250B (zh) | 小芯片系统内的小芯片i/o信道的初始化定序 | |
US11669487B2 (en) | Secondary device detection using a synchronous interface | |
CN114388040B (zh) | 通知进程或可编程原子操作捕获的方法 | |
US11868300B2 (en) | Deferred communications over a synchronous interface | |
CN116325690A (zh) | 用于对多个元素进行编码的单个字段 | |
CN114385240A (zh) | 组织可编程原子单元指令存储器的方法 | |
US11953989B2 (en) | Low-latency register error correction | |
CN114385241A (zh) | 完成可编程原子事务的方法 | |
CN116601601A (zh) | 在多过程系统内执行可编程原子单元资源的方法 | |
CN116636189A (zh) | 用于网络装置中的缓冲包的包仲裁 | |
CN116261849A (zh) | 组合写入启用掩码和信用返回字段 | |
CN116324747A (zh) | 基于每个分组中的路径信息类型进行数据分组的有序传递 | |
CN116325693A (zh) | 基于分组的网络中的可选路径排序 | |
US11650876B2 (en) | Payload parity protection for a synchronous interface | |
US20220121612A1 (en) | Static identifiers for a synchronous interface | |
CN114385538B (zh) | 电路中的管线合并 | |
CN116685942A (zh) | 在处理器中重用飞行中寄存器数据 | |
CN116529721A (zh) | 按需可编程原子内核加载 | |
CN114385246A (zh) | 桶式多线程处理器中的可变流水线长度 | |
US20220121486A1 (en) | Rescheduling a failed memory request in a processor | |
US20220121483A1 (en) | Thread execution control in a barrel processor | |
CN116569151A (zh) | 多通道存储器系统 | |
CN116635824A (zh) | 桶式处理器中的线程调度控制及存储器分割 | |
CN116324753A (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 |