CN107077446B - 具有可编程的端接级别的动态总线反转 - Google Patents
具有可编程的端接级别的动态总线反转 Download PDFInfo
- Publication number
- CN107077446B CN107077446B CN201580060752.XA CN201580060752A CN107077446B CN 107077446 B CN107077446 B CN 107077446B CN 201580060752 A CN201580060752 A CN 201580060752A CN 107077446 B CN107077446 B CN 107077446B
- Authority
- CN
- China
- Prior art keywords
- ratio
- signal
- inverted version
- closer
- target
- 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.)
- Active
Links
Images
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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- 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/4004—Coupling between buses
-
- 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/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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
- G06F13/4072—Drivers or receivers
-
- 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/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous 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/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
-
- 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/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4906—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
- H04L25/4915—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes using pattern inversion or substitution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Dc Digital Transmission (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Power Sources (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
Abstract
动态总线反转(DBI)用于可编程级别的1和0的比率。发送设备识别要发送的信号的非反转版本(“非反转信号”)中的1和0的数量和/或比率,以及信号的反转版本(“反转信号”)中的1和0的数量和/或比率。发送设备可以计算非反转信号中的1和0的差或者反转信号中的1和0的差是否提供了更接近目标比率的1与0的计算的平均比率。发送设备发送实现了提供更接近目标比率的计算的平均比率的信号。
Description
技术领域
本发明的实施例通常与存储器子***相关,并且更具体地涉及实现反转以维持1到0的可编程目标比率的动态总线反转实现。
版权声明/许可
本专利文献的公开的部分可以包含受版权保护的材料。版权所有者不反对任何人对如专利商标局专利文件或记录中所示的专利文献或专利公开进行复制,但以其他方式保留所有版权。版权声明适用于如下所述以及附图中的所有数据,以及适用于下述任何软件:版权所有2014,因特尔公司,保留所有权利。
背景技术
芯片间通信提供计算***的组件之间的信令。发送设备向接收设备发送信号或位模式。传统上已经使用数据总线反转来最小化通过数据总线传送的1或者0的数量。总线反转是指在传输之前在总线上反转每一位。这种反转的总线伴随着指示总线已被反转的位或信号,这允许接收设备适当地解释所接收的数据。这种概念已经进一步扩展到除了数据总线之外的总线,并且在本文中将一般性地称为动态总线反转(DBI),其可以包括包含一个或多个总线的任何信号线集合或信号线组。如上所述,DBI已被用于反转信号线组,以最小化具有指定逻辑电平的位数。例如,如果发送设备试图使发送的1的数量最小化,则对于1比0多的信号线组,发送设备可以反转信号线并产生反转指示。对于试图使0的数量最小化的发送设备,可以相反地实现。
DBI的扩展使用包括使信号线组中的信号的切换最小化。在这种使用中,发送设备可以确定输出位模式是否将切换比保持相同的信号线更多的信号线,而不是确定是否存在更多的1或0并且反转信号线组以使所需的逻辑状态最小化。因此,如果输出位模式与将发送与先前的发送相同的逻辑值的信号线相比具有从0到1或1到0的更多的转换,则发送设备可以反转总线并产生反转指示。这种操作可以减少用于连续发送的信号线组中的切换数量。
然而,随着在传送速度增加的同时功率消耗考虑在具有较低电压和更紧密的功率预算的现代电子设备中的重要性增加,芯片间通信中的DC(直流)平衡成为感兴趣的性能因素。DBI仅查看两个连续的发送,基于前一个事务确定在当前事务中发送的内容。根据传送的信号,DBI实际上会降低信号线组上的直流平衡。例如,考虑8位总线,其中发送设备寻求最小化1的数量。如果多于4位是1,则发送设备将反转总线并且发送超过4个0。在任一种情况下,总线上都没有DC平衡。
附图说明
以下描述包括具有通过本发明的实施例的实现方式的示例给出的图示的图的讨论。附图应当以示例而非限制的方式来理解。如本文所使用的,对一个或多个“实施例”的引用将被理解为描述包括在本发明的至少一个实现中的特定特征、结构和/或特性。因此,本文出现的诸如“在一个实施例中”或“在替代实施例中”的短语描述了本发明的各种实施例和实现方式,并不一定全部涉及相同的实施例。但是,它们也不一定相互排斥。
图1是执行动态总线反转以保持1和0的目标比率的***的实施例的框图。
图2是实现动态总线反转以保持I/O接口上的期望的DC偏移的***的实施例的框图。
图3是动态总线反转逻辑的实施例的框图。
图4是行为模拟的实施例的表示,行为模拟将使用动态总线反转以保持1和0的目标比率的***的输出噪声与不使用动态总线反转的***的输出噪声相比较。
图5是用于实现可编程动态总线反转的过程的实施例的流程图。
图6是可以实现可编程动态总线反转的计算***的实施例的框图。
图7是可以实现可编程动态总线反转的移动设备的实施例的框图。
下面是包括附图的描述的某些细节和实现的描述,其可以描绘下面描述的一些或全部实施例,以及讨论本文呈现的发明概念的其他潜在实施例或实现。
具体实施方式
如这里所描述的,***采用动态总线反转(DBI)来实现在一段时间内跨越一组信号线的期望的1与0的比率。该比率可以是针对设备预先配置的和/或在***中动态地设置的可编程级别。为了使用DBI来实现期望的1和0的比率,发送设备识别要发送或输出的信号的非反转版本(“非反转信号”)中1和0的数量和/或比率,以及信号的反转版本(“反转信号”)中的1和0的数量和/或比率。发送设备可以计算非反转信号或反转信号中的1和0的比率是否提供更接近目标比率的计算的平均比率。目标比率表示可以通过预先配置发送设备和/或动态地配置设备来进行操作来设置的期望比率。发送设备发送实现更接近目标比率的计算的平均比率的信号。如果将非反转信号的比率与计算的平均比率相加提供更接近目标比率的平均比率,则发送设备发送该信号而不产生反转指示。如果将反转信号的比率与计算的平均比率相加提供更接近目标比率的平均比率,则发送设备发送反转信号并产生反转指示。
应当理解,实现期望的1和0的比率可以是任何期望的比率。具有不是一比一的1和0的特定比率有优点。在一个实施例中,所期望的比率是一比一,或相等数目的1和0。可以考虑相等数量的1和0来在芯片间接口上实现DC(直流)平衡。如本文所使用的,接口是指用于允许一个芯片或一个设备与另一个芯片或另一个设备通信的机制。该接口可以是指与设备间通信相关的硬件和/或软件组件。例如,接口通常包括用于通过信号线或其他传输线路发送和接收的驱动器和/或收发器。接口可以包括引脚或球状物或其他互连机制。另外,设备包括控制器或其他逻辑,用于确定何种信号要在何种引脚上发送、什么时候使用和/或正在交换信号的其他因素。
在一个实施例中,这样的控制器可以计算或以其他方式确定DBI以实现1和0的期望比率。例如,控制器可以针对与DBI信号相关联的总线或信号线组计算并维持1和0的净比。控制器可以维持该比率作为每个周期的信号线的净DC平衡历史,并增加DBI控制以影响比率,从而影响DC平衡。在一个实施例中,控制器或其他逻辑维持已经发送的(1的净数减去0的净数)的有符号计数。应当理解的是,计算可以替代地执行为0的净数减去1的净数。在一个实施例中,控制器或逻辑可以控制DBI位以最小化计算的有符号计数的绝对值。在一个实施例中,控制器或逻辑可以控制DBI位以将计算的有符号计数的绝对值与可编程的目标值的方差最小化。在一个实施例中,发送设备被预编程有目标值。在一个实施例中,发送设备基于来自主机设备的命令或信号来对目标值编程。在一个实施例中,主机设备对目标值进行编程。目标值可以基于电源管理子***或其他控制逻辑进行编程。
应当理解,使用DBI来维持1和0的比率并不一定与为了其他目的应用DBI相互排斥。例如,在一个实施例中,如果***具有目标净误差(或目标净符号计数),并且给定周期内的净误差对于DBI的任一值都较小,则逻辑可以替代地计算DBI以减少切换数量并节省电力。可以利用使用DBI来实现1和0的比率并执行传统的DBI功能的其他示例。
应当理解,随着芯片间通信速度的增加而传输功率下降,高频噪声会使信令降级。DC平衡芯片间信令可以降低高频噪声并且提高信号质量。在一个实施例中,***可以使用加权方法来应用DBI。例如,当确定是否反转输出信号时,负责信号传输的片上控制器可以考虑1和0的比率以及特定逻辑值的数量(或切换次数)。在这种实现中,控制器可以应用采用DBI的加权算法用于两个目的。
例如,控制器可以确定在以下任何情况下应用DBI来反转信号组。在一个实施例中,如果1和0的数量之间的差值低于阈值或处于预定范围内,则控制器仅确定是否应用DBI来实现1和0的比率,否则应用DBI来最小化特定的逻辑值的数量。相反地,在一个实施例中,如果1和0的数量之间的差值低于阈值或处于预定范围内,则控制器仅确定是否应用DBI来最小化特定逻辑值的数量,否则应用DBI实现1和0的比率。在一个实施例中,控制器确定是否应用DBI来实现多个连续输出事务的1和0的比率,然后应用DBI来最小化特定逻辑值的数量,然后对于多个连续输出事务重复该序列。在这种实现中,用于应用DBI以实现1和0的比率的事务的数量不一定等于用于应用DBI以最小化特定逻辑值的数量的事务的数量,尽管它们可以是相等。可以理解,也可以考虑其他的。
在一个实施例中,可以在一系列连续输出事务(例如N个事务)上并行计算DBI,而不是一次仅查看一个事务的更常见的串行实现。传统的DBI仅对DBI进行单个事务评估,并且一次对单个事务实现或不实现DBI。本文描述的可以实现目标比率的DBI可以一次确定多个事务的DBI。通过查看多个事务,DBI可以进一步降低功率,同时改进DC平衡。例如,DBI决策引擎可以计算DBI以实现每N个事务的目标比率,并且对N-1个事务中的每个在它们之间在逐个事务的基础上执行传统的DBI。在一个实施例中,可以使发送数据可用(例如,缓冲)为N条并行线,其中DBI逻辑可以查看未来的事务,这可以改进在多个不同类型的DBI之间进行交换的决策(例如,实现目标比率和减少1的数量)。因此,在一个实施例中,可以对一系列事务进行与1和0的目标比率相关的计算,而对于每个输出事务,仍然可以执行其他形式的DBI。
发送设备通过一次查看多个事务来执行DBI。因此,发送设备保存多个连续发送的历史以应用DBI,以随时间推移实现1和0的目标比率。在一个实施例中,发送设备将历史记录保存在累加器中。应当理解,可以使用其他存储逻辑来保存DBI的历史。在一个实施例中,发送设备分别保存不同的信号线组的DBI。在一个实施例中,在存储器设备中,存储器控制器可以保存不同的通道、不同的设备或不同的等级的DBI。例如,假设具有多个等级的存储器子***。利用单一的累加或历史回路,一个等级可以沿正方向斜坡偏离目标比率,而另一个等级可以沿负方向斜坡偏离目标比率,但整体而言,子***似乎可以达到目标比率。对于不同级别使用不同累加器,存储器控制器可以将DBI分别应用于不同的等级,以单独实现每个等级的目标比率。因此,例如,假设等级0和等级1,存储器控制器可以使用累加器0和累加器1来分别监视目标比率。当发送到等级0时,存储器控制器可以将历史记录保存在累加器0中。类似地,当发送到等级1时,存储器控制器可以将历史记录保存在累加器1中。这样的概念可以扩展到任意数量的等级,或者扩展到通道、设备或其他粒度的控制。
在一个实施例中,历史逻辑或累加器可以是“泄漏桶式”累加器。泄漏桶式累加器只能持续一段时间的信息。通过泄漏错误信息或被保存为历史的其他信息,累加器不会无限期地持续错误,但发送设备将历史保存为滑动窗口。例如,考虑具有VTT端接的存储器设备,其中存储器设备具有X MHz的带宽。在这样一个例子中,存储器控制器可以保存大约为XMHz历史价值的滑动窗口。因此,存储器控制器可以以与存储器设备的带宽相似的速率泄漏或丢弃错误信息。一般来说,发送设备可以使用与接收设备的带宽在带宽上相似的、但不一定是完全相同的带宽的泄漏累加器。
在一个实施例中,芯片间通信发生在存储器设备和主机之间。主机可以是存储器控制器。存储器控制器可以是独立设备或集成到处理器中。存储器控制器可以是具有处理器的同一芯片的一部分。存储器控制器与存储器设备接口并且产生对应于访问由中央处理器、图形处理器和/或其他处理单元进行操作所请求的数据的需要的存储器访问命令。在一个实施例中,芯片间通信发生在计算***或计算设备中的任何两个设备之间。因此,这里的描述可以同样适用于未具体识别的存储器技术,并且还可以应用于共享能够反转的公共总线的任何类型的设备的设备间通信。根据本文所述的任何实施例的芯片间通信可以应用于共享可反转的一组信号线的两个设备之间的任何单端接口。单端接口测量信号对电压轨或参考电压。差分接口参照相关线路上的信号补码传送信号。
对存储器设备的引用可以应用于不同的存储器类型。存储器设备通常指易失性存储器技术。易失性存储器是其状态(以及因此存储在其上的数据)在设备电源中断的情况下是不确定的存储器。动态易失性存储器需要刷新存储在设备中的数据来维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或某些变体,例如同步DRAM(SDRAM)。如本文所述的存储器子***可以与许多存储器技术兼容,许多存储器技术例如DDR3(双数据速率版本3,2007年6月27日由JEDEC(联合电子设备工程委员会)发布,目前是版本21)、DDR4(DDR版本4,由JEDEC于2012年9月发布的初始规范)、LPDDR3(低功耗DDR版本3,JESD209-3B,JEDEC于2013年8月发布)、LPDDR4(LPDDR版本4,JESD209-4,最初由JEDEC于2014年8月发布)、WIO2(宽I/O 2(WideIO2),JESD229-2,最初由JEDEC于2014年8月发布)、DDR5(DDR版本5,目前由JEDEC讨论)、LPDDR5(目前由JEDEC讨论)和/或其他,以及基于这些规范的衍生或扩展的技术。
对存储器设备的引用可以应用于不同的存储器类型。存储器设备通常指易失性存储器技术。易失性存储器是其状态(以及因此存储在其上的数据)在设备电源中断的情况下是不确定的存储器。动态易失性存储器需要刷新存储在设备中的数据来维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或某些变体,例如同步DRAM(SDRAM)。本文描述的存储器子***可以与许多存储器技术兼容,许多存储器技术例如由2014年8月由JEDEC(联合电子设备工程委员会)最初发布的LPDDR4(低功率双数据速率(LPDDR)版本4,JESD209-4)),和/或其他,以及基于此类规范的衍生或扩展的技术。存储器包括多个存储器等级。在一个实施例中,存储器子***发出多个命令以执行单个存储器存取操作。在一个实施例中,每个命令是多循环命令。
图1是执行动态总线反转以保持1和0的目标比率的***的实施例的框图。***100表示参与设备间通信的存储器子***的组件。也就是说,存储器控制器110和存储器设备120通过包括信号线130的输入/输出(I/O)接口进行通信。虽然具体表示存储器子***,但是可以理解,通过一组信号线通信和具有伴随的反转信号的任何设备可以执行本文所讨论的设备间通信。此外,还将理解的是,下面的描述是指存储器控制器110将DBI应用于发送到存储器设备120的信号的实施例。在一个实施例中,存储器设备120可以对发送到存储器控制器110的信号应用DBI。因此,***100是一个示例,其可以表示两个设备参与设备间通信的多个配置中的任何一个,动态地应用DBI以实现通信中的1和0的目标比率。
存储器控制器110的接口112表示存储器控制器处的硬件连接,使其能够与外部设备进行接口。类似地,存储器设备120的接口122表示存储器设备处的硬件连接,使其能够与外部设备进行接口。在***100中,接口112和122使得存储器设备110能够通过信号线130与存储器设备120通信。信号线130表示互连两个设备的迹线或导线。接口112和122可以包括与信号线130接口的引脚、球状物、焊盘和/或其他硬件。接口112和122由分别在存储器控制器110和存储器设备120上操作的逻辑控制。该逻辑可以包括硬件、软件(即固件)或组合。该逻辑控制信号线的定时和驱动,以跨接口发送和接收数字信号(参考接口112、接口122和信号线130的全部)。
应当理解,接口112和122还可以包括未具体示出的其它信号线组。存储器控制器110和存储器设备120之间的连接可以包括不是可以被反转的信号线组的一部分的一个或多个信号线。在一个实施例中,信号线130包括信号线的单个总线(例如,数据总线)。在一个实施例中,信号线130跨越信号线的多个总线。在一个实施例中,信号线130包括总线和在一起全部被反转的一个或多个其它信号线。有多种组合,这将取决于两个设备之间互连的架构和***配置。因此,***100中描绘的仅仅是为了说明,而不是限制。
作为操作流程的一个实施例,考虑存储器控制器110从主机或主机处理器接收一个或多个请求。主机处理器可以包括中央处理单元,其根据主机操作***和/或在***100是其一部分的计算设备上执行的应用来执行指令。主机处理器可以包括图形处理单元或其他控制器,其生成对来自存储器设备120的数据的请求。存储器控制器110包括输入缓冲器114或其它缓冲器或高速缓存机制,以接收对来自存储器设备120的数据的请求。输入缓冲器114表示可以在存储器控制器110中使用的任何类型的缓冲器,并且将不在本文中具体描述。输入缓冲器114使存储器控制器110能够接收来自主机的请求,并且适当地使请求出队以发送到存储器设备120。
在一个实施例中,存储器控制器110包括DBI 116,其表示使存储器控制器110能够实现动态总线反转的硬件和/或软件逻辑。DBI 116至少包括用于确定何时反转通过信号线130发送的信号的控制逻辑、触发信号线的反转的控制逻辑、以及当信号线130被反转时触发DBI信号132的控制机构。在一个实施例中,DBI 116可被编程有1和0的不同的目标比率。例如,在一种情况下,DBI 116可以具有50%的目标比率或1和0的一比一比率。这样的比率对于在高速通信的情况下实现平衡的DC偏移和降低高频噪声是有用的。在一种情况下,DBI可以具有不同的比率,其可以被描述为百分比(意味着一个逻辑状态(1或0)与信号中的总位数的百分比)或一些其他表示,一比一、二对一、四对五或其他。应当理解,在0以外的DC偏移在某些共模场景中是有用的,其可以用不同于50%的目标比率来实现。
在一个实施例中,DBI 116是用DBI计算器修改的常规DBI引擎,DBI计算器尝试实现0与1或1和0的特定比率。在一个实施例中,DBI 116的控制逻辑可以实现尝试实现1和0的编程或指定比率(可以被称为高频平衡)的组合,以及实现常规DBI,其通常试图降低功耗。因此,应用DBI来实现1和0的目标比率可以实现高频平衡,并且应用传统的DBI可以实现功率控制。如本文所述,DBI 116可以仅实现高频平衡,或除了实现功率控制之外实现高频平衡。两种机构的应用可以根据本文所述的任何实施例。
在一个实施例中,存储器控制器110包括累加器118,以保存通过信号线130发送的1和0的运行净计数。应当理解,可以使用另一个缓冲机制来代替累加器电路。累加器电路可以提供累加信息,以允许具有极小逻辑要求的运行净剩。在一个实施例中,累加器118是DBI116的一部分(例如专用内部电路)。在一个实施例中,累加器118表示用于保存信号线130的1和0的运行总和的多个累加器设备。在一个实施例中,累加器118保持通过接口传送的1和0的运行净符号差。
在一个实施例中,接口112和122可以包括分别被控制用于反转的多个信号线组。因此,例如,除了控制组130中的信号线的反转的信号线130和相关联的DBI信号132之外,还可以存在附加信号线组,附加信号线组的每个具有相关联的DBI信号。在这种配置中,DBI116和/或累加器118可以被复制用于其他信号线组和相关联的DBI信号。在一个实施例中,DBI116可以包括寄存器或其他存储设备用于存储一组信号线的DBI信息,并且可以重新使用其他信号线组的DBI逻辑116和/或累加器118。在一个实施例中,无论是使用复制的DBI逻辑116还是使用信号DBI引擎,对多组信号线进行分时复用控制,可以将不同的目标比率应用于两个设备之间的同一接口上的不同信号线。
DBI 116可以识别要发送的信号中的1和0的数量。在一个实施例中,DBI 116识别信号的非反转版本(例如,“非反转信号”)和信号的反转版本(例如,“反转信号”)中的1和0的数量。DBI 116可以计算在反转信号和非反转信号中的1和0的数量之间的差异(在执行数学逻辑计算时通常称为“误差”)。在一个实施例中,DBI 116基于这样的计算来确定是否非反转信号或反转信号(基于1和0的数量)将计算的平均比率或运行总和(例如,如上所述的运行净剩)移动得更接近目标比率。计算的平均比率参照累加器118或替代逻辑来确定。在一个实施例中,DBI 116将计算的非反转信号和反转信号的值进行比较,以确定哪个信号将计算的平均值移动得更接近目标值。然后,DBI 116可以触发将计算的平均比率移动得更接近目标比率的信号的传输。当反转信号将计算的平均比率移动得更接近目标比率时,DBI116将通过DBI信号132触发DBI指示。
在一个实施例中,存储器设备120包括ODT(片内端子)124和解码器126。解码器126表示在存储器设备处的接收逻辑,其对由存储器控制器110通过信号线130发送的信号进行采样或读取。解码器126解码或解释在信号线130上表示的信号,以基于信号线130的特定信号中的命令和/或地址信息来确定应该执行何种操作。因此,解码器126可以采样DBI信号132的逻辑状态(其可以通过高或低逻辑电平指示反转,取决于实现方式),并且确定是否正确地读取所接收到的信号线130上的信号的值,或者是否在解码之前或作为解码的部分反转接收的信号。
ODT 124表示存储器设备120处的这样的逻辑:端接信号线130,以避免反射并改进经由信号线130接收的信号的信号质量。ODT被很好地理解,本文将不详细讨论。在一个实施例中,ODT 124以VTT或中轨端子处端接信号线路130中的一个或多个。中轨端子将被理解为在高压轨(例如,VDD或针对通信设定的值)和低压轨(例如VSS)之间。更具体地说,中轨端子可以在输出高电压和输出低电压之间的中间(分别可以是除了VDD和VSS之外)。在一个实施例中,VTT可以被理解为使输出驱动器的上拉腿和下拉腿中的电流相等的电压点。应用VTT端接可以改进传统上存在于高速连接中的功率消耗和某些信令问题(例如,改进必须足够努力驱动信号线以实现从一个轨到另一个轨的干净信号的电容效应)。VTT可以向独立于端子强度的接收器提供良好控制的、固定参考电压或Vref电平。然而,VTT端接可以引入可以由DBI加剧的DC平衡问题。如本文所述,DBI 116可以实现将DC偏移平衡到VTT端接的等效值的1和0的比率。这种平衡可以允许更简单和更便宜的调节器电路设计。
图2是实现动态总线反转以在I/O接口上维持期望的DC偏移的***的实施例的框图。***200表示可以在本文描述的任何设备间通信***(例如,在图1的***100中)中实现的存储器设备。在一个实施例中,存储器设备210表示接收和解码受制于DBI的应用的信号的设备。在一个实施例中,存储器设备210表示生成并发送受制于DBI的应用的信号的设备。
存储器设备210包括I/O 220,其表示存储器设备210可以通过其发送和/或接收信号的I/O接口。存储器设备210经由信号线230连接到诸如存储器控制器的外部设备。信号线230表示受制于DBI的应用的一组信号线。单独的DBI指示信号在***200中未示出,并且可以被理解为是信号线230的一部分。信号线230具有相关联的DBI指示信号以指示信号何时被反转。
存储器设备210包括DBI逻辑240。在一个实施例中,DBI逻辑240类似于***100的DBI逻辑116,并且可以根据参考DBI 116所描述的任何内容起作用。因此,在一个实施例中,存储器设备120将DBI实现为发送设备。例如,当存储器设备210从相关联的存储器控制器(未具体示出)接收到命令时,存储器检索数据并将数据发送到请求控制器。在一个实施例中,DBI 240表示使存储器设备210能够基于DBI指示信号对信号线230进行解码的逻辑。因此,存储器设备210可以正确地访问存储器元件(未具体示出)并执行存储器控制器发送的命令。
在一个实施例中,存储器设备210包括ODT 250,其使存储器能够实现信号线230的动态端接。在一个实施例中,ODT 250端接信号线230至VTT。如与I/O 220相关联的的I/O眼222所示,VTT是VDD和VSS之间的电压电平,其中VDD和VSS表示通过信号线230交换(发送或接收)的信号的高电压轨,并且不一定等同于***VDD和***VSS。在一个实施例中,VTT位于VDD和VSS之间的中间位置。然而,应该理解的是,VTT可以位于VDD和VSS之间的不在它们中间的某处。
在一个具体应用中,目前正在进行讨论以确定如何在提高LPDDR5和/或DDR5技术的数据速率的同时提供更高的功率效率。作为在存储器子***中提高功率效率的一种可能性,已经讨论了存储器设备上基于VTT的片上端接。基于VTT的端接可以将端接功率降低双倍,并且使功率更加独立于端接强度。
然而,应当理解,ODT端接于由调节器270和电源280表示的电源和/或调节器。电源280被示出在存储器设备210的外部,指示在存储器设备外部产生电力并且电力被提供给存储器设备210。在一个实施例中,调节器270在存储器设备210内。因此,调节器270从电源280接收电力供给并产生用于I/O 220的操作的参考和/或轨电压。在现代主机***(例如,处理器***,其通常包括与处理器一起集成在公共芯片上的存储器控制器)中使用的调节器可以是高带宽、非线性调节器。这种调节器可能需要高速晶体管并且可以具有重要的设计和制造约束。通常不可能通过用于产生存储器设备210的工艺和技术来达到这种调节器的要求。通过控制通过信号线230的通信的DC平衡,可以减小基于VTT的dl/dt,从而允许更简单、较低带宽的调节器设计。
因此,在一个实施例中,DBI 240在相关联的存储器控制器的末端或在存储器设备210中或两者表示实现1和0的目标比率的DBI的应用。达到给定容差内的目标比率可以提供所需的DC平衡以输出数据。可以理解,DBI 240将尝试达到目标比率,但是不断准确地维持目标比率可能不切实际。因此,连同目标或期望的比率一起,***200可以允许距目标比率的容差或接受的偏差。DBI 240将DBI应用于待通过I/O 220输出的信号以维持期望的DC平衡,这样可以平衡进入和离开VTT节点(或被I/O端接的节点)的期望净电流。
如上所述,DBI 240可以跟踪通过I/O 220发送的1和/或0的净数。DBI240可以计算DBI位或DBI指示信号以将净数保存为尽可能接近目标。在一个实施例中,目标为零。因此,随着调节器270产生VTT电压或提供VTT节点,VTT电压调节可以提供具有比实现期望性能所需的更低带宽和电流的DC电源值。在这种实现中,调节器270可以以相对适量的局部开封(噪声滤波电容耦合)来减小VTT节点上的噪声。
存储器设备210包括I/O驱动器260,其表示用于驱动I/O 220上的输出或通过信号线230发送的控制逻辑。I/O驱动器260包括产生信号的所需位值或逻辑值并驱动I/O以在I/O接口的接收端产生所需的逻辑值的电路。I/O驱动器260和ODT 250一起工作以通过I/O220发送和接收数据。
图3是动态总线反转逻辑的实施例的框图。电路300表示用于实现1和0的所需比率的DBI引擎的一个实施例。在一个实施例中,示出了电路300,其被配置为实现一比一或50%的比率。然而,可以修改电路300以实现不同的比率。
电路300接收数据310。数据310表示要在与电路300的逻辑相关联的一组信号线上输出的数据。在一个实施例中,数据310包括2N位的数据。该数量可以是不同的,并且不一定是二进制数,但是当使用二进制数时,逻辑可能更简单。在一个实施例中,在信号线的实际数量是非二进制数的程度上,电路300可以对数据310进行操作,就好像有2N个信号线一样,并且用适当的逻辑值(例如,用0)对未使用的信号线进行位填充。在一个实施例中,电路300根据数据310产生逐位和320,逐位和320可以是具有N+1位的数字。位和322表示逐位和逻辑320的输出。
在一个实施例中,电路300在加法器340和加法器350处接收位和322。加法器340计算净值或运行计算的平均值减去位和(净值332-位和322)加2N-1的值。在一个实施例中,加法器340计算反转信号(被反转的信号)的净差。加法器350计算净值加上位和(净值332+位和322)减2N-1的值。在一个实施例中,加法器350计算与非反转信号的净值的差。添加或减去2N-1等价于将值归一化为中间轨,例如,在使用VTT的配置中,逻辑尝试将运行净值保存尽可能接近VTT的“零”。应当理解,加法器340和350可以是可编程的并且被配置为根据实现电路300的***的配置来应用不同的归一化值,或者根本不应用。
计数DBI 342表示与反转信号的目标(例如,50%或某个其他目标)的差异或误差的带符号计数。计数无DBI 352表示与非反转信号的目标的差异或误差的带符号计数。在一个实施例中,电路300确定计数342和计数352是否表示更靠近期望目标的值。在一个实施例中,绝对值逻辑362在带符号计数352上产生绝对值。在一个实施例中,绝对值逻辑364在带符号计数354上产生绝对值。在一个实施例中,逻辑370可以确定计数352的绝对值是否大于计数342的绝对值。确定的输出可以用于在逻辑380处计算DBI数据382。输出还可以充当DBI信号372,DBI信号372是由电路300产生的DBI指示。
在一个实施例中,逻辑370的输出还可以用作多路复用电路的选择控制,该多路复用电路将所选计数添与净计数相加。因此,如果要使用DBI,则多路复用器可以将已计算的运行平均加上带符号计数342,并且如果DBI不用于信号,则将带符号计数352与计算的运行平均相加。多路复用器将选择的计数馈送到残差计数330或等效的计数器块。剩余计数330维持运行净值332,其在电路300中的计算中使用以确定是否在后续事务中使用DBI。因此,以前的净值用于进行计算,然后将计算的计数与净值相加以进行后续计算。
图4是行为模拟的实施例的表示,其将使用动态总线反转来保持1和0的目标比率的***的输出噪声与不使用动态总线反转来保持1和0的目标比率的***的输出噪声相比较。图400示出了两种情况下的存储器接口的模拟结果:在第一种情况下,在接口上没有应用DBI,在第二种情况下,仅应用DBI来实现1和0的目标比率。不模拟DBI的混合应用的用例,其中DBI至少在一些时间上被应用以实现1和0的目标比率,以及至少一些时间来减少特定逻辑电平的传输或减少逻辑转换。
在图400中,中间灰色区域表示用于设备间接口的VTT调节器的行为。具体来说,随着时间的推移,电压尖峰表示由加扰总线测试产生的不同随机数据模式的输出噪声。将观察到,情况410在调节器输出上具有比情况420高得多的噪声。应当理解,为了比较的目的,情况420将重叠在图400中的情况420上。因此,情况410的中间由于被情况420遮蔽而不可见。在情况420中,应用DBI以实现1和0的目标比率。具体来说,情况420试图实现1和0的一比一比率。将观察到,标称DC电压电平约为550mV,高频噪声相对较安静。观察在情况420下,DBI的应用实现1和0的一比一的比率导致大约9mV的均方根(RMS)噪声值。在情况410中,没有DBI被应用于通过接口的传输。高频噪声贡献由较暗的噪声尖峰表示。应当理解,图400表示覆盖在情况410上的情况420。在情况410中,标称DC电压电平仍为550mV,但是噪声的RMS为32mV,或比情况420下多三倍。
在图400所示的模拟中,针对情况410(无DBI)模拟的调节器是响应时间<2ns的高带宽调节器。对于情况420(DBI实现1和0之间的净零差),调节器只需要提供DC值,并且需要有效的零带宽。除了调节器的不同之处,情况410和420的模拟使用在驱动器数量、电流和开封方面相同的模型。因此,情况420相对于情况410将噪声降低超过3倍,并且以明显更简单的调节器设计来实现。
如前所述,1和0的目标比率是可编程的。这种可编程性对于不同的用例场景是有用的。例如,在LPDDR4的情况下,DRAM或存储器设备发送器将共模限制在大约200mV以下。在这种情况下,可以对DBI引擎进行编程以实现达到所需共模DC偏移的1和0的比率。在一个实施例中,DBI计算引擎可以包括用于将1和0的任意比率的编程为目标的偏移量。因此,虽然通常可以以50%的比率实现VTT端接的最大功率效率,但是,可能存在对于目标比率期望是其它比率的许多考虑和许多实现。
图5是用于实现可编程动态总线反转的过程的实施例的流程图。过程500描述了应用DBI来实现1和0的比率。在一个实施例中,控制实体配置DBI引擎502的1和0的目标比率。控制实体可以是可以基于设备内的操作条件动态地改变的主机***。控制实体可以是基于被测***的性能来配置目标比率的测试***。控制实体可以是基于其中放置与DBI引擎相关联的设备间通信接口的***的架构和设置来对设备编程用于操作的配置***。
在一个实施例中,可以参考共享设备间通信接口的两个设备的发送设备的操作来理解过程500。在一个实施例中,可以参考存储器控制器设备向存储器设备或DRAM发送命令的操作来理解过程500。在一个实施例中,存储器设备可以采用与向存储器控制器发送数据相似或相同的流程。在一个实施例中,非存储器I/O接口可以以类似的方式操作,如本领域技术人员将理解的。因此,该示例是非限制性的。在一个实施例中,存储器控制器可以从主机504接收存储器访问请求。由主机执行的操作***或应用基于其执行生成对数据的请求。存储器控制器可以产生命令信号来实现数据访问请求506。
在一个实施例中,存储器控制器包括至少部分地取决于实现1和0的目标比率来执行DBI计算的DBI引擎或DBI逻辑。因此,DBI逻辑可以识别用于非反转信号和信号的反转版本508的1和/或0的数量。参考的信号是由存储器控制器输出到存储器设备来指示请求的信号或位组合。信号是指通过与DBI逻辑和DBI指示信号相关联的一组信号线发送的所有位。
在一个实施例中,DBI逻辑基于非反转信号510中的1和0的比率来计算的平均比率。在一个实施例中,DBI逻辑基于反转信号512中的1和0的比率来计算的平均比率。在一个实施例中,DBI逻辑确定非反转信号或反转信号中的比率是否提供最接近目标比率514的计算的平均值。提供最接近目标比率的计算的平均值可包括将计算的平均比率移动得更接近目标比率和/或维持计算的平均值更接近目标比率。
在一个实施例中,确定非反转或反转信号的比率是否提供更接近目标比率的计算的平均比率包括在累加器中保存1和0的运行差。在一个实施例中,运行差是带符号的值。在一个实施例中,目标比率是一比一的比率。在一个实施例中,目标比率不是一比一。在一个实施例中,接收设备采用VTT端接,并且目标比率被配置为实现相对于VTT端接的DC平衡。
在一个实施例中,如果非反转信号中的1和0的数量或比率提供了更接近于目标比率的计算比率,则在一个实施例中,516非反转分支,DBI逻辑可以产生负DBI指示。负DBI指示可以简单地不是DBI指示。负DBI指示可以是指示DBI不应用于信号线组的逻辑值输出。发送设备然后发送非反转信号而不将信号518反转。在一个实施例中,如果非反转信号中的1和0的数量或比率提供了接近目标比率的计算比率,则在一个实施例中,516反转分支,DBI逻辑产生肯定的反转指示符520。这种肯定的反转指示符向接收设备发送相关的信号线组已被反转的信号。然后,发送设备反转信号并将反转信号发送到接收设备522。
图6是可以实现可编程的动态总线反转的计算***的实施例的框图。***600表示根据本文描述的任何实施例的计算设备,并且可以是膝上型计算机、台式计算机、服务器、游戏或娱乐控制***、扫描仪、复印机、打印机、路由或交换设备或其他电子设备。***600包括处理器620,其提供用于***600的指令的处理、操作管理和执行。处理器620可以包括任何类型的微处理器、中央处理单元(CPU)、处理核或其他处理硬件,以提供用于***600的处理。处理器620控制***600的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)等,或这些设备的组合。
存储器子***630表示***600的主存储器,并且提供用于处理器620执行的代码的临时存储,或者提供用于执行例程的数据值的临时存储。存储器子***630可以包括一个或多个存储器设备,诸如只读存储器(ROM)、闪速存储器、一个或多个不同种类的随机存取存储器(RAM)或其他存储器设备,或这些设备的组合。存储器子***630存储并托管操作***(OS)636以及其它以提供用于在***600中执行指令的软件平台。另外,存储器子***630中存储并执行其他指令638以提供***600的逻辑和处理。OS636和指令638由处理器620执行。存储器子***630包括其中存储数据、指令、程序或其它项目的存储器设备632。在一个实施例中,存储器子***包括存储器控制器634,存储器控制器634是用于生成命令并向存储器设备632发出命令的存储器控制器。应当理解,存储器控制器634可以是处理器620的物理部分。
处理器620和存储器子***630耦合到总线/总线***610。总线610是代表通过适当的桥接器、适配器和/或控制器连接的任何一个或多个单独的物理总线、通信线路/接口和/或点到点连接的抽象。因此,总线610可以包括例如***总线、***组件互连(PCI)总线、超传输或工业标准架构(ISA)总线、小型计算机***接口(SCSI)总线、通用串行总线(USB)或电气和电子工程师协会(IEEE)标准1394总线(通常称为“火线”)中的一种或多种。总线610的总线也可以对应于网络接口650中的接口。
***600还包括耦合到总线610的一个或多个输入/输出(I/O)接口640、网络接口650、一个或多个内部大容量存储设备660和***部件接口670。I/O接口640可以包括用户与***600交互的一个或多个接口组件(例如,视频、音频和/或字母数字接口)。网络接口650为***600提供通过一个或多个网络与远程设备(例如,服务器、其他计算设备)进行通信的能力。网络接口650可以包括以太网适配器、无线互连组件、USB(通用串行总线)或其他有线或无线标准或专有接口。
存储660可以是或包括用于以非易失性方式存储大量数据的任何常规介质,例如一个或多个磁性、固态或基于光的盘或组合。存储660将代码或指令和数据662保持在持续状态(即,即使***600的电力中断,该值也被保留)。尽管存储器630是执行或操作存储器以向处理器620提供指令,但是存储660可以被统称为“存储器”。而存储660是非易失性的,存储器630可以包括易失性存储器(即,如果***600的电力中断,则数据的值或状态是不确定的)。
***部件接口670可以包括上面没有具体提到的任何硬件接口。***部件通常是指相关地连接到***600的设备。相关连接是***600提供操作在其上执行且用户与之交互的软件和/或硬件平台的连接。
在一个实施例中,存储器子***630和/或任何其他子***(例如,处理器620、I/O接口640和/或其它子***)包括受制于DBI的应用的设备间I/O接口。DBI逻辑可以是可编程的,如由可编程DBI 680表示的,以在I/O接口的传输中实现1和0的期望比率。这样的可编程DBI包括用于存储先前传输的历史和可编程目标比率的机制(例如,用于存储计算的平均比率的累加器或寄存器)。在确定是否将DBI应用于要发送的信号时,DBI逻辑或DBI计算考虑目标比率和先前计算的比率。如果非反转信号提供接近目标比率的计算比率,则发送设备发送非反转信号。如果反转信号提供接近目标比率的计算比率,则发送设备将DBI应用于信号并发送反转信号。
图7是其中可以实现可编程动态总线反转的移动设备的实施例的框图。设备700表示诸如计算平板电脑、移动电话或智能电话、有无线能力的电子阅读器、可穿戴计算设备或其他移动设备的移动计算设备。将会理解,一般示出某些部件,而不是在设备700中示出这种设备的所有组件。
设备700包括执行设备700的主要处理操作的处理器710。处理器710可以包括一个或多个物理设备,例如微处理器、应用处理器、微控制器、可编程逻辑器件或其他处理模块。由处理器710执行的处理操作包括在其上执行应用和/或设备功能的操作平台或操作***的执行。处理操作包括与人类用户或与其他设备的I/O(输入/输出)有关的操作、与电力管理有关的操作、和/或与将设备700连接到另一设备相关的操作。处理操作还可以包括与音频I/O和/或显示I/O相关的操作。
在一个实施例中,设备700包括音频子***720,其表示与向计算设备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解码器)组件。音频功能可以包括扬声器和/或耳机输出以及麦克风输入。用于这种功能的设备可以集成到设备700中,或者连接到设备700。在一个实施例中,用户通过提供由处理器710接收和处理的音频命令来与设备700交互。
显示子***730表示提供视觉和/或触觉显示以便用户与计算设备交互的硬件(例如,显示设备)和软件(例如,驱动器)组件。显示子***730包括显示接口732,其包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示接口732包括与处理器710分开的执行与显示有关的至少一些处理的逻辑。在一个实施例中,显示子***730包括向用户提供输出和输入的触摸屏设备。在一个实施例中,显示子***730包括向用户提供输出的高清(HD)显示器。高分辨率可以指具有大约100PPI(每英寸像素)或更大的像素密度的显示器,并且可以包括诸如全HD(例如,1080p),视网膜显示器、4K(超高清或UHD)或其他的格式。
I/O控制器740表示与同用户进行交互相关的硬件设备和软件组件。I/O控制器740可以操作以管理作为音频子***720和/或显示子***730的一部分的硬件。另外,I/O控制器740示出了连接到设备700的附加设备的连接点,用户可以通过该附加设备与***交互。例如,可以附接到设备700的设备可以包括麦克风设备、扬声器或立体声***、视频***或其他显示设备、键盘或键盘设备或用于特定应用的其他I/O设备,例如读卡器或其他设备。
如上所述,I/O控制器740可以与音频子***720和/或显示子***730进行交互。例如,通过麦克风或其他音频设备的输入可以提供用于设备700的一个或多个应用或功能的输入或命令。另外,可以提供音频输出,而不是显示输出或作为显示输出的附加。在另一示例中,如果显示子***包括触摸屏,则显示设备还充当输入设备,其可以至少部分地由I/O控制器740管理。还可以在设备700上提供额外的按钮或开关以提供由I/O控制器740管理的I/O功能。
在一个实施例中,I/O控制器740管理诸如加速度计、照相机、光传感器或其他环境传感器、陀螺仪、全球定位***(GPS)或可包括在设备700中的其他硬件的设备。输入可以作为直接用户交互的一部分,以及为***提供环境输入以影响其操作(例如,对噪声进行滤波、调整用于亮度检测的显示、应用相机的闪光灯,或其他特征)。在一个实施例中,设备700包括管理电池电量使用、电池充电以及与节电操作相关的功能的电源管理750。
存储器子***760包括用于存储设备700中的信息的存储器设备762。存储器子***760可以包括非易失性(如果存储器设备的电力被中断,则状态不改变)和/或易失性(如果存储器设备的电力中断则状态是不确定的)的存储器设备。存储器760可以存储与***700的应用和功能的执行相关的应用数据、用户数据、音乐、照片、文档或其他数据以及***数据(无论是长期的还是临时的)。在一个实施例中,存储器子***760包括存储器控制器764(其也可以被认为是***700的控制的一部分,并且可能被认为是处理器710的一部分)。存储器控制器764包括用于生成命令并向存储器设备762发出命令的调度器。
连接770包括硬件设备(例如,无线和/或有线连接器和通信硬件)和软件组件(例如,驱动程序、协议栈),以使设备700能够与外部设备进行通信。外部设备可以是诸如其他计算设备、无线接入点或基站的单独的设备,以及诸如耳机、打印机或其他设备的***部件。
连接770可以包括多种不同类型的连接。为了概括,设备700被示出为具有蜂窝连接772和无线连接774。蜂窝连接772一般地指无线载波提供的蜂窝网络连接,例如通过GSM(全球移动通信***)或变体或衍生物、CDMA(码分多址访问)或变体或衍生物、TDM(时分复用)或变体或衍生物、LTE(长期演进-也称为“4G”)或其他蜂窝服务标准所提供的。无线连接774指的是不是蜂窝的无线连接,并且可以包括个域网络(例如蓝牙)、局域网(例如WiFi)和/或广域网(例如WiMax)或其他无线通信。无线通信是指通过使用调制电磁辐射通过非固体介质传输数据。有线通信通过固体通信介质发生。
***部件连接780包括硬件接口和连接器以及用于进行***部件连接的软件组件(例如,驱动程序、协议栈)。应当理解,设备700可以是至其他计算设备(“至”782)的***设备,以及具有连接到其的***设备(“从”784))。设备700通常具有连接到其他计算设备的“对接”连接器,用于例如管理(例如,下载和/或上传、改变、同步)设备700上的内容。另外,对接连接器可以允许设备700连接到允许设备700控制例如到视听或其他***的内容输出的某些***部件。
除了专有对接连接器或其他专有连接硬件之外,设备700可以通过公共或基于标准的连接器来实现***部件连接780。通用类型可以包括通用串行总线(USB)连接器(可以包括多个不同硬件接口中的任意一个)、包括迷你显示端口(MiniDisplayPort)(MDP)的显示端口(DisplayPort)、高清多媒体接口(HDMI)、火线(Firewire)或其他类型。
在一个实施例中,存储器子***760和/或任何其他子***(例如,处理器710、显示子***730、***部件连接780和/或其它子***)包括受制于DBI的应用的设备间I/O接口。DBI逻辑可以由可编程DBI 766表示,以在I/O接口的传输中实现1和0的期望比率。这样的可编程DBI包括用于存储先前传输的历史和可编程目标比率的机制(例如,用于存储计算的平均比率的累加器或寄存器)。在确定是否将DBI应用于要发送的信号时,DBI逻辑或DBI计算考虑目标比率和先前计算的比率。如果非反转信号提供更接近目标比率的计算比率,则发送设备发送非反转信号。如果反转信号提供更接近目标比率的计算比率,则发送设备将DBI应用于信号并发送反转信号。
在一个方面,一种用于设备间信号传输的方法包括:接收要通过输入/输出(I/O)接口传输的信号;识别信号的非反转版本(“非反转信号”)中的1和0的比率以及信号的反转版本(“反转信号”)中的1和0的比率;确定非反转信号中的1和0的比率或反转信号中的1和0的比率是否提供了更接近与1或0的目标比率的1和0的计算的平均比率;并且当非反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时,通过I/O接口发送非反转信号;或者当反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时,通过I/O接口发送反转信号,包括产生反转指示信号。
在一个实施例中,确定还包括在累加器中保存1和0的运行净符号差。在一个实施例中,目标比率是一比一的,并且其中所述确定包括确定所述非反转信号或所述反转信号是否提供更接近0的净差的计算的平均比率。在一个实施例中,目标比率不是一比一,并且其中所述确定包括确定所述非反转信号还是所述反转信号提供更接近净差的计算的平均比率以达到所述目标比率。在一个实施例中,保存运行净符号差包括为不同等级保存单独的运行网络净符号差。在一个实施例中,保存运行净符号差包括为不同的设备保存单独的运行净符号差。在一个实施例中,I/O接口具有Vtt端接,其中I/O接口的信号线端接于上电压电源轨和下电压电源轨之间的电压。在一个实施例中,还包括计算目标比率以实现跨I/O接口的DC(直流)平衡的目标电平。在一个实施例中,还包括将确定在非反转信号中的1和0的比率或反转信号中的1和0的比率是否提供更接近目标比率的1和0的计算的平均比率选择性地应用于动态总线反转实现。在一个实施例中,所述选择性应用还包括:在确定所述非反转信号或所述反转信号是否提供更接近目标比率的计算的平均比率以及发送提供更接近目标比率的计算的平均比率的信号之间选择性地切换;以及实现动态总线反转,以减少输出信号上的多个切换的数量或减少发送的1的数量。在一个实施例中,选择性切换还包括:应用动态总线反转以提供更接近于目标比率的计算的平均比率,除非所述非反转、反转信号中的1和0的比率在预定范围内;否则,应用动态总线反转来减少输出信号上的切换次数或减少发送的1的数量。在一个实施例中,接收要发送的信号包括接收一系列连续输出事务的多个信号之一;并且其中识别1和0的比率包括识别所述一系列连续输出事务中的比率;并且其中确定所述非反转信号或反转信号中的所述1和0的比率是否提供更接近所述目标比率的所述计算的平均比率,包括确定所述一个接收信号中的1和0的比率是否提供更接近连续输出事务系列的目标比率的所述计算的平均比率。
在一个方面,包括耦合用于通信的发送设备和接收设备的电路包括:通过输入/输出(I/O)接口将发送设备耦合到接收设备的硬件连接器;用于接收要通过I/O接口发送到接收设备的信号的缓冲器;以及用于以下操作的逻辑:识别信号的非反转版本(“非反转信号”)中的1和0的比率以及信号的反转版本(“反转信号”)中的1和0的比率;确定非反转信号中的1和0的比率或者反转信号中的1和0的比率是否提供了更接近1或0的目标比率的1和0的计算的平均比率;并且当非反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时,通过I/O接口发送非反转信号;或者当反转信号中的1和0的比率提供接近目标比率的计算的平均比率时,通过I/O接口发射反转信号,包括产生反转指示信号。
在一个实施例中,所述电路还包括:累加器,用于维持经由所述接口发送的1和0的运行净符号差。在一个实施例中,确定逻辑还包括用于将运行净符号差与在非反转信号和反转信号中的1和0的差进行比较的逻辑。在一个实施例中,目标比率是一比一的,并且其中用于确定的逻辑包括用于计算所述非反转信号或所述反转信号是否提供更接近零的净差的计算的平均比率。在一个实施例中,目标比率不是一比一,并且其中用于确定的逻辑包括用于计算非反转信号或反转信号是否提供更接近净差的计算的平均比率以达到目标比率的逻辑。在一个实施例中,累加器包括多个累加器中的一个,每个累加器中的一个用于保存不同等级的运行净符号差。在一个实施例中,累加器包括多个累加器中的一个,每个累加器中的一个用于保存不同的设备的运行净符号差。在一个实施例中,I/O接口具有Vtt端接,其中I/O接口的信号线端接于上电压电源轨和下电压电源轨之间的电压。在一个实施例中,还包括用于计算目标比率以实现跨I/O接口的DC(直流)平衡的目标电平的逻辑。在一个实施例中,逻辑包括动态总线反转逻辑。在一个实施例中,逻辑选择性地在确定非反转信号或反转信号是否提供更接近目标比率的1和0的计算的平均比率与发送提供更接近目标比率的计算的平均比率的信号之间进行切换;并实现动态总线反转,以减少输出信号上的切换数量或减少发送的1的数量。在一个实施例中,逻辑是进一步应用动态总线反转以提供更接近目标比率的计算的平均比率,除非非反转和反转信号中的1和0的比率在预定范围内;否则,应用动态总线反转来减少输出信号上的切换数量或减少发送的1的数量。在一个实施例中,该信号包括一系列连续输出事务的多个信号之一;并且其中所述逻辑用于识别所述一系列连续输出事务的比率;并且其中所述逻辑是针对所述一系列连续输出事务确定哪个比率提供更接近所述目标比率的计算的平均比率。
在一个方面,一种具有存储器子***的电子设备,包括:存储器设备;耦合到存储器设备的输入/输出(I/O)接口;以及存储器控制器,其通过所述I/O接口耦合到所述存储器设备,所述存储器控制器包括缓冲器,用于接收要通过所述I/O接口发送到所述存储器设备的信号;以及用于以下操作的逻辑:识别信号的非反转版本(“非反转信号”)中的1和0的比率以及信号的反转版本(“反转信号”)中的1和0的比率;确定非反转信号中的1和0的比率或者反转信号中的1和0的比率是否提供了更接近1或0的目标比率的1和0的计算的平均比率;并且当非反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时,通过I/O接口发送非反转信号;或者当反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时,通过I/O接口发送反转信号,包括产生反转指示信号;以及触摸屏显示器,其被耦合以基于从所述存储器设备访问的数据来生成显示。关于包括耦合用于通信的发送设备和接收设备的电路所描述的任何实施例也可以应用于该电子设备。
一方面,一种制品包括其上存储有内容的计算机可读存储介质,其在被访问时使得计算设备执行用于设备间信号传输的操作,包括:接收要通过输入/输出(I/O)接口发送的信号;识别信号的非反转版本(“非反转信号”)中的1和0的比率以及信号的反转版本(“反转信号”)中的1和0的比率;确定非反转信号中的1和0的比率或反转信号中的1和0的比率是否提供了更接近1或0的目标比率的1和0的计算的平均比率;并且当非反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时,通过I/O接口发送非反转信号;或者当反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时,通过I/O接口发送反转信号,包括产生反转指示信号。关于设备间信号传输的方法所描述的任何实施例也可以应用于该制品。
在一个方面,一种用于设备间信号传输的装置,包括:用于接收要通过输入/输出(I/O)接口发送的信号的单元;用于识别信号的非反转版本(“非反转信号”)中的1和0的比率以及信号的反转版本(“反转信号”)中的1和0的比率的单元;用于确定非反转信号中的1和0的比率或反转信号中的1和0的比率是否提供更接近于1或0的目标比率的1和0的计算的平均比率的单元;以及用于当非反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时通过I/O接口发送非反转信号;或者当反转信号中的1和0的比率提供更接近目标比率的计算的平均比率时,通过I/O接口发送反转信号,包括产生反转指示信号的单元。关于设备间信号传输的方法所描述的任何实施例也可应用于该装置。
本文所示的流程图提供了各种处理动作的序列的示例。流程图可以指示要由软件或固件例程执行的操作以及物理操作。在一个实施例中,流程图可以说明可以在硬件和/或软件中实现的有限状态机(FSM)的状态。尽管以特定的序列或顺序示出,但除非另有说明,可以修改动作的顺序。因此,所示出的实施例仅应被理解为示例,并且可以以不同的顺序执行该过程,并且可以并行地执行一些动作。另外,在各种实施例中可以省略一个或多个动作;因此,不是在每个实施例中都需要所有动作。其他工艺流程是可能的。
在本文中描述的各种操作或功能的程度上,它们可被描述或定义为软件代码、指令、配置和/或数据。内容可以是直接可执行程序(“对象”或“可执行程序”形式)、源代码或差异代码(“delta”或“补丁(patch)”代码)。本文描述的实施例的软件内容可以经由其上存储有内容的制品提供,或者经由操作通信接口以经由通信接口发送数据的方法来提供。机器可读存储介质可以使机器执行所描述的功能或操作,并且包括以机器(例如,计算设备、电子***等)可访问的形式存储信息的任何机制,诸如可记录/可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质,闪存设备等)。通信接口包括与硬连线、无线、光学等介质中的任何一种接口以与另一设备通信的任何机制,例如,存储器总线接口、处理器总线接口、因特网连接、磁盘控制器等。可以通过提供配置参数和/或发送信号以准备通信接口来提供描述软件内容的数据信号来配置通信接口。可以通过发送到通信接口的一个或多个命令或信号来访问通信接口。
本文描述的各种组件可以是用于执行所描述的操作或功能的单元。本文描述的每个组件包括软件、硬件或其组合。这些组件可以实现为软件模块、硬件模块、专用硬件(例如,专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器,硬连线电路等。
除了本文所描述的内容之外,可以在不脱离本发明的范围的情况下对所公开的实施例和实施方式进行各种修改。因此,这里的说明和示例应当被解释为说明性的而不是限制性的。本发明的范围应仅通过参考下面的权利要求来度量。
Claims (27)
1.一种用于设备间信号传输的方法,包括:
接收要通过输入/输出(I/O)接口发送的信号;
识别所述信号的非反转版本中的1和0的比率以及所述信号的反转版本中的1和0的比率;
确定所述信号的非反转版本中的1和0的比率或所述信号的反转版本中的1和0的比率是否提供了更接近1和0的目标比率的1和0的计算的平均比率;以及
当所述信号的非反转版本中的1和0的比率提供更接近所述目标比率的所述计算的平均比率时,通过所述I/O接口发送所述信号的非反转版本;或者
当所述信号的反转版本中的1和0的比率提供更接近所述目标比率的所述计算的平均比率时,通过所述I/O接口发送所述信号的反转版本,包括产生反转指示信号。
2.根据权利要求1所述的方法,其中,确定还包括在累加器中保存1和0的运行净符号差。
3.根据权利要求2所述的方法,其中,所述目标比率是一比一,并且其中,所述确定包括确定所述信号的非反转版本或所述信号的反转版本是否提供更接近0的净差的计算的平均比率。
4.根据权利要求2所述的方法,其中,所述目标比率不是一比一,并且其中,所述确定包括确定所述信号的非反转版本或所述信号的反转版本是否提供更接近净差的所述计算的平均比率以达到所述目标比率。
5.根据权利要求2所述的方法,其中,保存所述运行净符号差包括针对不同等级或者针对不同设备保存单独的运行净符号差。
6.根据权利要求1所述的方法,其中,所述I/O接口具有Vtt端子,其中,所述I/O接口的信号线被端接于位于上电压电源轨和下电压电源轨之间的电压。
7.根据权利要求1所述的方法,还包括计算所述目标比率以实现所述I/O接口上的DC(直流)平衡的目标水平。
8.根据权利要求1所述的方法,还包括将确定所述信号的非反转版本中的1和0的比率或所述信号的反转版本中的1和0的比率是否提供更接近所述目标比率的1和0的计算的平均比率选择性地应用到动态总线反转实现。
9.根据权利要求8所述的方法,其中,选择性应用还包括:
选择性地在以下之间切换:
确定所述信号的非反转版本或所述信号的反转版本是否提供更接近所述目标比率的1和0的计算的平均比率,并且发送提供了更接近所述目标比率的计算的平均比率的信号;以及
实现动态总线反转以减少输出信号上的切换次数或减少发送的1的数量。
10.根据权利要求9所述的方法,其中,选择性切换还包括:
应用动态总线反转以提供更接近所述目标比率的计算的平均比率,除非所述信号的非反转版本和所述信号的反转版本中的1和0的比率在预定范围内;否则,
应用动态总线反转来减少所述输出信号上的切换次数或减少发送的1的数量。
11.根据权利要求1所述的方法,其中,接收要发送的信号包括接收一系列连续输出事务的多个信号之一;并且其中,识别1和0的比率包括识别所述一系列连续输出事务中的比率;并且其中,确定所述信号的非反转版本或所述信号的反转版本中的1和0的比率是否提供更接近所述目标比率的所述计算的平均比率包括:确定一个接收到的信号中的1和0的比率是否针对所述一系列连续输出事务提供了更接近所述目标比率的所述计算的平均比率。
12.一种包括耦合用于通信的发送设备和接收设备的电路,包括:
硬件连接器,用于通过输入/输出(I/O)接口将所述发送设备耦合到所述接收设备;
缓冲器,用于接收要通过所述I/O接口发送到所述接收设备的信号;以及
用于以下的逻辑:识别所述信号的非反转版本中的1和0的比率以及所述信号的反转版本中的1和0的比率;确定所述信号的非反转版本中的1和0的比率或者所述信号的反转版本中的1和0的比率是否提供更接近1和0的目标比率的1和0的计算的平均比率;并且当所述信号的非反转版本中的1和0的比率提供更接近所述目标比率的计算的平均比率时,通过所述I/O接口发送所述信号的非反转版本;或者当所述信号的反转版本中的1和0的比率提供更接近所述目标比率的计算的平均比率时,通过所述I/O接口发送所述信号的反转版本,包括产生反转指示信号。
13.根据权利要求12所述的电路,还包括:
累加器,其维持通过所述接口发送的1和0的运行净符号差。
14.根据权利要求13所述的电路,其中,所述目标比率不是一比一,并且其中,用于确定的逻辑包括用于计算所述信号的非反转版本或所述信号的反转版本是否提供更接近净差的所述计算的平均比率以达到所述目标比率的逻辑。
15.根据权利要求13所述的电路,其中,所述累加器包括多个累加器中的一个,所述多个累加器的每一个针对不同等级或针对不同设备保存运行净符号差。
16.根据权利要求13所述的电路,其中,所述I/O接口具有Vtt端子,其中,所述I/O接口的信号线被端接于位于上电压电源轨和下电压电源轨之间的电压。
17.根据权利要求13所述的电路,还包括计算所述目标比率以实现所述I/O接口上的DC(直流)平衡的目标水平的逻辑。
18.根据权利要求13所述的电路,其中,所述逻辑包括动态总线反转逻辑。
19.根据权利要求18所述的电路,其中,所述逻辑用于选择性地在以下之间切换:确定所述信号的非反转版本或所述信号的反转版本是否提供更接近所述目标比率的1和0的计算的平均比率,并且发送提供了更接近所述目标比率的计算的平均比率的信号;以及实现动态总线反转以减少输出信号上的切换次数或减少发送的1的数量。
20.根据权利要求18所述的电路,其中,所述逻辑还用于应用动态总线反转以提供更接近所述目标比率的计算的平均比率,除非所述信号的非反转版本和所述信号的反转版本中的1和0的比率在预定范围内;否则,应用动态总线反转来减少所述输出信号上的切换次数或减少发送的1的数量。
21.根据权利要求13所述的电路,其中,所述信号包括一系列连续输出事务的多个信号之一;并且其中,所述逻辑用于识别所述一系列连续输出事务中的比率;并且其中,所述逻辑用于确定所述信号的非反转版本中的1和0的比率和所述信号的反转版本中的1和0的比率中的哪个比率针对所述一系列连续输出事务提供了更接近所述目标比率的所述计算的平均比率。
22.一种用于设备间信号传输的装置,包括:
用于接收要通过输入/输出(I/O)接口发送的信号的单元;
用于识别所述信号的非反转版本中的1和0的比率以及所述信号的反转版本中的1和0的比率的单元;
用于确定所述信号的非反转版本中的1和0的比率或者所述信号的反转版本中的1和0的比率是否提供了更接近1和0的目标比率的1和0的计算的平均比率的单元;以及
用于当所述信号的非反转版本中的1和0的比率提供更接近所述目标比率的计算的平均比率时,通过所述I/O接口发送所述信号的非反转版本;或者当所述信号的反转版本中的1和0的比率提供更接近所述目标比率的计算的平均比率时,通过所述I/O接口发送所述信号的反转版本,包括产生反转指示信号的单元。
23.根据权利要求22所述的装置,其中,所述目标比率不是一比一,并且其中,用于确定的单元包括用于确定所述信号的非反转版本或所述信号的反转版本是否提供更接近净差的所述计算的平均比率以达到所述目标比率的单元。
24.根据权利要求22所述的装置,还包括用于计算所述目标比率以实现所述I/O接口上的DC(直流)平衡的目标水平的单元。
25.根据权利要求22所述的装置,其中,用于选择性地应用的单元还包括用于以下的单元:
选择性地在以下之间切换:
确定所述信号的非反转版本或所述信号的反转版本是否提供更接近所述目标比率的1和0的计算的平均比率,并且发送提供了更接近所述目标比率的计算的平均比率的信号;以及
实现动态总线反转以减少输出信号上的切换次数或减少发送的1的数量。
26.一种具有指令的机器可读介质,所述指令在被处理器执行时,使所述处理器执行根据权利要求1-11中的任一项所述的方法。
27.一种用于设备间信号传输的设备,包括:
存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行根据权利要求1-11中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/565,176 | 2014-12-09 | ||
US14/565,176 US9665527B2 (en) | 2014-12-09 | 2014-12-09 | Dynamic bus inversion with programmable termination level to maintain programmable target ratio of ones and zeros in signal lines |
PCT/US2015/061611 WO2016094049A1 (en) | 2014-12-09 | 2015-11-19 | Dynamic bus inversion with programmable termination level |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107077446A CN107077446A (zh) | 2017-08-18 |
CN107077446B true CN107077446B (zh) | 2020-05-19 |
Family
ID=56094467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580060752.XA Active CN107077446B (zh) | 2014-12-09 | 2015-11-19 | 具有可编程的端接级别的动态总线反转 |
Country Status (7)
Country | Link |
---|---|
US (4) | US9665527B2 (zh) |
EP (1) | EP3230883B1 (zh) |
JP (1) | JP6723999B2 (zh) |
KR (1) | KR102452890B1 (zh) |
CN (1) | CN107077446B (zh) |
TW (1) | TWI570571B (zh) |
WO (1) | WO2016094049A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102238176B1 (ko) * | 2014-04-16 | 2021-04-12 | 삼성전자주식회사 | 단일 와이어 프로토콜 통신에서의 데이터 통신 방법 및 그에 따른 단일 와이어 프로토콜 통신 시스템 |
US9780782B2 (en) * | 2014-07-23 | 2017-10-03 | Intel Corporation | On-die termination control without a dedicated pin in a multi-rank system |
US9665527B2 (en) | 2014-12-09 | 2017-05-30 | Intel Corporation | Dynamic bus inversion with programmable termination level to maintain programmable target ratio of ones and zeros in signal lines |
US10853300B2 (en) * | 2017-03-31 | 2020-12-01 | Intel Corporation | Low latency statistical data bus inversion for energy reduction |
KR20190029227A (ko) | 2017-09-12 | 2019-03-20 | 에스케이하이닉스 주식회사 | 데이터 전송 회로, 이를 이용하는 반도체 장치 및 반도체 시스템 |
JP6670341B2 (ja) | 2018-05-25 | 2020-03-18 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | メモリデバイス及び多数検出器 |
US11139830B2 (en) * | 2020-01-28 | 2021-10-05 | Qualcomm Incorporated | Bit inversion for data transmission |
US20200251159A1 (en) * | 2020-04-21 | 2020-08-06 | Intel Corporation | Stacked memory device with end to end data bus inversion |
US11262937B2 (en) * | 2020-05-01 | 2022-03-01 | Micron Technology, Inc. | Balancing data for storage in a memory device |
US11720516B2 (en) | 2021-08-15 | 2023-08-08 | Apple Inc. | Methods for data bus inversion |
US11836107B2 (en) | 2022-03-01 | 2023-12-05 | Apple Inc. | Power consumption control based on random bus inversion |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007093906A1 (en) * | 2006-02-17 | 2007-08-23 | Ati Technologies, Inc | Dynamic bus inversion method and system |
US7522073B1 (en) * | 2007-11-30 | 2009-04-21 | Qimonda North America Corp. | Self-adapted bus inversion |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5022051A (en) * | 1988-11-02 | 1991-06-04 | Hewlett-Packard Company | DC-free line code for arbitrary data transmission |
US5999571A (en) * | 1995-10-05 | 1999-12-07 | Silicon Image, Inc. | Transition-controlled digital encoding and signal transmission system |
JP2001511323A (ja) * | 1997-01-30 | 2001-08-07 | フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド | 高速シリアルリンク用データ符号器/復号器 |
US6584526B1 (en) * | 2000-09-21 | 2003-06-24 | Intel Corporation | Inserting bus inversion scheme in bus path without increased access latency |
JP3589648B2 (ja) | 2001-01-24 | 2004-11-17 | ザインエレクトロニクス株式会社 | 半導体集積回路 |
US7406608B2 (en) * | 2004-02-05 | 2008-07-29 | Micron Technology, Inc. | Fast and compact circuit for bus inversion |
US7411840B2 (en) * | 2004-03-02 | 2008-08-12 | Via Technologies, Inc. | Sense mechanism for microprocessor bus inversion |
US20050289435A1 (en) * | 2004-06-29 | 2005-12-29 | Mulla Dean A | Fast approximate DINV calculation in parallel with coupled ECC generation or correction |
US7188208B2 (en) * | 2004-09-07 | 2007-03-06 | Intel Corporation | Side-by-side inverted memory address and command buses |
KR100877680B1 (ko) * | 2006-04-04 | 2009-01-09 | 삼성전자주식회사 | 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 |
KR100782327B1 (ko) * | 2006-05-27 | 2007-12-06 | 삼성전자주식회사 | 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 |
US7501963B1 (en) | 2007-10-17 | 2009-03-10 | Micron Technology, Inc. | Balanced data bus inversion |
US7925844B2 (en) * | 2007-11-29 | 2011-04-12 | Micron Technology, Inc. | Memory register encoding systems and methods |
US7616133B2 (en) | 2008-01-16 | 2009-11-10 | Micron Technology, Inc. | Data bus inversion apparatus, systems, and methods |
US8918597B2 (en) | 2008-08-29 | 2014-12-23 | Infineon Technologies Ag | Digital data inversion flag generator circuit |
US9087025B2 (en) * | 2009-02-05 | 2015-07-21 | Micron Technology, Inc. | Data encoding using spare channels in a memory system |
JP5485736B2 (ja) * | 2009-02-10 | 2014-05-07 | パナソニック株式会社 | 送信装置 |
EP2894571B1 (en) | 2009-07-13 | 2017-03-08 | Rambus Inc. | Encoding data using combined data mask and data bus inversion |
US7800399B1 (en) * | 2009-08-04 | 2010-09-21 | Broadcom Corporation | Virtual regulator for controlling a termination voltage in a termination circuit |
US8581755B2 (en) * | 2010-01-20 | 2013-11-12 | Rambus Inc. | Multiple word data bus inversion |
US8649229B2 (en) * | 2011-06-29 | 2014-02-11 | Intel Corporation | Memory module bus termination voltage (VTT) regulation and management |
US8706958B2 (en) * | 2011-09-01 | 2014-04-22 | Thomas Hein | Data mask encoding in data bit inversion scheme |
US8495437B2 (en) * | 2011-09-06 | 2013-07-23 | Samsung Electronics Co., Ltd. | Semiconductor memory device |
JP5972549B2 (ja) | 2011-09-29 | 2016-08-17 | ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. | 半導体装置 |
KR20140032787A (ko) * | 2012-09-07 | 2014-03-17 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 제어 방법 |
US8929157B2 (en) * | 2012-11-19 | 2015-01-06 | Intel Corporation | Power efficient, single-ended termination using on-die voltage supply |
US9385032B2 (en) | 2013-03-15 | 2016-07-05 | Gsi Technology, Inc. | Systems and methods involving data bus inversion memory circuitry, configuration and/or operation |
US9672178B1 (en) * | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9251110B2 (en) * | 2013-12-24 | 2016-02-02 | Intel Corporation | Modifying the spectral energy content of a data bus |
US9252802B2 (en) * | 2014-02-07 | 2016-02-02 | Qualcomm Incorporated | Encoding for partitioned data bus |
US9244875B1 (en) | 2014-07-18 | 2016-01-26 | Qualcomm Incorporated | Systems and methods for transition-minimized data bus inversion |
US20160162214A1 (en) | 2014-12-08 | 2016-06-09 | James A McCall | Adjustable low swing memory interface |
US9665527B2 (en) * | 2014-12-09 | 2017-05-30 | Intel Corporation | Dynamic bus inversion with programmable termination level to maintain programmable target ratio of ones and zeros in signal lines |
US9979416B2 (en) * | 2014-12-10 | 2018-05-22 | Rambus Inc. | Memory controller and method of data bus inversion using an error detection correction code |
-
2014
- 2014-12-09 US US14/565,176 patent/US9665527B2/en not_active Expired - Fee Related
-
2015
- 2015-10-14 TW TW104133712A patent/TWI570571B/zh not_active IP Right Cessation
- 2015-11-19 WO PCT/US2015/061611 patent/WO2016094049A1/en active Application Filing
- 2015-11-19 EP EP15867244.4A patent/EP3230883B1/en active Active
- 2015-11-19 JP JP2017525002A patent/JP6723999B2/ja active Active
- 2015-11-19 CN CN201580060752.XA patent/CN107077446B/zh active Active
- 2015-11-19 KR KR1020177012644A patent/KR102452890B1/ko active IP Right Grant
-
2017
- 2017-05-30 US US15/608,846 patent/US10031868B2/en active Active
-
2018
- 2018-07-05 US US16/028,137 patent/US10437746B2/en active Active
-
2019
- 2019-08-20 US US16/546,210 patent/US10802996B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007093906A1 (en) * | 2006-02-17 | 2007-08-23 | Ati Technologies, Inc | Dynamic bus inversion method and system |
US7522073B1 (en) * | 2007-11-30 | 2009-04-21 | Qimonda North America Corp. | Self-adapted bus inversion |
Also Published As
Publication number | Publication date |
---|---|
TW201636863A (zh) | 2016-10-16 |
EP3230883A1 (en) | 2017-10-18 |
KR20170093118A (ko) | 2017-08-14 |
US20160162434A1 (en) | 2016-06-09 |
US20170329727A1 (en) | 2017-11-16 |
WO2016094049A1 (en) | 2016-06-16 |
US20200081852A1 (en) | 2020-03-12 |
US9665527B2 (en) | 2017-05-30 |
CN107077446A (zh) | 2017-08-18 |
KR102452890B1 (ko) | 2022-10-11 |
US10802996B2 (en) | 2020-10-13 |
EP3230883A4 (en) | 2018-07-18 |
EP3230883B1 (en) | 2020-07-08 |
JP6723999B2 (ja) | 2020-07-15 |
US10031868B2 (en) | 2018-07-24 |
JP2017539005A (ja) | 2017-12-28 |
US20190121754A1 (en) | 2019-04-25 |
US10437746B2 (en) | 2019-10-08 |
TWI570571B (zh) | 2017-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107077446B (zh) | 具有可编程的端接级别的动态总线反转 | |
CN107408099B (zh) | 基于检测传感器数据的阻抗补偿 | |
US10459855B2 (en) | Load reduced nonvolatile memory interface | |
US9152257B2 (en) | Low swing voltage mode driver | |
US9048824B2 (en) | Programmable equalization with compensated impedance | |
TW201737100A (zh) | 具有窄頻寬中繼器通道的記憶體子系統 | |
KR101720890B1 (ko) | 메모리에 대한 기준 전압들을 결정하는 장치, 방법 및 시스템 | |
US20180061478A1 (en) | Double data rate command bus | |
US9563251B2 (en) | Representing a cache line bit pattern via meta signaling | |
CN107077302B (zh) | 用于与主机***进行接口的装置和方法 | |
US20200233821A1 (en) | Unidirectional information channel to monitor bidirectional information channel drift | |
US20140226708A1 (en) | Low power transmitter for generating pulse modulated signals | |
US10528103B2 (en) | Die interconnect signal management devices and methods |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |