TW202347111A - Adaptive data encoding for memory systems - Google Patents

Adaptive data encoding for memory systems Download PDF

Info

Publication number
TW202347111A
TW202347111A TW112111744A TW112111744A TW202347111A TW 202347111 A TW202347111 A TW 202347111A TW 112111744 A TW112111744 A TW 112111744A TW 112111744 A TW112111744 A TW 112111744A TW 202347111 A TW202347111 A TW 202347111A
Authority
TW
Taiwan
Prior art keywords
data
memory
memory device
sent
memory controller
Prior art date
Application number
TW112111744A
Other languages
Chinese (zh)
Inventor
恩金聖哲 艾沛克
哈姆札 歐瑪
博胡斯拉夫 雷希立克
傑佛瑞 葛瑪
馬修 史文森
麥可華勁 羅
正元 徐
Original Assignee
美商高通公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW202347111A publication Critical patent/TW202347111A/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Bus Control (AREA)

Abstract

Systems and methods for adaptive data encoding for memory systems are disclosed. In one aspect, a memory bus replaces a data bus inversion encoding technique with a more flexible encoding scheme which periodically calculates cluster centers based on pending data transactions. The dynamic cluster centers are used with an exclusive OR (XOR) function to minimize the number of bits that consume power sent over a memory bus. For example, in some standards, sending a one involves a state transition and consumes power. In other standards, sending a zero involves a state transition and consumes power. The present disclosure is applicable to both situations. By minimizing the power consuming bits sent over the memory bus, less power is consumed.

Description

用於記憶體系統的自我調整資料編碼Self-tuning data encoding for memory systems

概括而言,本案內容的技術係關於向記憶體設備發送資料和從記憶體設備接收資料,並且具體地係關於用於記憶體設備的編碼方案。The technology involved in this case relates generally to sending and receiving data to and from memory devices, and specifically to encoding schemes used in memory devices.

計算設備在現代社會中大量存在,並且特別是行動通訊設備已經變得越來越普遍。該等行動通訊設備的普及是部分地由如今在此種設備上實現的許多功能驅動的。此種設備中的增加的處理能力意味著行動通訊設備已經從純粹的通訊工具進化成為複雜的行動娛樂中心,從而實現增強的使用者體驗。隨著可用於此種設備的大量功能的出現,對於尋找降低功耗的方式的壓力越來越大。支援處理能力的記憶體系統為創新和功耗降低提供了機會。Computing devices are abundant in modern society, and mobile communication devices in particular have become increasingly common. The popularity of such mobile communication devices is driven in part by the many functions now implemented on such devices. The increased processing power in such devices means that mobile communication devices have evolved from pure communication tools to sophisticated mobile entertainment centers, enabling an enhanced user experience. With the vast number of features available for such devices, there is increasing pressure to find ways to reduce power consumption. Memory systems that support processing power provide opportunities for innovation and power reduction.

在具體實施方式中揭示的態樣包括用於針對記憶體系統的自我調整資料編碼的系統和方法。具體地,本案內容的示例性態樣設想利用更靈活的編碼方案來代替資料匯流排反轉編碼技術,該更靈活的編碼方案基於未決資料事務(pending data transaction)來週期性地計算集群中心(cluster center)。動態集群中心與異或(XOR)函數一起使用,以最小化在記憶體匯流排上發送的消耗功率的位元的數量。例如,在一些標準中,發送一涉及狀態轉換並且消耗功率。在其他標準中,發送零涉及狀態轉換並且消耗功率。本案內容適用於該兩種情形。經由最小化在記憶體匯流排上發送的功耗位元,消耗較少的功率。Aspects disclosed in the detailed description include systems and methods for self-adjusting data encoding for memory systems. Specifically, exemplary aspects of this content contemplate replacing the data bus inversion encoding technique with a more flexible encoding scheme that periodically calculates the cluster center based on pending data transactions (pending data transactions). cluster center). Dynamic Cluster Center is used with the exclusive OR (XOR) function to minimize the number of power-consuming bits sent on the memory bus. For example, in some standards, sending one involves a state transition and consumes power. In other standards, sending zeros involves state transitions and consumes power. The content of this case applies to both situations. By minimizing the number of power bits sent over the memory bus, less power is consumed.

在該點上,在一個態樣中,揭示一種積體電路(IC)。該IC包括匯流排介面,其被配置為耦合到記憶體匯流排。該IC亦包括記憶體控制器,其耦合到該匯流排介面。該記憶體控制器被配置為:經由該匯流排介面來向記憶體設備發送來自複數個資料遮罩的一或多個資料遮罩。該一或多個資料遮罩包括要在對被發送給該記憶體設備的經編碼的資料進行解碼時使用的相應模式。At this point, in one aspect, an integrated circuit (IC) is disclosed. The IC includes a bus interface configured to couple to a memory bus. The IC also includes a memory controller coupled to the bus interface. The memory controller is configured to send one or more data masks from a plurality of data masks to the memory device via the bus interface. The one or more data masks include corresponding patterns to be used when decoding encoded data sent to the memory device.

在另一態樣中,揭示一種IC。該IC包括匯流排介面,其被配置為耦合到記憶體匯流排。該IC亦包括記憶體控制器,其耦合到該匯流排介面。該記憶體控制器被配置為:經由該匯流排介面來向記憶體設備發送來自複數個資料遮罩的一或多個資料遮罩。該一或多個資料遮罩包括由該記憶體設備用於對要被發送給該記憶體控制器的資料進行編碼的編碼遮罩。In another aspect, an IC is disclosed. The IC includes a bus interface configured to couple to a memory bus. The IC also includes a memory controller coupled to the bus interface. The memory controller is configured to send one or more data masks from a plurality of data masks to the memory device via the bus interface. The one or more data masks include an encoding mask used by the memory device to encode data to be sent to the memory controller.

在另一態樣中,揭示一種IC。該IC包括匯流排介面,其被配置為耦合到記憶體匯流排。該IC亦包括模式暫存器,其包括儲存在其中的複數個資料遮罩。該IC亦包括編碼電路,其被配置為使用該複數個資料遮罩中的至少一個資料遮罩來對要經由該匯流排介面發送給記憶體控制器的資料進行編碼。In another aspect, an IC is disclosed. The IC includes a bus interface configured to couple to a memory bus. The IC also includes a pattern register that includes a plurality of data masks stored therein. The IC also includes encoding circuitry configured to use at least one data mask of the plurality of data masks to encode data to be sent to the memory controller via the bus interface.

在另一態樣中,揭示一種IC。該IC包括匯流排介面,其被配置為耦合到記憶體匯流排。該IC亦包括模式暫存器,其被配置為具有儲存在其中的用於對從記憶體控制器發送的資料進行解碼的一或多個資料遮罩。In another aspect, an IC is disclosed. The IC includes a bus interface configured to couple to a memory bus. The IC also includes a mode register configured to have one or more data masks stored therein for decoding data sent from the memory controller.

現在將參考附圖,描述了本案內容的若干說明性態樣。本文使用詞語「示例性的」以意指「用作示例、實例或說明」。本文中被描述為「示例性的」任何態樣未必被解釋為比其他態樣更佳或具有優勢。Several illustrative aspects of the subject matter will now be described with reference to the accompanying drawings. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any aspects described herein as "exemplary" are not necessarily to be construed as better or advantageous over other aspects.

在具體實施方式中揭示的態樣包括用於針對記憶體系統的自我調整資料編碼的系統和方法。具體地,本案內容的示例性態樣設想利用更靈活的編碼方案來代替資料匯流排反轉編碼技術,該更靈活的編碼方案基於未決資料事務來週期性地計算集群中心。動態集群中心與異或(XOR)函數一起使用,以最小化在記憶體匯流排上發送的消耗功率的位元。例如,在一些標準中,發送一涉及狀態轉換並且消耗功率。在其他標準中,發送零涉及狀態轉換並且消耗功率。本案內容適用於該兩種情形。經由最小化在記憶體匯流排上發送的功耗位元,消耗較少的功率。Aspects disclosed in the detailed description include systems and methods for self-adjusting data encoding for memory systems. Specifically, exemplary aspects of this disclosure contemplate replacing the data bus inversion encoding technique with a more flexible encoding scheme that periodically calculates the cluster center based on pending data transactions. Dynamic Cluster Center is used with the exclusive OR (XOR) function to minimize the number of power-consuming bits sent on the memory bus. For example, in some standards, sending one involves a state transition and consumes power. In other standards, sending zeros involves state transitions and consumes power. The content of this case applies to both situations. By minimizing the number of power bits sent over the memory bus, less power is consumed.

在解決本案內容的細節之前,參考圖1和圖2提供了可以受益於本案內容的示例性環境的簡要概述。下文將參考圖3開始對自我調整編碼技術的論述。Before addressing the details of the content of this case, a brief overview of an exemplary environment that may benefit from the content of this case is provided with reference to Figures 1 and 2. The discussion of self-adjusting encoding technology will begin with reference to Figure 3 below.

在該態樣,圖1是記憶體系統100的方塊圖,記憶體系統100包括經由一或多個記憶體匯流排106(僅圖示一個)耦合的主機102和複數個記憶體設備104(1)-104(N)。在示例性態樣中,主機102可以是積體電路(IC),其作為晶片上系統(SoC)、應用處理器、主要數據機或被設計為存取記憶體設備104(1)-104(N)的其他控制電路來執行。主機102可以包括神經處理單元108、圖形處理單元(GPU)和多媒體引擎110及/或多核中央處理單元(CPU)112。神經處理單元108、GPU和多媒體引擎110及/或多核CPU 112可以經由系統匯流排116與記憶體控制器114進行通訊。記憶體控制器114可以跨越資料線120向實體層(PHY)118發送資料。PHY 118是記憶體匯流排介面,並且可以包括將資料從資料線120路由到與記憶體匯流排106耦合的適當引腳(例如,資料引腳(data pin))的編碼邏輯122。In this aspect, FIG. 1 is a block diagram of a memory system 100 that includes a host 102 and a plurality of memory devices 104 ( 1 )-104(N). In exemplary aspects, host 102 may be an integrated circuit (IC) that acts as a system on a chip (SoC), an applications processor, a primary data machine, or is designed to access memory devices 104(1)-104( N) other control circuits to execute. The host 102 may include a neural processing unit 108 , a graphics processing unit (GPU) and a multimedia engine 110 and/or a multi-core central processing unit (CPU) 112 . Neural processing unit 108 , GPU and multimedia engine 110 and/or multi-core CPU 112 may communicate with memory controller 114 via system bus 116 . Memory controller 114 may send data across data line 120 to physical layer (PHY) 118 . PHY 118 is a memory bus interface and may include encoding logic 122 that routes data from data lines 120 to appropriate pins coupled to memory bus 106 (eg, data pins).

記憶體設備104(1)-104(N)可以是完全相同的,並且相應地提供了對通用記憶體設備104的論述。記憶體設備104可以包括輸入-輸出(I/O)區塊124。I/O區塊124是記憶體匯流排介面,並且使用讀和寫命令來與資料單元陣列128的儲存體(bank)126進行通訊,此情形是熟知的。I/O區塊124亦可以包括編碼邏輯130,其將資料從資料線路由到與記憶體匯流排106耦合的適當引腳。記憶體匯流排106可以包括二十四個資料導體、四個時鐘導體和四個讀時鐘選通(read clock strobe)(RDQS)導體。因此,記憶體匯流排介面118、124可以包括與資料導體相對應的二十四個引腳(例如,資料引腳)、與時鐘導體相對應的四個引腳(例如,時鐘引腳)以及與RDQS導體相對應的四個引腳。可以針對命令和位址信號、額外時鐘信號、晶片選擇信號及/或重置信號提供額外導體。Memory devices 104(1)-104(N) may be identical, and discussion of general memory device 104 is provided accordingly. Memory device 104 may include an input-output (I/O) block 124 . The I/O block 124 is a memory bus interface and communicates with the bank 126 of the data cell array 128 using read and write commands, as is well known. I/O block 124 may also include encoding logic 130 that routes data from the data lines to the appropriate pins coupled to memory bus 106 . Memory bus 106 may include twenty-four data conductors, four clock conductors, and four read clock strobe (RDQS) conductors. Accordingly, memory bus interfaces 118, 124 may include twenty-four pins corresponding to data conductors (eg, data pins), four pins corresponding to clock conductors (eg, clock pins), and Four pins corresponding to the RDQS conductors. Additional conductors may be provided for command and address signals, additional clock signals, die select signals, and/or reset signals.

在一個示例性態樣中,記憶體匯流排106的導體是以特定佈局來排列的。亦即,從第一邊緣開始向內移動,存在資料導體(DQ0)、具有兩個導體(WCK0_t、WCK0_c)的差分時鐘通道、具有兩個導體(RDQS0_t、RDQS0_c)的差分RDQS通道和更多資料導體(DQ0),其整體上被示為第一群組132。在記憶體匯流排106的中心部分中,命令和位址(CA[0:k])通道導體、具有兩個導體(CK_t、CK_c)的差分命令時鐘通道、晶片選擇通道導體和重置通道導體可以被定位,整體上示為中間群組134。隨後,朝著記憶體匯流排106的第二邊緣向外移動,存在資料導體(DQ1)、具有兩個導體(WCK1_t、WCK1_c)的差分時鐘通道、具有兩個導體(RDQS1_t、RDQS1_c)的差分RDQS通道以及更多資料導體(DQ1),其整體上被示為第二群組136。儘管在路由的容易性、電磁干擾(EMI)及/或電磁相容性(EMC)態樣對於此種排列存在各種原因,但是應當明白,亦可以使用其他排列。In one exemplary aspect, the conductors of memory bus 106 are arranged in a specific layout. That is, starting from the first edge and moving inward, there is a data conductor (DQ0), a differential clock channel with two conductors (WCK0_t, WCK0_c), a differential RDQS channel with two conductors (RDQS0_t, RDQS0_c) and more data Conductors (DQ0), shown generally as first group 132. In the center portion of memory bus 106, the command and address (CA[0:k]) channel conductors, a differential command clock channel with two conductors (CK_t, CK_c), the die select channel conductor, and the reset channel conductor may be located, shown generally as middle group 134. Then, moving outward toward the second edge of the memory bus 106, there is the data conductor (DQ1), a differential clock channel with two conductors (WCK1_t, WCK1_c), a differential RDQS with two conductors (RDQS1_t, RDQS1_c) channels and further data conductors (DQ1), which are shown in their entirety as second group 136. While there are various reasons for this arrangement in terms of ease of routing, electromagnetic interference (EMI), and/or electromagnetic compatibility (EMC), it should be understood that other arrangements may be used.

