从储存设备的冲突检测的制作方法

文档序号:12863733阅读:197来源:国知局
从储存设备的冲突检测的制作方法与工艺

本公开总体涉及储存设备。



背景技术:

总线是在储存设备之间传输数据的通信系统。总线可以是在多个线路上并行地携带数据字的并行总线或者是以位串行形式携带数据的串行总线。在总线上的多个储存设备同时传送数据的情况下可能发生冲突,这可能导致总线上的数据的损坏。试图避免这样的冲突,储存设备可以配置有支持各种仲裁方案的专用硬件。



技术实现要素:

在一个示例中,一种方法包括由储存设备的控制器在数据线上传送第一位。该方法还包括响应于在所述数据线上传送所述第一位,由控制器确定所述数据线的线路电平。该方法还包括响应于确定所述数据线的线路电平,由控制器确定所述数据线的线路电平是否对应于所述第一位,以及响应于确定所述数据线的线路电平不对应于所述第一位,由所述控制器确定在所述数据线上发生冲突。

在另一示例中,一种储存设备包括逻辑上被划分成多个块的多个存储设备以及控制器。所述控制器被配置为在数据线上传送第一位,并且响应于在所述数据线上传送所述第一位,确定所述数据线的线路电平。所述控制器还被配置为响应于确定所述数据线的线路电平,确定所述数据线的线路电平是否对应于所述第一位,并且响应于确定所述数据线的线路电平不对应于所述第一位,确定在所述数据线上发生冲突。

在另一示例中,一种编码有指令的非临时性计算机可读存储介质,所述指令在被执行时使储存设备的一个或多个处理器在数据线上传送第一位,并且响应于在所述数据线上传送所述第一位,确定所述数据线的线路电平。所述指令还将储存设备的一个或多个处理器配置为响应于确定所述数据线的线路电平,确定所述数据线的线路电平是否对应于所述第一位,并且响应于确定所述数据线的线路电平不对应于所述第一位,确定在所述数据线上发生冲突。

在另一示例中,一种系统包括用于在数据线上传送第一位的部件,用于响应于在所述数据线上传送所述第一位而确定所述数据线的线路电平的部件,用于响应于确定所述数据线的线路电平而确定所述数据线的线路电平是否对应于所述第一位的部件,以及用于响应于确定所述数据线的线路电平不对应于所述第一位而确定在所述数据线上发生冲突的部件。

附图说明

图1是图示根据本公开的一个或多个技术的多个储存设备可以与主机设备交互的示例储存环境的概念和示意框图。

图2是图示根据本公开的一个或多个技术的储存设备可以与主机设备交互的示例储存环境的概念和示意框图。

图3是图示根据本发明的一个或多个技术的至少一个处理器可以实现冲突检测的示例技术的概念图。

图4是图示根据本公开的一个或多个技术的至少一个处理器可以实现冲突检测的示例技术的流程图。

具体实施方式

本公开的技术可以使得无专用硬件的设备能够检测共享总线上的冲突。例如,从设备可以向共享总线写入并确定共享总线的线路电平,以确定该线路电平是否为期望线路电平。如果该线路电平不是期望线路电平,则从设备可以确定存在冲突并且中止总线上的进一步通信,直到下个开始条件。更具体地,本公开的技术可以使得储存设备的控制器能够执行代码,该代码使控制器读取共享总线的系统总线数据线,确定系统总线数据线的当前线路电平,将当前线路电平与期望线路电平相比较,并且如果当前线路电平与期望线路电平足够不同,则确定发生冲突。以这种方式,无专用冲突检测硬件的从设备可以被配置为检测冲突,这可以使得多个设备能够在单个共享总线上操作,同时保持数据完整性。

图1是图示根据本公开的一个或多个技术的多个储存设备可以与主机设备102交互的示例储存环境10的概念和示意框图。储存环境10可以包括通过总线108连接到主储存设备104和多个从储存设备106a-106n(统称为“从储存设备106”)的主机设备102。在一些示例中,总线108可以支持主机设备102与主储存设备104和多个从储存设备106之间的通信。在一些示例中,从储存设备106可以共享总线108上的公共地址。在一些示例中,总线108可以符合nvmemi规范,诸如2015年11月17日在nvmexpress管理接口修订本1.0中描述的nvmemi规范,其全部内容通过引用据此并入本文。

主储存设备104可以被配置为控制从储存设备106。例如,主储存设备104可以经由总线108向从储存设备106传送停止命令,其使从储存设备106停止向总线108上传送。在一些情况下,主储存设备104可以经由总线108向从储存设备106传送开始命令,其使一个或多个从储存设备106开始向总线108上传送。

主储存设备104可以是适于储存可以由主机设备102使用总线108访问的数据的任何设备。在一些示例中,主储存设备104可以包括非易失性存储器阵列(例如,固态驱动器(ssd))以储存可以由主机设备102使用总线108访问的数据。例如,主储存设备104可以包括控制器、非易失性存储器阵列、缓存以及接口。在一些示例中,主储存设备104可以包括磁记录(例如,硬盘驱动器(hdd))以储存可以由主机设备102使用总线108访问的数据。例如,主储存设备104可以包括控制器、叠瓦式磁记录、缓存以及接口。

在一些示例中,主储存设备104可以基本类似于从储存设备106,除了主储存设备104被当作总线108上的主设备之外。例如,主储存设备104可以生成能够由从储存设备106使用的时钟信号。在一些情况下,主储存设备104可以包括仲裁模块。在一些示例中,主储存设备104和从储存设备106可以不同。例如,主储存设备104可以省略仲裁模块。在一些示例中,主储存设备104可以符合系统管理(sm)总线(smbus),诸如2014年12月20日在系统管理接口论坛公司的“systemmanagementbus(smbus)specificationversion3.0”中描述的smbus,其全部内容通过引用据此并入本文。例如,主储存设备104可以被配置为与总线108上的其他主储存设备一起执行仲裁。

主机设备102可以利用主储存设备104和从储存设备106中包括的存储设备来储存和取回数据。主机设备102可以包括任何计算设备,包括例如计算机服务器、网络附属储存(nas)单元、台式计算机、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、诸如“智能”电话的移动计算设备、电视、照相机、显示设备、数字媒体播放器、视频游戏机、视频流式传输设备等。主机设备102可以包括处理单元,其可以指代能够处理数据的任何形式的硬件,并且可以包括通用处理单元(诸如中央处理单元(cpu))、专用硬件(诸如专用集成电路(asic))、诸如现场可编程门阵列(fpga)的可配置硬件或者通过软件指令、微代码、固件等配置的任何其他形式的处理单元。

总线108可以包括用于在主机设备102、主储存设备104与从储存设备106之间传送数据的数据线。例如,总线108可以包括串行数据线(sda)。总线108可以符合任何合适的协议和标准。例如,总线108可以符合smbus。在一些情况下,总线108可以符合集成电路总线(i2c),诸如2014年4月4日由nxp半导体在“i2c-busspecificationandusermanual”(修订本6)中描述的i2c,其全部内容通过引用据此并入本文。在一些示例中,总线108可以包括用于对数据传输进行定时的时钟线。例如,总线108可以包括串行时钟线(scl)。在一些示例中,时钟线可以指示用于在数据线上传输数据的定时。例如,主机设备102可以在总线108的时钟线上传送的时钟信号的上升沿期间读取数据。

在一些示例中,每个从储存设备106使用仲裁模块110a-n(统称为“仲裁模块110”)中的相应的一个来执行冲突检测。例如,从储存设备106a的仲裁模块110a可以检测从储存设备106之间的仲裁问题(例如,冲突)并且中止进一步传送,以防止总线108的数据损坏。在一些示例中,仲裁模块110可以以软件实现。例如,仲裁模块110a可以包括在执行时检测冲突的固件。在一些示例中,仲裁模块110可以与总线通信单元一起操作。例如,仲裁模块110a的固件可以确定在总线108的数据线上是否发生冲突,并且总线通信单元可以确定何时在总线108的数据线上传送数据(例如,总线108的时钟线的上升沿)。