此外,作為額外特徵,記憶體控制器114可以包括糾錯碼(ECC)電路140,其可以對ECC信號進行編碼和解碼。此外,資料單元陣列128可以包括ECC單元142,其儲存同位位元並且與ECC電路140一起工作以進行糾錯。在示例性態樣中,ECC同位位元(p,與資料2*n相反)可以在RDQS引腳(例如,RDQS_t、RDQS_c或兩者)上從主機102傳輸到記憶體設備104,諸如在寫操作期間。對於反向操作,ECC同位位元可以在讀操作期間在資料遮罩時槽內傳輸。或者,代替使用RDQS信號,主機102可以使用資料遮罩時槽(例如,M[0:31])進行寫操作。Additionally, as an additional feature, memory controller 114 may include error correction code (ECC) circuitry 140 that may encode and decode ECC signals. Additionally, the data cell array 128 may include an ECC cell 142 that stores parity bits and works with the ECC circuit 140 for error correction. In an exemplary aspect, the ECC parity bit (p, as opposed to data 2*n) may be transmitted from the host 102 to the memory device 104 on the RDQS pin (eg, RDQS_t, RDQS_c, or both), such as during a write during operation. For reverse operations, ECC parity bits can be transferred in the data mask slot during read operations. Alternatively, instead of using the RDQS signal, the host 102 can use the data mask slot (eg, M[0:31]) for write operations.

每個記憶體設備104(1)-104(N)可以具有模式暫存器146和編碼電路(未圖示),其將用於辨識本案內容的各態樣是否正處於使用,如下文更詳細地解釋的。Each memory device 104(1)-104(N) may have a mode register 146 and encoding circuitry (not shown) that will be used to identify whether various aspects of the content are in use, as described in more detail below. explained.

對於進一步的上下文,圖2是可以在其中尋找記憶體系統(諸如圖1的記憶體系統100)的示例性行動通訊設備或行動終端200(諸如智慧型電話、行動計算設備平板等)的系統級方塊圖。儘管行動終端被具體設想為能夠受益於本案內容的示例性態樣,但是應當明白,本案內容不限於此,並且可以在具有符合現有或新興記憶體標準的記憶體匯流排的任何系統中是有用的。For further context, FIG. 2 is the system level of an exemplary mobile communications device or mobile terminal 200 (such as a smartphone, mobile computing device tablet, etc.) in which a memory system (such as the memory system 100 of FIG. 1 ) may be found. Block diagram. Although mobile terminals are specifically envisioned as exemplary aspects that can benefit from the contents of this document, it should be understood that the contents of this document are not so limited and may be useful in any system with a memory bus that complies with existing or emerging memory standards. of.

繼續參考圖2,行動終端200包括應用處理器204(有時被稱為主機或SoC),其經由通用快閃儲存(UFS)匯流排208與大型儲存元件206進行通訊。更相關地,根據本案內容的示例性態樣,應用處理器204可以經由記憶體匯流排106與雙倍資料速率(DDR)記憶體設備104進行通訊。應用處理器204亦可以經由顯示器串列介面(DSI)匯流排212連接到顯示器210,並且經由相機串列介面(CSI)匯流排216連接到相機214。諸如麥克風218、揚聲器220和音訊轉碼器222的各種音訊元件可以經由串列低功率晶片間多媒體匯流排(SLIMbus)224耦合到應用處理器204。此外,音訊元件可以經由SOUNDWIRE匯流排226彼此通訊。數據機228亦可以耦合到SLIMbus 224及/或SOUNDWIRE匯流排226。數據機228亦可以經由周邊元件互連(PCI)或PCI快速(PCIe)匯流排230及/或系統電源管理介面(SPMI)匯流排232連接到應用處理器204。Continuing with reference to FIG. 2 , the mobile terminal 200 includes an application processor 204 (sometimes referred to as a host or SoC) that communicates with a large storage device 206 via a universal flash storage (UFS) bus 208 . More relatedly, according to exemplary aspects of the disclosure, application processor 204 may communicate with double data rate (DDR) memory device 104 via memory bus 106 . The applications processor 204 may also be connected to the display 210 via a display serial interface (DSI) bus 212 and to the camera 214 via a camera serial interface (CSI) bus 216 . Various audio components, such as microphone 218 , speaker 220 , and audio transcoder 222 , may be coupled to applications processor 204 via serial low-power inter-chip multimedia bus (SLIMbus) 224 . Additionally, audio components can communicate with each other via SOUNDWIRE bus 226. Modem 228 may also be coupled to SLIMbus 224 and/or SOUNDWIRE bus 226. The modem 228 may also be connected to the application processor 204 via a Peripheral Component Interconnect (PCI) or PCI Express (PCIe) bus 230 and/or a System Power Management Interface (SPMI) bus 232 .

繼續參考圖2,SPMI匯流排232亦可以耦合到區域網路(LAN或WLAN)IC(LAN IC或WLAN IC)234、電源管理積體電路(PMIC)236、伴隨IC(有時被稱為橋接晶片)238和射頻IC(RFIC)240。應當明白,單獨的PCI匯流排242和244亦可以將應用處理器204耦合到伴隨IC 238和WLAN IC 234。應用處理器204亦可以經由感測器匯流排248連接到感測器246。數據機228和RFIC 240可以使用匯流排250進行通訊。Continuing with Figure 2, the SPMI bus 232 may also be coupled to a local area network (LAN or WLAN) IC (LAN IC or WLAN IC) 234, a power management integrated circuit (PMIC) 236, a companion IC (sometimes referred to as a bridge chip) 238 and radio frequency IC (RFIC) 240. It should be appreciated that separate PCI buses 242 and 244 may also couple application processor 204 to companion IC 238 and WLAN IC 234. Application processor 204 may also be connected to sensor 246 via sensor bus 248 . Modem 228 and RFIC 240 may communicate using bus 250.

繼續參考圖2,RFIC 240可以經由射頻前端(RFFE)匯流排258耦合到一或多個RFFE元件,諸如天線調諧器252、開關254和功率放大器256。此外,RFIC 240可以經由匯流排262耦合到包絡追蹤電源(ETPS)260,並且ETPS 260可以與功率放大器256進行通訊。包括RFIC 240的RFFE元件可以共同被認為是RFFE系統264。應當明白,RFFE匯流排258可以由時鐘線和資料線(未圖示)形成。Continuing with reference to FIG. 2 , RFIC 240 may be coupled via radio frequency front end (RFFE) bus 258 to one or more RFFE components, such as antenna tuner 252 , switch 254 , and power amplifier 256 . Additionally, RFIC 240 can be coupled to an envelope tracking power supply (ETPS) 260 via bus 262 , and ETPS 260 can communicate with power amplifier 256 . The RFFE components including RFIC 240 may collectively be considered RFFE system 264 . It should be appreciated that RFFE bus 258 may be formed from clock lines and data lines (not shown).

在過去,記憶體控制器114與記憶體設備104之間的資料通訊可能是最大功耗方之一。具體地,在低功率雙倍資料速率(LPDDR)系統中,當發送邏輯高或邏輯一時消耗功率。為了降低功耗,現有的LPDDR系統可以使用資料匯流排反轉(DBI)編碼方案,其中若在八位元的區塊中與零相比存在較多的一,則資料被反轉並且在資料遮罩反轉(DMI)位元中與信號一起被發送到記憶體設備,以向記憶體設備指示已經發生反轉。儘管DBI確實提供了相比於非編碼信號傳遞的一些功率節省,但是DBI編碼的細微性相對粗糙,並且可能無法最佳地對一和零進行編碼。應注意,DBI亦可以用在其他系統中,諸如普通DDR記憶體、圖形DDR(GDDR)記憶體、高頻寬記憶體(HBM)等。亦可能的是,DBI可以在記憶體配置之外使用。此外,儘管許多系統被設計為使得發送邏輯一涉及線路上的消耗功率的邏輯高或狀態轉換,但是一些系統在發送零時可能消耗功率。本案內容在任一情況下皆以零代替一來工作。因此,所有此種環境皆可以受益於本案內容的各態樣。In the past, data communication between the memory controller 114 and the memory device 104 may have been one of the largest power consumers. Specifically, in low power double data rate (LPDDR) systems, power is consumed when transmitting a logic high or logic one. To reduce power consumption, existing LPDDR systems can use a data bus inversion (DBI) encoding scheme, where if there are more ones than zeros in a block of eight bits, the data is inverted and the data is The Mask Inversion (DMI) bit is sent with the signal to the memory device to indicate to the memory device that an inversion has occurred. While DBI does provide some power savings over unencoded signaling, the subtleties of DBI encoding are relatively crude and may not encode ones and zeros optimally. It should be noted that DBI can also be used in other systems, such as ordinary DDR memory, graphics DDR (GDDR) memory, high bandwidth memory (HBM), etc. It is also possible that DBI can be used outside of memory configurations. Additionally, while many systems are designed so that sending a logic one involves a logic high or state transition that consumes power on the line, some systems may consume power when sending a zero. The content of this case works by replacing one with zero in any case. Therefore, all such environments can benefit from various aspects of this case.

作為註釋命名法,雙倍資料速率(DDR)是在JEDEC規範和一般的記憶體界內的專門術語。如本文所使用的,DDR被定義為使用時鐘信號的下降邊緣和上升邊緣兩者的信號傳遞技術。兩個邊緣的此種使用獨立於頻率,並且除非使用兩個邊緣,否則頻率的變化(例如,加倍)不落在DDR內。亦將DDR與單倍資料速率(SDR)進行了對比,SDR可以在上升邊緣或下降邊緣傳輸資料,但不同時在兩者傳輸資料。As a nomenclature, Double Data Rate (DDR) is a technical term within the JEDEC specification and the general memory community. As used herein, DDR is defined as a signaling technology that uses both the falling and rising edges of a clock signal. This use of two edges is independent of frequency, and changes in frequency (e.g., doubling) do not fall within the DDR unless two edges are used. DDR is also compared to single data rate (SDR), which can transmit data on either the rising edge or the falling edge, but not both at the same time.

本案內容的示例性態樣提供了自我調整編碼方案,該自我調整編碼方案經由允許使用更好的資料遮罩對資料進行編碼來提供更大的細微性。DMI位元可以被改變用途以指示正在使用何者資料遮罩,使得記憶體設備可以使用正確的資料遮罩進行解碼。Exemplary aspects of the present content provide a self-adjusting encoding scheme that provides greater nuance by allowing data to be encoded using better data masks. DMI bits can be repurposed to indicate which data mask is being used so that the memory device can use the correct data mask for decoding.

本案內容的技術容易被表達為程序,並且具體地在圖3中所示的程序300,其中參考圖4A-圖4F提供了對步驟的額外解釋。在該點上,程序300經由以下操作開始:基於觀測到的訊務(traffic)來計算最佳遮罩(方塊302)。亦即,記憶體控制器114知道被包含在任何寫命令中的資料,並且可能知道某些類型的讀資料(例如,機器學習系統中的權重)。因此,如圖4A所示,記憶體控制器114可以在佇列400中具有複數個寫事務,並且週期性地(例如,每六十四(64)個事務),記憶體控制器114可以基於佇列中的事務來計算一組集群中心402(0)-402(N)(其中如圖所示,N是3)。該計算可以經由具有表示每個集群中心的向上/向下計數器408(參見圖4C)來完成(例如,對於示例性系統中的六十四個計數器,每集群每資料線一個計數器)。對於每個十六位元的資料區塊(chunk of data)404,記憶體控制器114可以基於尋找最小Hamming距離406(0)-406(3)來尋找最近集群中心402(0),另外參見圖4B,其中辨識了集群中心402(0)。應注意,可以選擇其他集群大小。因此,例如,代替十六位元的資料區塊,可以使用四、八、三十二、六十四或更多。同樣,儘管預期了二次冪,但是其他值是可能的。The techniques described herein are readily expressed as procedures, and are specifically shown in procedure 300 in Figure 3, where additional explanation of the steps is provided with reference to Figures 4A-4F. At this point, the process 300 begins by calculating an optimal mask based on the observed traffic (block 302). That is, the memory controller 114 is aware of the data included in any write command, and may be aware of certain types of read data (eg, weights in a machine learning system). Accordingly, as shown in FIG. 4A , the memory controller 114 may have a plurality of write transactions in the queue 400 , and periodically (eg, every sixty-four (64) transactions), the memory controller 114 may based on Queue the transactions to calculate a set of cluster centers 402(0)-402(N) (where N is 3 as shown). This calculation may be accomplished via having up/down counters 408 (see Figure 4C) representing the center of each cluster (eg, one counter per data line per cluster for the sixty-four counters in the exemplary system). For each sixteen-bit chunk of data 404, the memory controller 114 may find the nearest cluster center 402(0) based on finding the minimum Hamming distance 406(0)-406(3), see also Figure 4B, in which cluster center 402(0) is identified. It should be noted that other cluster sizes can be selected. So, for example, instead of sixteen-bit data blocks, four, eight, thirty-two, sixty-four or more could be used. Likewise, although powers of two are anticipated, other values are possible.

應注意,因為在一些情況下,記憶體控制器114可以知道在正在讀取的資料內是什麼模式,所以記憶體控制器114可以指示記憶體設備104使用資料遮罩對資料進行編碼。亦即,資料遮罩可以充當編碼遮罩,該編碼遮罩包括被插入到對要被發送給記憶體設備104的資料進行編碼的函數(例如,XOR)中的值。It should be noted that because in some cases the memory controller 114 may know what patterns are within the material being read, the memory controller 114 may instruct the memory device 104 to encode the material using a data mask. That is, the data mask may serve as an encoding mask that includes values that are inserted into a function (eg, XOR) that encodes the data to be sent to the memory device 104 .

如圖4C所示,若在資料404中指示一,則用於所尋找的集群中心402(0)的相應計數器408遞增,而若指示零,則將相應計數器408遞減。基於計數器408的結果,計算出新集群410,如圖4D所示。在特定態樣中,基於經更新的計數器是否大於五來選擇新集群410。因此,例如,如圖4D所示,元素412(1)-412(2)、412(4)-412(6)、412(9)-412(14)和412(16)小於五,因此該等位元為0,而元素412(3)、412(7)、412(8)和412(15)大於五,並且該等位元為1。應當明白,在啟動或配置時,可以最初提供一組預設集群中心。As shown in Figure 4C, if one is indicated in the profile 404, the corresponding counter 408 for the sought cluster center 402(0) is incremented, and if zero is indicated, the corresponding counter 408 is decremented. Based on the results of counter 408, a new cluster 410 is calculated, as shown in Figure 4D. In certain aspects, the new cluster 410 is selected based on whether the updated counter is greater than five. Therefore, for example, as shown in Figure 4D, elements 412(1)-412(2), 412(4)-412(6), 412(9)-412(14), and 412(16) are less than five, so the The equal bit is 0, and elements 412(3), 412(7), 412(8), and 412(15) are greater than five, and the equal bit is 1. It will be appreciated that upon startup or configuration, a preset set of cluster centers may be initially provided.