仲裁模块110可以与总线108同步以确定何时传送数据。在一些示例中,仲裁模块110可以响应于传送缓冲器空事件而发起数据的传送。例如,在接收到传送缓冲器空事件的指示之后,仲裁模块110a可以针对确认而监测总线108,并且在检测到确认的一个时钟周期之后开始监测总线108上的数据的传送。以这种方式,仲裁模块110可以与总线108同步以检测冲突。

在与总线108同步之后,仲裁模块110可以确定在总线108上是否发生冲突。例如,如果总线108上的线路电平(例如,逻辑‘1’)与期望线路电平(例如,输出到传送保持寄存器中的逻辑‘1’)不匹配,则仲裁模块110a可以确定在总线108上发生冲突。在一些示例中,如果从储存设备106中的多于一个的从储存设备在总线108上传送,则线路电平可能与期望线路电平不匹配。例如,如果仲裁模块110a传送逻辑‘1’,并且在相同的时钟周期期间仲裁模块110b传送逻辑‘0’,则总线108上的线路电平可能指示逻辑‘0’。

如果在总线108上发生冲突,则从储存设备106可以中止在总线108上传送。例如,如果仲裁模块110a确定在总线108上发生冲突,则仲裁模块110a可以使从储存设备106a中止在总线108上传送。以这种方式,仲裁模块110可以通过试图访问总线108并且响应于检测到总线108上的冲突而中止用于总线108上的传送的输出来执行仲裁。

图2是图示根据本公开的一个或多个技术的从储存设备107可以与主机设备102交互的示例储存环境12的概念和示意框图。如图2所示,从储存设备107可以包括控制器122、储存元件126、缓存124以及接口120。在一些示例中,从储存设备107可以包括为清楚起见在图2中未示出的附加组件。例如,从储存设备107可以包括功率输送组件,包括例如电容器、超级电容器或电池;印刷电路板(pb),从储存设备107的组件被机械地附接到该印刷电路板,并且该印刷电路板包括将从储存设备107的组件电互连的导电迹线;诸如此类。

从储存设备107可以经由接口120可通信地耦合到主机设备102。接口120可以提供到主机设备102的机械连接、以及电连接、或者二者。例如,接口120可以被配置为连接到总线108的数据线。在一些情况下,接口120可以被配置为连接到总线108的时钟线。接口120可以根据任何合适的协议来操作。例如,接口120可以根据非易失性存储器(nvm)expresstm(nvme)来操作,诸如2015年10月23日的“nvmerevision1.2a”中描述的nvm子系统,其全部内容通过引用据此并入本文。在一些情况下,接口120可以根据以下协议中的一个或多个来操作:nvme、nvmemi、i2c、高级技术附件(ata)(例如,串行ata(sata)和并行ata(pata))、光纤通道、小型计算机系统接口(scsi)、串行连接的scsi(sas)、外围组件互连(pci)和pci-express。接口120的电连接件(例如,数据总线、控制总线、时钟总线等)可以电连接到控制器122,从而提供主机设备102与控制器122之间的电连接,允许数据在主机设备102与控制器122之间交换。

缓存124可以储存用于传送到总线108上的数据。例如,控制器122可以将数据写入缓存124的传送保持寄存器。然后,在稍后的时间(例如,在时钟信号的上升时钟沿期间),接口120可以将储存在缓存124的传送保持寄存器中的数据传送到至主机设备102的总线108上。在一些示例中,缓存124可以包括易失性存储器。在一些示例中,缓存124可以包括非易失性存储器。例如,控制器122可以将缓存的信息储存在缓存124中,直到缓存的信息被写入储存元件126。缓存124的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态ram(sram)和同步动态ram(sdram(例如,ddr1、ddr2、ddr3、ddr3l、lpddr3、ddr4等))。