返回圖3,記憶體控制器114將基於經更新的集群410的新資料遮罩傳送給記憶體設備104,並且具體地傳送給模式暫存器146(方塊304,另外參見圖4E)。對於後續寫命令,記憶體控制器114可以將資料位元與使Hamming距離最小化的遮罩進行XOR(方塊306)(另外參見圖4F),其中用於DBI的DMI信號可以用於經由將引腳改變用途以指示所選擇的遮罩來傳送記憶體設備104將使用何者集群中心(方塊308)。Returning to Figure 3, the memory controller 114 communicates the new data mask based on the updated cluster 410 to the memory device 104, and specifically to the mode register 146 (block 304, see also Figure 4E). For subsequent write commands, the memory controller 114 may The footer is repurposed to indicate the selected mask to convey which cluster center the memory device 104 will use (block 308 ).

隨後,記憶體設備104將所接收的位元與所辨識的遮罩進行XOR,以恢復資料並且執行寫命令(方塊310)。The memory device 104 then XORs the received bits with the identified mask to recover the data and execute the write command (block 310).

以此種方式,在記憶體匯流排106上傳送的一的數量被最小化,此舉導致功率節省。在最壞的情況下,遮罩偶爾與DBI最終相同,並且針對該訊窗不存在功率節省,但是在足夠大的時間訊窗內,功率節省可以是可觀的,針對CPU寫訊務大約幾乎50%的節省,而針對其他形式的寫訊務大約10%的節省。In this manner, the number of ones transferred on the memory bus 106 is minimized, which results in power savings. In the worst case, the mask occasionally ends up being the same as the DBI, and there is no power saving for that window, but within a large enough time window, the power saving can be considerable, on the order of almost 50% for CPU write traffic % savings, compared with approximately 10% savings for other forms of writing services.

根據本文揭示的各態樣的用於記憶體系統的自我調整資料編碼可以在任何基於處理器的設備中提供或整合到任何基於處理器的設備中。實例包括但不限於機上盒、娛樂單元、導航設備、通訊設備、固定位置資料單元、行動位置資料單元、全球定位系統(GPS)設備、行動電話、蜂巢式電話、智慧型電話、通信期啟動協定(SIP)電話、平板設備、平板電話、伺服器、電腦、可攜式電腦、行動計算設備、可穿戴計算設備(例如,智慧手錶、健康或健身追蹤器、眼鏡等)、桌上型電腦、個人數位助理(PDA)、監視器、電腦監視器、電視機、調諧器、無線電單元、衛星無線電單元、音樂播放機、數位音樂播放機、可攜式音樂播放機、數位視訊播放機、視訊播放機、數位視訊光碟(DVD)播放機、可攜式數位視訊播放機、汽車、車輛元件、航空電子系統、無人機和多旋翼直升機。Self-adjusting data encoding for memory systems according to aspects disclosed herein may be provided in or integrated into any processor-based device. Examples include, but are not limited to, set-top boxes, entertainment units, navigation equipment, communication equipment, fixed location data units, mobile location data units, Global Positioning System (GPS) devices, mobile phones, cellular phones, smart phones, communication period activation Protocol (SIP) phones, tablet devices, phablets, servers, computers, laptops, mobile computing devices, wearable computing devices (e.g., smart watches, health or fitness trackers, glasses, etc.), desktop computers , personal digital assistant (PDA), monitor, computer monitor, television, tuner, radio unit, satellite radio unit, music player, digital music player, portable music player, digital video player, video players, digital video disc (DVD) players, portable digital video players, automobiles, vehicle components, avionics systems, drones and multi-rotor helicopters.

熟習此項技術者亦將認識到的是,結合本文揭示的各態樣描述的各種說明性的邏輯區塊、模組、電路和演算法可以實現為電子硬體、在記憶體中或者在另一電腦可讀取媒體中儲存的指令(其中任何此種指令被處理器或其他處理設備執行),或該兩者的組合。作為實例,本文描述的主設備和從設備可以在任何電路、硬體元件、積體電路(IC)或IC晶片中採用。本文揭示的記憶體可以是任何類型和大小的記憶體,並且可以被配置為儲存期望的任何類型的資訊。為了清楚地說明此種可互換性,上文已經對各種說明性的元件、方塊、模組、電路和步驟圍繞其功能進行了整體描述。如何實現此種功能取決於特定的應用、設計選擇及/或施加在整體系統上的設計約束。熟習此項技術者可以針對每個特定的應用,以變化的方式來實現所描述的功能,但是此種實現方式決策不應當被解釋為造成脫離本案內容的範疇。Those skilled in the art will also appreciate that the various illustrative logic blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, in memory, or elsewhere. A computer may read instructions stored on the medium (where any such instructions are executed by a processor or other processing device), or a combination of the two. By way of example, the master and slave devices described herein may be employed in any circuit, hardware component, integrated circuit (IC), or IC chip. The memory disclosed herein can be any type and size of memory and can be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in conjunction with their functionality. How this functionality is implemented depends on the specific application, design choices, and/or design constraints imposed on the overall system. Those skilled in the art may implement the described functions in varying ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of this case.

結合本文揭示的各態樣描述的各種說明性的邏輯區塊、模組和電路可以利用被設計為執行本文描述的功能的處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯設備、個別閘門或電晶體邏輯、個別硬體元件或其任何組合來實現或執行。處理器可以是微處理器,但是在替代方式中,處理器可以是任何習知的處理器、控制器、微控制器或者狀態機。處理器亦可以被實現為計算設備的組合(例如,DSP和微處理器的組合、複數個微處理器、一或多個微處理器與DSP核的結合,或者任何其他此種配置)。The various illustrative logic blocks, modules and circuits described in connection with the aspects disclosed herein may utilize processors, digital signal processors (DSPs), application special integrated circuits (ASICs) designed to perform the functions described herein ), a field programmable gate array (FPGA) or other programmable logic device, individual gate or transistor logic, individual hardware components, or any combination thereof. The processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller or state machine. A processor may also be implemented as a combination of computing devices (eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors and a DSP core, or any other such configuration).

本文揭示的各態樣可以體現在硬體以及儲存在硬體中的指令中,並且可以位於例如隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式設計ROM(EPROM)、電子可抹除可程式設計ROM(EEPROM)、暫存器、硬碟、可移除磁碟、CD-ROM或者本領域中已知的任何其他形式的電腦可讀取媒體中。示例性的儲存媒體耦合到處理器,以使得處理器可以從該儲存媒體讀取資訊,以及向儲存媒體寫入資訊。在替代方式中,儲存媒體可以是處理器的組成部分。處理器和儲存媒體可以位於ASIC中。ASIC可以位於遠端站中。在替代方式中,處理器和儲存媒體可以作為個別元件位於遠端站、基地站或伺服器中。The aspects disclosed herein may be embodied in hardware and instructions stored in the hardware, and may be located in, for example, random access memory (RAM), flash memory, read only memory (ROM), electrically programmable Design ROM (EPROM), Electronically Erasable Programmable ROM (EEPROM), scratchpad, hard disk, removable disk, CD-ROM, or any other form of computer readable media known in the art middle. An exemplary storage medium is coupled to the processor such that the processor can read information from the storage medium and write information to the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and storage media may be located in an ASIC. The ASIC can be located in the remote station. In the alternative, the processor and storage medium may be located as separate components in a remote station, base station, or server.

亦應注意的是,對在本文的示例性態樣中的任何示例性態樣中描述的操作步驟進行描述以提供實例和論述。所描述的操作可以按照除了所圖示的順序以外的許多不同的順序來執行。此外,在單個操作步驟中描述的操作實際上可以是在多個不同的步驟中執行的。另外,可以對在示例性態樣中論述的一或多個操作步驟進行組合。應當理解的是,如對於熟習此項技術者將顯而易見的是,在流程圖中圖示的操作步驟可以經受許多不同的修改。熟習此項技術者亦將理解的是,資訊和信號可以使用多種不同的技術和方法中的任何一種來表示。例如,可能貫穿以上描述所提及的資料、指令、命令、資訊、信號、位元、符號和碼片可以由電壓、電流、電磁波、磁場或粒子、光場或粒子或者其任何組合來表示。It should also be noted that the operational steps described in any of the exemplary aspects herein are described to provide example and discussion. The operations described may be performed in many different orders than that illustrated. Furthermore, operations described in a single operating step may actually be performed in multiple different steps. Additionally, one or more of the operational steps discussed in the exemplary aspects may be combined. It should be understood that the operational steps illustrated in the flowcharts are susceptible to many different modifications, as will be apparent to those skilled in the art. Those skilled in the art will also understand that information and signals may be represented using any of a variety of different techniques and methods. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be mentioned throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, light fields or particles, or any combination thereof.

提供本案內容的前述描述,以使任何熟習此項技術者能夠實現或使用本案內容。對本案內容的各種修改對於熟習此項技術者而言將是顯而易見的,並且本文所定義的整體原理可以應用到其他變型中。因此,本案內容並不意欲限於本文描述的實例和設計,而是被賦予與本文所揭示的原理和新穎特徵相一致的最寬範疇。The foregoing description of the content of this case is provided to enable anyone skilled in the art to implement or use the content of this case. Various modifications to the teachings herein will be apparent to those skilled in the art, and the overall principles defined herein may be applied to other variations. Accordingly, the disclosure is not intended to be limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

在以下編號的條款中描述了實現方式實例: 1、一種積體電路(IC),包括: 匯流排介面,其被配置為耦合到記憶體匯流排;及 記憶體控制器,其耦合到該匯流排介面並且被配置為: 經由該匯流排介面來向記憶體設備發送來自複數個資料遮罩的一或多個資料遮罩,其中該一或多個資料遮罩包括要在對被發送給該記憶體設備的經編碼的資料進行解碼時使用的相應模式。 2、根據條款1之IC,其中該一或多個資料遮罩包括在該記憶體設備對該經編碼的資料進行解碼時與要經由該匯流排介面發送給該記憶體設備的資料要進行異或(XOR)的值。 3、根據條款2之IC,其中該記憶體控制器亦被配置為將傳出資料與至少一個資料遮罩進行XOR以對要被發送給該記憶體設備的該資料進行編碼。 4、根據條款3之IC,其中該記憶體控制器亦被配置為經由該匯流排介面來向該記憶體設備發送該經編碼的資料。 5、根據任何前述條款之IC,其中該記憶體控制器亦被配置為將該一或多個資料遮罩寫入該記憶體設備中的模式暫存器。 6、根據任何前述條款之IC,其中該記憶體控制器亦被配置為發送辨識符,該辨識符指示該一或多個資料遮罩中的何者用於對被發送給該記憶體設備的資料進行編碼。 7、根據任何前述條款之IC,其中該記憶體控制器亦被配置為決定要被發送的該一或多個資料遮罩。 8、根據條款7之IC,其中該一或多個資料遮罩是基於與要被發送給該記憶體設備的資料中的模式相關聯的集群中心的。 9、根據條款8之IC,其中該記憶體控制器亦被配置為基於要被發送給該記憶體設備的該資料中的位元到現有集群中心的Hamming距離來計算新集群中心。 10、根據條款9之IC,其中該記憶體控制器亦被配置為週期性地計算該等新集群中心。 11、根據條款9之IC,其中該記憶體控制器亦被配置為每六十四個事務計算該等新集群中心。 12、根據條款9之IC,其中該記憶體控制器亦被配置為基於要被發送給該記憶體設備的該資料中的十六位元區塊來計算該等新集群中心。 13、根據任何前述條款之IC,其中該匯流排介面包括低功率雙倍資料速率(LPDDR)匯流排介面。 14、根據任何前述條款之IC,其中該記憶體控制器亦被配置為使用該複數個資料遮罩中的一者來對從該記憶體設備發送的資料進行解碼。 15、根據條款9、13或14中任一項之IC,其中該記憶體控制器亦被配置為基於要被發送給該記憶體設備的該資料中的八位元區塊來計算該等新集群中心。 16、一種積體電路(IC),包括: 匯流排介面,其被配置為耦合到記憶體匯流排;及 記憶體控制器,其耦合到該匯流排介面並且被配置為: 經由該匯流排介面來向記憶體設備發送來自複數個資料遮罩的一或多個資料遮罩,其中該一或多個資料遮罩包括由該記憶體設備用於對要被發送給該記憶體控制器的資料進行編碼的編碼遮罩。 17、一種積體電路(IC),包括: 匯流排介面,其被配置為耦合到記憶體匯流排; 模式暫存器,其包括儲存在其中的複數個資料遮罩;及 編碼電路,其被配置為使用該複數個資料遮罩中的至少一個資料遮罩來對要經由該匯流排介面發送給記憶體控制器的資料進行編碼。 18、一種積體電路(IC),包括: 匯流排介面,其被配置為耦合到記憶體匯流排;及 模式暫存器,其被配置為具有儲存在其中的用於對從記憶體控制器發送的資料進行解碼的一或多個資料遮罩。 Implementation examples are described in the following numbered clauses: 1. An integrated circuit (IC), including: a bus interface configured to be coupled to the memory bus; and A memory controller coupled to the bus interface and configured to: Send one or more data masks from a plurality of data masks to a memory device via the bus interface, wherein the one or more data masks include encoded data to be sent to the memory device. The corresponding mode to use when decoding. 2. An IC according to clause 1, wherein the one or more data masks include differences between the encoded data being decoded by the memory device and the data to be sent to the memory device via the bus interface. Or (XOR) value. 3. The IC of clause 2, wherein the memory controller is also configured to XOR outgoing data with at least one data mask to encode the data to be sent to the memory device. 4. The IC of clause 3, wherein the memory controller is also configured to send the encoded data to the memory device via the bus interface. 5. An IC according to any of the preceding clauses, wherein the memory controller is also configured to write the one or more data masks into a mode register in the memory device. 6. An IC according to any of the preceding clauses, wherein the memory controller is also configured to send an identifier indicating which of the one or more data masks is used for data sent to the memory device Encode. 7. An IC according to any of the preceding clauses, wherein the memory controller is also configured to determine the one or more data masks to be sent. 8. An IC according to clause 7, wherein the one or more data masks are based on cluster centers associated with patterns in data to be sent to the memory device. 9. The IC of clause 8, wherein the memory controller is also configured to calculate a new cluster center based on the Hamming distance of bits in the data to be sent to the memory device to an existing cluster center. 10. The IC of clause 9, wherein the memory controller is also configured to periodically calculate the new cluster centers. 11. The IC of clause 9, wherein the memory controller is also configured to compute the new cluster centers every sixty-four transactions. 12. The IC of clause 9, wherein the memory controller is also configured to calculate the new cluster centers based on sixteen-bit blocks of the data to be sent to the memory device. 13. An IC according to any of the preceding clauses, wherein the bus interface includes a Low Power Double Data Rate (LPDDR) bus interface. 14. An IC according to any preceding clause, wherein the memory controller is also configured to use one of the plurality of data masks to decode data sent from the memory device. 15. An IC according to any one of clauses 9, 13 or 14, wherein the memory controller is also configured to calculate the new data based on eight-bit blocks of the data to be sent to the memory device. cluster center. 16. An integrated circuit (IC), including: a bus interface configured to be coupled to the memory bus; and A memory controller coupled to the bus interface and configured to: Sending one or more data masks from a plurality of data masks to a memory device via the bus interface, wherein the one or more data masks include data used by the memory device to be sent to the memory The controller's data is encoded by the encoding mask. 17. An integrated circuit (IC), including: a bus interface configured to be coupled to the memory bus; A pattern register including a plurality of data masks stored therein; and Encoding circuitry configured to use at least one data mask of the plurality of data masks to encode data to be sent to the memory controller via the bus interface. 18. An integrated circuit (IC), including: a bus interface configured to be coupled to the memory bus; and A mode register configured to have one or more data masks stored therein for decoding data sent from the memory controller.