在一些示例中,储存元件126可以包括存储器阵列(例如,ssd)以储存可以由主机设备102使用总线108访问的数据。例如,控制器122可以响应于通过总线108从主机设备102接收到命令来读取和写入储存元件126的非易失性存储器阵列。在一些示例中,储存元件126可以包括磁记录(例如hdd)以储存可以由主机设备102使用总线108访问的数据。例如,控制器122可以响应于通过总线108从主机设备102接收到命令来读取和写入储存元件126的叠瓦式磁记录(smr)。在一些示例中,储存元件126可以包括ssd元件和hdd元件的组合。例如,储存元件126可以包括叠瓦式磁记录和易失性存储器阵列。在一些示例中,储存元件126可以具有大的储存容量,例如512mb、1gb、2gb、4gb、8gb、16gb、32gb、64gb、128gb、256gb、512gb、1tb、3tb等。

在一些示例中,控制器122可以包括写入模块142、读取模块140、仲裁模块111以及总线通信单元150。在其他示例中,控制器122可以包括附加模块或硬件单元,或者可以包括更少的模块或硬件单元。控制器122可以包括微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他数字逻辑电路。

控制器122的读取模块140和写入模块142可以管理对储存元件126的读取和写入。例如,响应于写入模块142从主机设备102接收到指示从储存设备107将数据储存在储存元件126中的命令,写入模块142可以确定储存元件126的物理地址和/或轨道以储存数据。

在写入模块142将数据写入储存元件126中之后,读取模块140可以从储存元件126的物理地址和/或轨道取回数据。例如,响应于从储存设备107从主机接收到指示从储存设备107传送储存在储存元件126中的数据的命令,读取模块140可以确定包含要传送的数据的储存元件126的物理地址和/或轨道。

在读取模块140从储存元件126取回数据之后,数据可以被传送到至主机设备102的总线108上。例如,仲裁模块111可以准许写入模块142将数据输出到缓存124的传送保持寄存器上,并且如果总线108的线路电平与该数据的期望线路电平不匹配,则仲裁模块111可以中止准许写入模块142将数据输出到缓存124的传送保持寄存器上。

总线通信单元150可以确定何时在总线108的数据线上传送数据。例如,总线通信单元150可以读取储存在缓存124的传送保持寄存器中的数据,并且在总线108的时钟线的上升沿期间,将储存在缓存124的传送保持寄存器中的数据在总线108的数据线上串行地传送。总线通信单元150可以包括微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他数字逻辑电路。

总线通信单元150可以读取总线108上的数据。例如,总线通信单元150可以经由总线108读取来自主机设备102的对数据的请求。在一些示例中,总线通信单元150可以使用接口120来监测总线108的时钟线,以确定何时读取数据。例如,总线通信单元150可以经由接口120检测总线108的时钟线上的时钟信号的上升沿,并且在时钟信号的上升沿期间读取总线108的数据线。

总线通信单元150可以确定传送保持寄存器是否具有要在总线108上传送的数据。例如,总线通信单元150可以检测传送标志的状态,并且如果标志是清除的(cleared),则确定传送保持寄存器具有数据。在一些示例中,传送标志可以由仲裁模块111、写入模块142等清除。

在传送保持寄存器为空的情况下,总线通信单元150可以向仲裁模块111发信号通知传送保持寄存器为空。在一些示例中,总线通信单元150可以使用中断来发信号通知传送保持寄存器为空。例如,响应于总线通信单元150确定缓存124的传送缓冲器为空,总线通信单元150可以向仲裁模块111输出传送缓冲器空事件中断。

响应于接收到缓存124的传送保持寄存器为空的信号,写入模块142可以将数据输出到缓存124的传送保持寄存器中。例如,响应于写入模块142从总线通信单元150接收到传送缓冲器空事件的指示,写入模块142可以将数据的下个字节写入缓存124的传送保持寄存器中。

一旦写入模块142将数据输出到缓存124的传送保持寄存器中,则仲裁模块111可以针对确认而监测总线108以与总线108同步。例如,仲裁模块110可以确定在总线108的时钟线的下个时钟周期的上升沿期间,总线108的数据线对于线路电平是否指示逻辑‘1’。如果在总线108的时钟线的下个时钟周期期间线路电平指示逻辑‘1’,则仲裁模块110可以确定在总线108上已发生确认。

在发送缓存124的传送保持寄存器为空的信号之后,总线通信单元150可以确定是否在总线108上成功接收数据。在一些示例中,总线通信单元150可以基于接收到的位数来确定是否成功接收数据。例如,如果正好传输一个字节的数据,则总线通信单元150可以确定在总线108上成功接收数据。在一些示例中,总线通信单元150可以基于分组错误检查来确定是否成功接收数据。例如,如果总线通信单元150基于接收到数据计算校验和,该校验和等于与总线108上的数据一起传送的校验和,则总线通信单元150可以确定在总线108上成功接收数据。

响应于总线通信单元150确定在总线108上成功接收数据,总线通信单元150可以传送指示成功接收数据的确认。例如,总线通信单元150可以经由接口120检测总线108的时钟线上的时钟信号的上升沿,并且在总线108的时钟线的时钟信号的上升沿期间读取总线108的数据线的字节的最后一位。然后,在总线通信单元150确定成功接收数据之后,总线通信单元150可以经由总线108在时钟周期的上升沿期间传送确认。例如,总线通信单元150可以在总线108的时钟线的下个时钟周期的上升沿期间驱动总线108的数据线以具有指示逻辑‘1’的线路电平。

在传送确认之后,总线通信单元150可以从传送保持寄存器加载数据以在总线108上传送,并且可以将加载的数据传送到总线108上。例如,总线通信单元150可以读取缓存124的传送缓冲器中的下个字节,并且可以在总线108的时钟线的时钟信号的上升沿期间在总线108的数据线上传送该下个字节。

响应于仲裁模块111检测到传送到总线108上的确认并且总线通信单元150将数据传送到总线108上,仲裁模块111可以确定与输出到缓存124的传送保持寄存器中的数据的位相对应的线路电平。例如,仲裁模块111可以使用接口120和/或总线通信单元150来检测与该确认相对应的总线108的时钟线上的时钟周期(例如,上升沿、下降沿或者在上升沿与下降沿之间延伸的区域),并且可以使用接口120和/或总线通信单元150来读取与紧接与该确认相对应的总线108的时钟线上的时钟沿之后的时钟周期的时钟周期(例如,上升沿、下降沿或者或者在上升沿与下降沿之间延伸的区域)相对应的总线108的数据线上的线路电平。

响应于确定与输出到缓存124的传送保持器寄存器中的数据的位相对应的线路电平,仲裁模块111可以将该线路电平与预期线路电平相比较以检测总线108上的冲突。例如,仲裁模块111可以将输出到缓存124的传送保持寄存器中的位的逻辑电平(例如,逻辑‘1’或‘0’)与在与该位相对应的时钟周期期间在总线108的数据线上检测到的线路电平相比较。

如果线路电平与预期线路电平匹配,则仲裁模块111可以确定在总线108上未发生冲突。例如,如果写入模块142将逻辑‘1’输出到缓存124的传送保持寄存器中并且接口120和/或总线通信单元150在总线108的数据线上检测到逻辑‘1’线路电平,则仲裁模块111可以确定在总线108上未发生冲突。

另一方面,如果线路电平与预期线路电平不匹配,则仲裁模块111可以确定在总线108上发生冲突。例如,当写入模块142将逻辑‘0’输出到缓存124的传送保持寄存器并且接口120和/或总线通信单元150在总线108的数据线上检测到逻辑‘1’线路电平,则仲裁模块111可以确定在总线108上发生冲突。

在仲裁模块111确定在总线108上发生冲突的情况下,从储存设备107可以中止在总线108的数据线上传送,直到发生下个开始条件。例如,如果线路电平与期望线路电平不匹配,则仲裁模块111可以使得写入模块142停止将数据输出到缓存124的传送保持寄存器中,直到发生下个开始条件。

总线通信单元150可以确定在总线108上是否发生开始条件。例如,当主机设备102在时钟线的第一时钟周期(例如,上升沿)期间传送停止命令(例如,将数据线驱动到逻辑‘1’)时,总线通信单元150可以确定总线108的数据线已经被复位,并且响应于确定数据线已被复位,当主机设备102在时钟线的第二时钟周期期间传送开始命令(例如,将数据线驱动到逻辑‘0’)时,总线通信单元150可以确定在总线108上发生开始条件。在一些情况下,当从储存设备107在时钟线的第一时钟周期(例如,上升沿)期间传送否定确认(nack或nak)命令时,总线通信单元150可以确定总线108的数据线已被复位,并且响应于确定数据线已经被复位,当主机设备102在时钟线的第二时钟周期期间传送开始命令(例如,将数据线驱动到逻辑‘0’)时,总线通信单元150可以确定在总线108上发生开始条件。