100:記憶體系統 102:主機 104:記憶體設備 104(1):記憶體設備 104(N):記憶體設備 106:記憶體匯流排 108:神經處理單元 110:GPU和多媒體引擎 112:多核CPU 114:記憶體控制器 116:系統匯流排 118:實體層(PHY) 120:資料線 122:編碼邏輯 124:I/O區塊 126:儲存體 128:資料單元陣列 130:編碼邏輯 132:第一群組 134:中間群組 136:第二群組 140:ECC電路 142:ECC單元 146:模式暫存器 200:行動終端 204:應用處理器 206:大型儲存元件 208:通用快閃儲存(UFS)匯流排 210:顯示器 212:顯示器串列介面(DSI)匯流排 214:相機 216:相機串列介面(CSI)匯流排 218:麥克風 220:揚聲器 222:音訊轉碼器 224:SLIMbus 226:SOUNDWIRE匯流排 228:數據機 230:周邊元件互連(PCI)/PCI快速(PCIe)匯流排 232:SPMI匯流排 234:WLAN IC 236:電源管理積體電路(PMIC) 238:伴隨IC 240:RFIC 242:PCI匯流排 244:PCI匯流排 246:感測器 248:感測器匯流排 250:匯流排 252:天線調諧器 254:開關 256:功率放大器 258:RFFE匯流排 260:ETPS 262:匯流排 264:RFFE系統 300:程序 302:方塊 304:方塊 306:方塊 308:方塊 310:方塊 400:佇列 402(0):集群中心 402(1):集群中心 402(2):集群中心 402(3):集群中心 404:資料區塊 406(0):最小Hamming距離 406(1):最小Hamming距離 406(2):最小Hamming距離 406(3):最小Hamming距離 408:計數器 410:新集群 412(1):元素 412(2):元素 412(3):元素 412(4):元素 412(5):元素 412(6):元素 412(7):元素 412(8):元素 412(9):元素 412(10):元素 412(11):元素 412(12):元素 412(13):元素 412(14):元素 412(15):元素 412(16):元素 100:Memory system 102:Host 104:Memory device 104(1):Memory device 104(N):Memory device 106:Memory bus 108: Neural processing unit 110:GPU and multimedia engine 112:Multi-core CPU 114:Memory controller 116:System bus 118:Physical layer (PHY) 120:Data line 122: Coding logic 124:I/O block 126:Storage body 128:Data unit array 130: Coding logic 132:First group 134:Intermediate group 136:Second group 140:ECC circuit 142:ECC unit 146:Mode register 200:Mobile terminal 204:Application processor 206:Large storage components 208:Universal Flash Storage (UFS) bus 210:Display 212:Display Serial Interface (DSI) bus 214:Camera 216:Camera Serial Interface (CSI) bus 218:Microphone 220: Speaker 222: Audio transcoder 224:SLIMbus 226:SOUNDWIRE bus 228: Modem 230: Peripheral Component Interconnect (PCI)/PCI Express (PCIe) bus 232:SPMI bus 234:WLAN IC 236:Power management integrated circuit (PMIC) 238: Accompanying IC 240:RFIC 242: PCI bus 244: PCI bus 246: Sensor 248: Sensor bus 250:Bus 252:Antenna tuner 254:switch 256:Power amplifier 258:RFFE bus 260:ETPS 262:Bus 264:RFFE system 300:Program 302: Square 304:Block 306: Square 308: Square 310:block 400:queuing 402(0):Cluster center 402(1):Cluster center 402(2):Cluster center 402(3):Cluster center 404:Data block 406(0): Minimum Hamming distance 406(1): Minimum Hamming distance 406(2): Minimum Hamming distance 406(3): Minimum Hamming distance 408: Counter 410:New cluster 412(1):Element 412(2):Element 412(3):Element 412(4):Element 412(5):Element 412(6):Element 412(7):Element 412(8):Element 412(9):Element 412(10):Element 412(11):Element 412(12):Element 412(13):Element 412(14):Element 412(15):Element 412(16):Element

圖1是可以受益於本案內容的自我調整編碼技術的示例性記憶體系統的方塊圖;Figure 1 is a block diagram of an exemplary memory system that could benefit from the self-adjusting encoding techniques described in this case;

圖2是可以包括圖1的記憶體系統的行動終端的方塊圖;FIG. 2 is a block diagram of a mobile terminal that may include the memory system of FIG. 1;

圖3是圖示根據本案內容的示例性態樣的用於對資料傳輸進行自我調整地編碼的示例性程序的流程圖;及3 is a flowchart illustrating an exemplary process for self-adjusting encoding of data transmission in accordance with an exemplary aspect of the subject matter; and

圖4A-圖4F圖示圖3的程序的步驟。Figures 4A-4F illustrate the steps of the procedure of Figure 3.

國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無 Domestic storage information (please note in order of storage institution, date and number) without Overseas storage information (please note in order of storage country, institution, date, and number) without

400:佇列 400:queuing

402(0):集群中心 402(0):Cluster center

402(1):集群中心 402(1):Cluster center

402(2):集群中心 402(2):Cluster center

402(3):集群中心 402(3):Cluster center

404:資料區塊 404:Data block

406(0):最小Hamming距離 406(0): Minimum Hamming distance

406(1):最小Hamming距離 406(1): Minimum Hamming distance

406(2):最小Hamming距離 406(2): Minimum Hamming distance

406(3):最小Hamming距離 406(3): Minimum Hamming distance

Claims (18)