响应于确定在总线108上发生开始条件,仲裁模块111可以使总线通信单元150重试经由总线108向主机设备102传送第一位。例如,仲裁模块111可以准许写入模块142将数据输出到缓存124的传送保持寄存器中,以使总线通信单元150在总线通信单元150确定总线108的数据线已经被复位之后和/或在发生开始条件之后(以及在仲裁模块111接收到传送缓冲器空事件的另一指示之后)重试传送第一位。

在仲裁模块111确定在总线108上未发生冲突的情况下,仲裁模块111可以继续准许写入模块142将数据(例如,第二位、第三位等)输出到缓存124的传送保持寄存器中。例如,仲裁模块111可以将输出到缓存124的传送保持寄存器中的第二位的逻辑电平(例如,逻辑‘1’或‘0’)与在与第二位相对应的时钟周期(例如,与第一位相对应的时钟周期之后的一个时钟周期)期间在总线108的数据线上检测到的线路电平相比较。响应于写入模块142将数据输出到缓存124的传送保持寄存器中,总线通信单元150可以继续将数据传送到总线108上,直到数据(例如,字节)已被发送到主机设备102。

在总线通信单元150在总线108上传送的情况下,总线通信单元150可以检测在总线108上是否发生停止命令。例如,总线通信单元150可以经由接口120检测到总线108的数据线上的数据信号的从低到高的转变,同时总线108的时钟线上的时钟信号为高。在一些示例中,可以由主储存设备(例如,图1的主储存设备104)传送停止命令。响应于接收到停止命令,总线通信单元150可以中止在总线108上传送,直到总线108已被复位和/或当发生开始条件时。

图3是图示根据本发明的一个或多个技术的至少一个处理器可以实现冲突检测的示例技术的概念图。为了便于描述,将同时参考图1的储存环境10和图2的控制器122来描述图3的技术。尽管图3将串行时钟线图示为时钟线,但是可以使用任何合适的时钟信号和协议。另外,尽管图3将串行数据线图示为数据线,但是可以使用任何合适的数据线和协议。应当理解,在一些示例中,主机数据线信号204和设备数据线信号206可以是相同的数据线信号,并且数据线信号的分离仅仅是为了进一步图示出如何可以由主机设备102和从储存设备106a驱动数据线信号。

主机设备102可以通过将主机数据线信号204从逻辑‘1’驱动到逻辑‘0’来指示开始条件210,并且主机设备102可以随后在主机数据线信号204上向从储存设备106a发送数据。在传送条件214,从储存设备106a可以驱动设备数据线信号206以指示确认220,该确认指示对从主机设备102发送的数据的成功接收。在一些示例中,确认220可以在状态(例如,传送缓冲器空事件)期间,其可以由仲裁模块(例如,图2的111)用来与设备数据线信号206同步。接下来,在传送条件214期间并且在确认220之后,从储存设备106a可以驱动设备数据线信号206以传送字节222。在一些示例中,仲裁模块(例如,图2的111)可以将设备数据线信号206与期望线路电平相比较,以确定是否发生冲突。如图3所示,如果未发生冲突,则从储存设备106a可以驱动设备数据线信号206以继续传送数据,直到主机设备102驱动主机数据线信号204以指示停止条件216。

图4是图示根据本公开的一个或多个技术的至少一个处理器可以实现冲突检测的示例技术的流程图。为了便于描述,将同时参考图1的储存环境10和图2的控制器122来描述图4的技术。