一種積體電路(IC),包括: 一匯流排介面,其被配置為耦合到一記憶體匯流排;及 一記憶體控制器,其耦合到該匯流排介面並且被配置為: 經由該匯流排介面來向一記憶體設備發送來自複數個資料遮罩的一或多個資料遮罩,其中該一或多個資料遮罩包括要在對被發送給該記憶體設備的經編碼的資料進行解碼時使用的相應模式。 An integrated circuit (IC) consisting of: a bus interface configured to be coupled to a memory bus; and A memory controller coupled to the bus interface and configured to: Sending one or more data masks from a plurality of data masks to a memory device via the bus interface, wherein the one or more data masks include information to be used on the encoded data sent to the memory device. The corresponding mode used when decoding the data. 根據請求項1之IC,其中該一或多個資料遮罩包括在該記憶體設備對該經編碼的資料進行解碼時與要經由該匯流排介面發送給該記憶體設備的資料要進行異或(XOR)的值。The IC of claim 1, wherein the one or more data masks include XORing data to be sent to the memory device via the bus interface when the memory device decodes the encoded data. (XOR) value. 根據請求項2之IC,其中該記憶體控制器亦被配置為將傳出資料與至少一個資料遮罩進行XOR以對要被發送給該記憶體設備的該資料進行編碼。The IC of claim 2, wherein the memory controller is also configured to XOR outgoing data with at least one data mask to encode the data to be sent to the memory device. 根據請求項3之IC,其中該記憶體控制器亦被配置為經由該匯流排介面來向該記憶體設備發送該經編碼的資料。The IC of claim 3, wherein the memory controller is also configured to send the encoded data to the memory device via the bus interface. 根據請求項1之IC,其中該記憶體控制器亦被配置為將該一或多個資料遮罩寫入該記憶體設備中的一模式暫存器。The IC of claim 1, wherein the memory controller is also configured to write the one or more data masks into a mode register in the memory device. 根據請求項1之IC,其中該記憶體控制器亦被配置為發送一辨識符,該辨識符指示該一或多個資料遮罩中的何者用於對被發送給該記憶體設備的資料進行編碼。The IC of claim 1, wherein the memory controller is also configured to send an identifier indicating which of the one or more data masks is used to perform processing on data sent to the memory device. Encoding. 根據請求項1之IC,其中該記憶體控制器亦被配置為決定要被發送的該一或多個資料遮罩。The IC of claim 1, wherein the memory controller is also configured to determine the one or more data masks to be sent. 根據請求項7之IC,其中該一或多個資料遮罩是基於與要被發送給該記憶體設備的資料中的模式相關聯的集群中心的。The IC of claim 7, wherein the one or more data masks are based on cluster centers associated with patterns in data to be sent to the memory device. 根據請求項8之IC,其中該記憶體控制器亦被配置為基於要被發送給該記憶體設備的該資料中的位元到現有集群中心的一Hamming距離來計算新集群中心。The IC of claim 8, wherein the memory controller is also configured to calculate a new cluster center based on a Hamming distance of bits in the data to be sent to the memory device to an existing cluster center. 根據請求項9之IC,其中該記憶體控制器亦被配置為週期性地計算該等新集群中心。The IC of claim 9, wherein the memory controller is also configured to periodically calculate the new cluster centers. 根據請求項9之IC,其中該記憶體控制器亦被配置為每六十四個事務計算該等新集群中心。The IC of claim 9, wherein the memory controller is also configured to compute the new cluster centers every sixty-four transactions. 根據請求項9之IC,其中該記憶體控制器亦被配置為基於要被發送給該記憶體設備的該資料中的十六位元區塊來計算該等新集群中心。The IC of claim 9, wherein the memory controller is also configured to calculate the new cluster centers based on sixteen-bit chunks of the data to be sent to the memory device. 根據請求項1之IC,其中該匯流排介面包括一低功率雙倍資料速率(LPDDR)匯流排介面。The IC of claim 1, wherein the bus interface includes a low power double data rate (LPDDR) bus interface. 根據請求項1之IC,其中該記憶體控制器亦被配置為使用該複數個資料遮罩中的一者來對從該記憶體設備發送的資料進行解碼。The IC of claim 1, wherein the memory controller is also configured to use one of the plurality of data masks to decode data sent from the memory device. 根據請求項9之IC,其中該記憶體控制器亦被配置為基於要被發送給該記憶體設備的該資料中的八位元區塊來計算該等新集群中心。The IC of claim 9, wherein the memory controller is also configured to calculate the new cluster centers based on octets in the data to be sent to the memory device. 一種積體電路(IC),包括: 一匯流排介面,其被配置為耦合到一記憶體匯流排;及 一記憶體控制器,其耦合到該匯流排介面並且被配置為: 經由該匯流排介面來向一記憶體設備發送來自複數個資料遮罩的一或多個資料遮罩,其中該一或多個資料遮罩包括由該記憶體設備用於對要被發送給該記憶體控制器的資料進行編碼的一編碼遮罩。 An integrated circuit (IC) consisting of: a bus interface configured to be coupled to a memory bus; and A memory controller coupled to the bus interface and configured to: Send one or more data masks from a plurality of data masks to a memory device via the bus interface, wherein the one or more data masks include data used by the memory device to be sent to the memory. An encoding mask for encoding body controller data. 一種積體電路(IC),包括: 一匯流排介面,其被配置為耦合到一記憶體匯流排; 一模式暫存器,其包括儲存在其中的複數個資料遮罩;及 一編碼電路,其被配置為使用該複數個資料遮罩中的至少一個資料遮罩來對要經由該匯流排介面發送給一記憶體控制器的資料進行編碼。 An integrated circuit (IC) consisting of: a bus interface configured to be coupled to a memory bus; a pattern register including a plurality of data masks stored therein; and An encoding circuit configured to use at least one data mask of the plurality of data masks to encode data to be sent to a memory controller via the bus interface. 一種積體電路(IC),包括: 一匯流排介面,其被配置為耦合到一記憶體匯流排;及 一模式暫存器,其被配置為具有儲存在其中的用於對從一記憶體控制器發送的資料進行解碼的一或多個資料遮罩。 An integrated circuit (IC) consisting of: a bus interface configured to be coupled to a memory bus; and A mode register configured to have one or more data masks stored therein for decoding data sent from a memory controller.
TW112111744A 2022-04-28 2023-03-28 Adaptive data encoding for memory systems TW202347111A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202217661084A 2022-04-28 2022-04-28
US17/661,084 2022-04-28

Publications (1)

Publication Number Publication Date
TW202347111A true TW202347111A (en) 2023-12-01

Family

ID=86185171

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112111744A TW202347111A (en) 2022-04-28 2023-03-28 Adaptive data encoding for memory systems

Country Status (2)

Country Link
TW (1) TW202347111A (en)
WO (1) WO2023211613A1 (en)

Also Published As

Publication number Publication date
WO2023211613A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
EP3704591B1 (en) Write credits management for non-volatile memory
EP3822802B1 (en) Ordered sets for high-speed interconnects
US8638241B2 (en) 8b/9b decoding for reducing crosstalk on a high speed parallel bus
KR102420909B1 (en) Power Saving Techniques for Memory Systems
US20190324850A1 (en) Dynamic link error protection in memory systems
US20150026509A1 (en) Storage device having a data stream converter
TW201640359A (en) N-base numbers to physical wire states symbols translation method
US20220083435A1 (en) Data backup and recovery method for nvdimm, nvdimm controller and nvdimm
TW202221519A (en) Sideband signaling in a peripheral component interconnect (pci) express (pcie) link
CN114141285A (en) Memory device, operating method of memory device, and memory system
TW202347111A (en) Adaptive data encoding for memory systems
US9390775B2 (en) Reference voltage setting circuit and method for data channel in memory system
US20140331006A1 (en) Semiconductor memory devices
US20160299869A1 (en) Transition-minimized low speed data transfer
US10838901B1 (en) System and method for a reconfigurable controller bridge chip
KR20160008386A (en) Pulse width modulation data recovery device and driving method thereof
KR101841382B1 (en) Systems and methods for frequency control on a bus through superposition
US20230170037A1 (en) Hybrid memory system with increased bandwidth
TW202322575A (en) Data re-encoding for energy-efficient data transfer in a computing device
US9864540B2 (en) Interface circuit for communication, and system including the same
KR20140131849A (en) Semiconductor memory device and memory system including the same
US20190065431A1 (en) Providing zero-overhead frame synchronization using synchronization strobe polarity for soundwire extension buses