仲裁模块111可以接收传送缓冲器空事件的指示(302)。例如,总线通信单元150可以向仲裁模块111发送对应于传送缓冲器空事件的中断。响应于传送缓冲器空事件的指示,写入模块142可以将数据输出到传送保持寄存器中(304)。例如,在仲裁模块111接收到对应于传送缓冲器空事件的中断之后,仲裁模块111可以准许写入模块142将数据输出到缓存124的传送保持寄存器中。接下来,仲裁模块111可以确定何时由总线通信单元150在总线108上传送确认(306)。例如,在仲裁模块111接收到对应于传送缓冲器空事件的中断并且将数据写入缓存124的传送保持寄存器中之后,仲裁模块111可以针对确认而在总线108的时钟线的上升沿期间监测总线108的数据线。在一些情况下,可以由总线通信单元150响应于检测到在总线108上传送的数据到从储存设备107的成功接收而传送确认。然后,从储存设备107可以在总线108的数据线上向主机设备102传送第一位(308)。例如,总线通信单元150可以在总线108的数据线上向主机设备102传送第一位,其与从缓存124的传送保持寄存器读取的第一位相对应。接下来,仲裁模块111可以基于何时在总线108的数据线上传送确认,来确定总线108的数据线的线路电平(310)。例如,仲裁模块111可以使用接口120和/或总线通信单元150检测与该确认相对应的总线108的时钟线上的时钟沿(例如,上升沿),并且可以读取与紧接与该确认相对应的总线108的时钟线上的时钟沿之后的时钟周期的时钟沿(例如,上升)相对应的总线108的数据线上的线路电平。

如果线路电平对应于第一位(316的“是”分支),则从储存设备107可以确定未发生冲突(322)。例如,仲裁模块111可以响应于写入模块142将第一位作为逻辑‘0’输出到缓存124的传送保持寄存器并且确定对应于第一位的线路电平指示逻辑‘0’,来确定未发生冲突。接下来,从储存设备107可以在总线108的数据线上传送第二位(324)。例如,写入模块142可以将第二位的值输出到缓存124的传送保持寄存器,并且总线通信单元150可以在总线108的数据线上向主机设备102传送第二位。

另一方面,如果线路电平不对应于第一位(316的“否”分支),则仲裁模块111可以确定发生冲突(318)。例如,仲裁模块111可以响应于写入模块142将第一位作为逻辑‘1’输出到缓存124的传送保持寄存器并且确定对应于第一位的线路电平指示逻辑‘0’,来确定发生冲突。响应于确定已发生冲突,从储存设备107可以中止总线108上的进一步传送。例如,仲裁模块111可以停止准许写入模块142将数据(例如,字节的第二位)输出到缓存124的传送保持寄存器,直到在重新开始发送数据(例如,重新启动到302)之前发生开始条件(320)。

本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者任何其他等效集成或离散逻辑电路,以及这样的组件的任何组合。术语“处理器”或“处理电路”通常可以指代任何前述逻辑电路,单独地或与其他逻辑电路组合,或者任何其他等效电路。包括硬件的控制单元还可以执行本公开的一个或多个技术。

这样的硬件、软件和固件可以在相同的设备内或者在单独的设备内实现,以支持本公开中描述的各种技术。另外,任何所描述的单元、模块或组件可以一起或单独实现为离散但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并且不一定意味着这样的模块或单元必须由单独的硬件、固件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件、固件或软件组件来执行,或者集成在公共或单独的硬件、固件或软件组件中。

本公开中描述的技术还可在包括编码有指令的计算机可读存储介质的制品中实施或编码。在包括计算机可读存储介质的制品中嵌入或编码的指令可以使一个或多个可编程处理器或者其他处理器实现在此描述的技术中的一个或多个,诸如当在计算机可读存储介质中包括或编码的指令由一个或多个处理器执行时。计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪速存储器、硬盘,压缩盘rom(cd-rom)、软盘、盒式磁带、磁性介质、光学介质或者其他计算机可读介质。在一些示例中,制品可以包括一个或多个计算机可读存储介质。

在一些示例中,计算机可读存储介质可以包括非临时性介质。术语“非临时性”可以表示存储介质未被包含在载波或传播信号中。在某些示例中,非临时性存储介质可以存储可能随时间改变的数据(例如,在ram或缓存中)。

已经描述了各种示例。这些和其他示例都在所附权利要求的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1