TWI467381B - Method, apparatus and system for reducing memory latency - Google Patents

Method, apparatus and system for reducing memory latency Download PDF

Info

Publication number
TWI467381B
TWI467381B TW98136752A TW98136752A TWI467381B TW I467381 B TWI467381 B TW I467381B TW 98136752 A TW98136752 A TW 98136752A TW 98136752 A TW98136752 A TW 98136752A TW I467381 B TWI467381 B TW I467381B
Authority
TW
Taiwan
Prior art keywords
memory
instruction
data
memory latency
reducing memory
Prior art date
Application number
TW98136752A
Other languages
Chinese (zh)
Other versions
TW201019120A (en
Inventor
Alan Ruberg
Seung-Jong Lee
Hyung Rok Lee
Daeyun Shim
Dongyun Lee
Sungjoon Kim
Anu Murthy
Original Assignee
Silicon Image Inc
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 Silicon Image Inc filed Critical Silicon Image Inc
Publication of TW201019120A publication Critical patent/TW201019120A/en
Application granted granted Critical
Publication of TWI467381B publication Critical patent/TWI467381B/en

Links

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Description

用於降低記憶體潛時之方法、裝置及系統Method, device and system for reducing memory latency

本發明之實施例大致上是關於電腦記憶體之領域,更特定而言是針對串列埠記憶體溝通潛時及可靠度之改良。Embodiments of the present invention generally relate to the field of computer memory, and more particularly to improvements in serial communication memory latency and reliability.

在使用高速串列介面之記憶體系統中,一主機(譬如系統整合晶片、電腦、圖形控制器或其他等)或複數個主機及記憶體之間係經由各埠以傳輸指令及資料,其被期望能提供最大頻寬並結合錯誤偵測,以確保正常的系統運作。In a memory system using a high-speed serial interface, a host (such as a system integrated chip, a computer, a graphics controller, or the like) or a plurality of hosts and memories are transmitted between the host and the memory to transmit instructions and data. Expect to provide maximum bandwidth combined with error detection to ensure proper system operation.

串列連接(Serial Link)具有固有之潛時(Latency),因為其一次僅傳送一位元。此外,串列化及解串列化步驟將產生額外之潛時。分別使用這些埠並不能明顯改善潛時,因此利用一種特殊的存取方法(譬如從各埠存取不同的、專用的記憶體區域,譬如串化存取(Striped Accesses))來改善頻寬。藉由啟動埠連結(Port Binding)(利用一致的多個埠),記憶體潛時可藉由包含許多位元之資料同時傳送而降低,其增加頻寬而無需格式化的存取方法。Serial Link has an inherent Latency because it only transmits one bit at a time. In addition, the serialization and deserialization steps will create additional latency. The use of these tricks alone does not significantly improve the latency, so a special access method (such as accessing different, dedicated memory regions, such as Striped Accesses) from various ports to improve bandwidth. By initiating Port Binding (using a consistent number of ports), the memory latency can be reduced by simultaneously transmitting data containing many bits, which increases the bandwidth without the need for a formatted access method.

記憶體亦需要一定量的資料安全性。舉例而言,在一串列通道中,除非利用會導致不可接受潛時之方法,否則其可能發生無法偵測之錯誤。在一種連結埠之情況中,某些埠在指令期中仍處於閒置。在那些相同的期間中,未使用的頻寬係填滿了重複的指令。此方法可利用時間性重複而延伸至單一埠,以提供埠構造之特色。Memory also requires a certain amount of data security. For example, in a series of channels, an undetectable error may occur unless a method that results in unacceptable latency is utilized. In the case of a link, some defects are still idle during the command period. In those same periods, the unused bandwidth is filled with repeated instructions. This method can be extended to a single 埠 with temporal repetition to provide the characteristics of the 埠 structure.

圖一顯示一種習知串列位元配置100,依EIA標準RS-232-C。在圖中,其資料之串列傳送係相似於一種RS-232連接,其中藉由對其逐個輪流觀察並指定其於值124中不同之意義,各別的二位元值(位元)102至118可被組合為整體值124。舉例而言,若其第一位元為104,且被指定為值124中最大有效位元(Most Significant Bit,MSB),接著是第二位元106及其他等等(譬如位元108、110、112、114及116等),直到最小有效位元(Least Significant Bit,LSB)填入了最後一溝通之位元118。在此例中之組合值被稱為框(Frame)128,其包含值124及停止及開始位元102及120。此外,框128係利用了額外位元加以描述,稱為成框位元(Framing Bits)126,其包含開始位元120及停止位元122,使接收器可用以尋找框128的開始,並可確認預期中框何時到達。在其他架構中,即使當發送器及接收器間資料速率有些微不同或改變時,亦可利用成框位元126以利接收器可靠地尋找個別位元。Figure 1 shows a conventional serial bit configuration 100, according to the EIA standard RS-232-C. In the figure, the serial transmission of the data is similar to an RS-232 connection, in which the individual two-bit values (bits) 102 are observed by taking turns to observe them one by one and assigning them different values in the value 124. Up to 118 can be combined into an overall value of 124. For example, if its first bit is 104 and is specified as the Most Significant Bit (MSB) of the value 124, then the second bit 106 and others, etc. (such as the bit 108, 110) , 112, 114, and 116, etc., until the Least Significant Bit (LSB) is filled in the last communication bit 118. The combined value in this example is referred to as a frame 128, which contains a value 124 and stop and start bits 102 and 120. In addition, block 128 is described with additional bits, referred to as Framing Bits 126, which includes start bit 120 and stop bit 122, making the receiver available to find the beginning of block 128, and Confirm when the expected frame arrives. In other architectures, even when the data rate between the transmitter and the receiver is slightly different or changed, the framed bit 126 can be utilized to facilitate the receiver to reliably look for individual bits.

跨越各串列連結對記憶體之溝通將引起大幅潛時,且提供超過一個主機存取一單一記憶體將引起記憶體資源之複雜化。此外,記憶體可能具有一或多埠,各包含一串列發送器、一串列接收器及相關電路以改善潛時及頻寬。在一連結埠的情況(Bound Port Situation)中,某些埠在指令期間仍為閒置。在同樣時期中,未使用之頻寬將填滿了空間性重複之指令,且此方法可利用在不同時期中之時間重複性以延伸至單一埠,以提供所有埠構造之特色。在一連結埠的情況中,資料係傳送於多埠,但是指令必須能獨立運行。首先,未使用之埠可能包含重複的指令(Command Duplicates)。第二,某些指令可能發布於相同時間。此外,因為對於錯誤管理之串列化、解串列化、使資料成框,以及譬如同步化之額外步驟,因此串列溝通增加潛時於平行溝通。Communication across the various serial links to the memory will cause significant latency, and providing more than one host access to a single memory will complicate the memory resources. In addition, the memory may have one or more ports, each including a serial transmitter, a serial receiver, and associated circuitry to improve latency and bandwidth. In the case of Bound Port Situation, some defects are still idle during the instruction. In the same period, the unused bandwidth will be filled with spatially repeated instructions, and this method can be extended to a single 利用 with time reproducibility over different periods to provide all the features of the 埠 construction. In the case of a link, the data is transmitted in multiples, but the instructions must be able to run independently. First, unused commands may contain duplicate commands (Command Duplicates). Second, some instructions may be posted at the same time. In addition, because of the serialization of error management, deserialization, framed data, and additional steps such as synchronization, tandem communication increases latency in parallel communication.

因此,業界需要導入及實施能減少記憶體潛時之技術。Therefore, the industry needs to introduce and implement technologies that reduce memory latency.

本發明揭露一種用於改善埠記憶體溝通潛時及可靠度之方法、裝置及系統。The invention discloses a method, device and system for improving the communication latency and reliability of the memory.

在一實施例中,本發明提供一種用於降低記憶體潛時之方法,包含於一主機電腦系統及一記憶體之間經由位於所述記憶體之一埠或一組埠於多時間間隔溝通資料,其中所述主機電腦系統係耦合於所述記憶體,所述埠為所述組埠之一;及於所述主機電腦系統及所述記憶體之間經由所述埠或所述組埠於一單一時間間隔溝通相關於所述資料之一指令。In one embodiment, the present invention provides a method for reducing memory latency, comprising communicating between a host computer system and a memory via a time interval of one or more of the memories. Information, wherein the host computer system is coupled to the memory, the UI is one of the group; and between the host computer system and the memory via the UI or the group Communicating instructions related to one of the materials at a single time interval.

在一實施例中,本發明提供一種用於降低記憶體潛時之裝置,包含一主機電腦系統,耦合至一記憶體,所述記憶體經由位於所述記憶體之一埠或一組埠於多時間間隔從所述主機電腦系統接收資料,所述埠為所述組埠之一;及其中所述記憶體係經過修改,以經由所述埠或所述組埠於一單一時間間隔從所述主機電腦系統接收相關於所述資料之一指令。In one embodiment, the present invention provides an apparatus for reducing memory latency, comprising a host computer system coupled to a memory, the memory being located via one or a group of the memory Receiving data from the host computer system at a plurality of time intervals, the 埠 being one of the groups; and wherein the memory system is modified to pass from the 埠 or the group at a single time interval from the The host computer system receives an instruction related to one of the materials.

在一實施例中,本發明提供一種用於降低記憶體潛時之系統,包含一主機電腦系統,耦合於一記憶體,所述記憶體使用一埠連結系統以降低記憶體潛時,所述埠連結系統包含複數個埠以溝通資料及指令,其中所述複數個埠之二或以上之埠係可被連結為一或多組埠,所述埠連結系統係用以:經由位於所述記憶體之一埠或一組埠於多時間間隔而於所述主機電腦系統及所述記憶體之間溝通資料,所述埠係為所述組埠之一;及經由所述埠或所述組埠於一單一時間間隔於所述主機電腦系統及所述記憶體之間溝通相關於所述資料之一指令。In one embodiment, the present invention provides a system for reducing memory latency, comprising a host computer system coupled to a memory, the memory using a connection system to reduce memory latency, The 埠 link system includes a plurality of 埠 to communicate data and instructions, wherein the plurality of 埠 two or more 可 can be linked into one or more sets of 埠, the 埠 link system is used to: via the memory One or a plurality of time intervals for communicating data between the host computer system and the memory, the lanthanum being one of the group; and via the 埠 or the group Communicating an instruction related to the data between the host computer system and the memory at a single time interval.

本發明之實施例大致上是關於串列埠記憶體溝通潛時及可靠度之改良,然而,其同樣可應用於其他形式之介面,譬如高速並列介面(High-Speed Parallel)。Embodiments of the present invention generally relate to improvements in serial communication memory latency and reliability, however, they are equally applicable to other forms of interface, such as High-Speed Parallel.

此中所述之「記憶體(Memory)」係意指在電腦系統(譬如圖二D及二E)中之一元件,其負責擷取先前儲存之資料,以使用於任何「主機(Host)」(譬如一電腦處理器)或週邊(譬如鍵盤、顯示器、攝像機、大量儲存裝置(磁碟、光碟、磁帶及其他等)、網路控制器、或無線網路)。一般而言,記憶體係耦合於一或多個在電腦系統中處理資料之微處理器。資料可藉由一主機而儲存於記憶體中,譬如於隨機存取記憶體(RAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、快閃記憶體(Flash)、可程式唯讀記憶體(PROM)、可抹除可程式化唯讀記憶體(EPROM)、電子可抹除可程式化唯讀記憶體(EEPROM)或譬如預先決定的唯讀記憶體(ROM)。主機可經由一匯流排(譬如PCI)或經由中間記憶體控制器以直接地存取記憶體。對記憶體之串列存取牽涉到單一序列電子訊號經過單一電路之行進及往返一記憶體(相似於圖一中所示之RS-232)之有意義指令及資料間之轉換。執行轉換之電路稱為「埠(Port)」。The term "memory" as used herein means a component in a computer system (see Figures 2D and 2E) that is responsible for extracting previously stored data for use in any Host. (such as a computer processor) or peripherals (such as a keyboard, monitor, video camera, mass storage device (disk, CD, tape, etc.), network controller, or wireless network). In general, a memory system is coupled to one or more microprocessors that process data in a computer system. The data can be stored in a memory by a host, such as random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), flash memory (Flash). ), Programmable Read Only Memory (PROM), Erasable Programmable Read Only Memory (EPROM), Electronically Erasable Programmable Read Only Memory (EEPROM) or, for example, pre-determined read-only memory ( ROM). The host can access the memory directly via a bus (such as PCI) or via an intermediate memory controller. Serial access to memory involves the conversion of a single sequence of electronic signals through a single circuit and the conversion of meaningful instructions and data to and from a memory (similar to the RS-232 shown in Figure 1). The circuit that performs the conversion is called "Port".

在一實施例中,為了減少記憶體之潛時,因此利用一種遮罩機制(Masking Scheme),使得指令及資料之寫入可不需在相同溝通框(Communication Frame)中包含遮蔽資訊而加以描述,以降低框中之位元數及潛時。此外,為了降低潛時因此提供一種基於記憶體之協定,以降低更短之框大小之潛時,以提供相對於舊有的動態隨機存取記憶體協定而言更大之彈性,並減少增加頻寬時指令組之改變。In an embodiment, in order to reduce the latency of the memory, a Masking Scheme is used, so that the writing of instructions and data can be described without including the masking information in the same Communication Frame. To reduce the number of bits and latency in the box. In addition, in order to reduce latency, a memory-based protocol is provided to reduce the latency of shorter frame sizes to provide greater flexibility and reduce the increase over the old DRAM protocol. The instruction group changes when the bandwidth is wide.

圖二A顯示一種單一主機連結埠記憶體200之實施例。實施例圖中連結埠記憶體200包含一記憶體核心202(譬如DRAM或快閃記憶體),其包含多記憶庫(Bank)(譬如八庫),且相連於連結埠記憶體200之連結埠記憶體系統204。記憶體核心202之記憶庫係溝通於多埠,譬如四埠206至212。所有四埠206至212一起運作以提供介面至具有可變頻寬之單一主機。這些記憶庫係獨立地使用,譬如同時從一記憶庫讀取並從另一記憶庫寫入。記憶體核心202亦可包含一記憶體讀取匯流排以讀取資料,及一記憶體寫入匯流排以寫入資料。然而,在記憶體核心202中可能具有一單一連接可讀取並且寫入資料。此外,連結埠記憶體系統204包含一連結多工器264及一連結解多工器262,將分別描述於圖二K及二I。FIG. 2A shows an embodiment of a single host interface memory 200. In the embodiment, the link memory 200 includes a memory core 202 (such as DRAM or flash memory), which includes a plurality of banks (such as eight banks) and is connected to the link of the memory port 200. Memory system 204. The memory of the memory core 202 is communicated in many ways, such as four 206 to 212. All four 206 to 212 operate together to provide an interface to a single host with a variable frequency. These memories are used independently, such as reading from one memory and writing from another memory at the same time. The memory core 202 can also include a memory read bus to read data and a memory write bus to write data. However, there may be a single connection in memory core 202 that can read and write data. In addition, the link memory system 204 includes a link multiplexer 264 and a linker multiplexer 262, which will be described in FIG. 2K and II, respectively.

在習知技術中,所有指令及資料位元之傳送係立刻傳送於各平行線路,其同時到達於編碼形成時。然而,當速度變快時,流經這些各線路之資料可能不正確地或於錯誤的時間被取樣(譬如使用相關時脈訊號)。為了解決高速取樣問題,因此利用一種自取樣串列訊號(譬如圖一之RS-232)。然而,平行方法將使潛時增加,因為其資料係依時處理。在一實施例中,對於串列埠與記憶體溝通之溝通潛時及可靠度係利用了多串列介面或埠之編組及重複指令(Duplicating Commands),其可為接連地或時間性地,亦或於多埠間之相同時間或空間性地。在此中說明了此技術之實施例,並利用單一主機埠連結之埠記憶體200加以實施。In the prior art, the transmission of all instructions and data bits is immediately transmitted to each parallel line, which simultaneously arrives at the time of code formation. However, as the speed gets faster, the data flowing through these lines may be sampled incorrectly or at the wrong time (for example, using the relevant clock signal). In order to solve the high-speed sampling problem, a self-sampling serial signal is used (譬 RS-232 as shown in Fig. 1). However, the parallel approach will increase the latency as its data is processed on time. In one embodiment, the communication latency and reliability of the serial port and the memory communication utilizes a plurality of serial interfaces or groups of Duplicating Commands, which may be consecutively or temporally. Or at the same time or in space. Embodiments of the technology are described herein and implemented using a single host-connected memory 200.

在一實施例中,一發送器(Tx)可將十六位元之平行資料轉換為一種串列位元串流,並傳送此單一位元串流。而一接收器(Receiver,Rx)可接收十六位元單一串流,並將其轉換為一種平行串流。在此例中,一區域記憶體可為三十二位元寬且於大約相同之速率。在圖中之埠記憶體200中,係利用四埠206至212,因此四埠206至212間各通道具有一種一百二十八位元資料運動,隨著一種六十四位元之資料串流(譬如,十六位元乘上四埠等於各通道六十四位元)。此一百二十八位元運動係由晶片中必要電路所支援。In one embodiment, a transmitter (Tx) can convert sixteen bit parallel data into a serial bit stream and transmit the single bit stream. A receiver (Receiver, Rx) can receive a sixteen-bit single stream and convert it into a parallel stream. In this example, a region of memory can be thirty-two bits wide and at about the same rate. In the memory 200 of the figure, four cells 206 to 212 are used, so each channel between 206 and 212 has a 128-bit data motion, along with a data string of sixty-four bits. Stream (for example, sixteen bits multiplied by four turns equals sixty-four bits for each channel). This one hundred and twenty-eight-bit motion system is supported by the necessary circuitry in the chip.

不同於習知技術,實施例中各埠206至212利用一種串化器/解串器以於一較快之速率對資料串流進行串列化及解串列化。舉例而言,可利用一鎖相迴路(Phase Locked Loop,PLL)(譬如圖中244)以將一輸入時脈乘以較高之速率,以匹配用於取樣各位元之輸入資料速率。雖然資料串流到達埠206至212之時間可能稍有不同,其可使這些資料串流流動更快。換言之,各串流係以相同速度並快更多的速率而流動(即各資料串流可與其他資料串流以相同之速率流動;然而,各資料串流可被設定為較其先前之流動速率更快)。此外,各位元之時序可能並非完全完美,但並不需要對準這些位元,因為這些位元的實際到達時間並不造成影響。因此,並非於接腳(Pin)處對各位元同步,取而代之在各埠206至212中解串化之後對這些位元同步。舉例而言,如同星號230至236所示。同樣地,在解串化這些埠206至212之後,位於或接近這些星號230至236之資料位元之流速相較於高速外部記憶體介面214至228(分別表示Tx0、Tx1、Tx2、Tx3、Rx0、Rx1、Rx2及Rx3)(譬如兩百五十皮秒)而言可能慢上二十倍(譬如五奈秒)。在一實施例中,這些埠206至212能夠進行相位偵測、資料位元管理、資料位元取樣及通道對準(Lane Alignment)等。Different from the prior art, each of the ports 206 to 212 in the embodiment utilizes a serializer/deserializer to serialize and deserialize the data stream at a faster rate. For example, a Phase Locked Loop (PLL) (譬 244) can be utilized to multiply an input clock by a higher rate to match the input data rate used to sample the bits. Although the time at which the data stream arrives at 埠206 to 212 may be slightly different, it can make these data streams flow faster. In other words, each stream flows at the same speed and at a much faster rate (ie, each data stream can flow at the same rate as other data streams; however, each data stream can be set to flow earlier than it. The rate is faster). In addition, the timing of the elements may not be perfect, but it is not necessary to align these bits because the actual arrival time of these bits does not affect. Therefore, instead of synchronizing the bits at the pin, the bits are synchronized after deserialization in each of the ports 206 to 212. For example, as indicated by asterisks 230 through 236. Similarly, after deserializing these turns 206 to 212, the flow rates of the data bits at or near these asterisks 230 through 236 are compared to the high speed external memory interfaces 214 through 228 (representing Tx0, Tx1, Tx2, Tx3, respectively). Rx0, Rx1, Rx2, and Rx3) (for example, two hundred and fifty picoseconds) may be twenty times slower (e.g., five nanoseconds). In one embodiment, the ports 206 to 212 are capable of phase detection, data bit management, data bit sampling, and lane alignment.

指令解讀器248繼續處理指令,根據通道構形(進一步描述於圖二C、七C及七D中)之附屬/密切相關之指令。Instruction interpreter 248 continues to process instructions in accordance with the associated/closely related instructions of the channel configuration (further described in Figures 2C, 7C, and 7D).

其中240表示PLE訊號、242表示/LPD訊號、246表示REFCLK訊號、250表示模式暫存器、250表示指令訊號、252表示三角、258表示庫訊號及260表示遮罩訊號。240 denotes PLE signal, 242 denotes /LPD signal, 246 denotes REFCLK signal, 250 denotes mode register, 250 denotes command signal, 252 denotes triangle, 258 denotes library signal and 260 denotes mask signal.

圖二B顯示四埠記憶體200之一種單一主機連結270之實施例。實施例圖中表示記憶體200與一主機271之連接270。主機271一次作出一讀取及一寫入之運作。串列埠記憶體技術(Serial Port Memory Technology,SPMT)將分組埠一起定義,以形成寬廣之資料溝通。而在一連結群組中可以動態地選擇埠206至212之數目。舉例而言,可利用單一埠或任何數量之埠(譬如二的次方之數量)來結合以提供埠206至212。當使用較少埠時,將使用較少之接腳及較少之電力。當使用較多埠時,將增加頻寬並使得獲得同樣資料之潛時減少。其中連結埠之數量可隨時改變。FIG. 2B shows an embodiment of a single host link 270 of four memory 200. The connection 270 of the memory 200 to a host 271 is shown in the embodiment. The host 271 performs a read and a write operation at a time. Serial Port Memory Technology (SPMT) defines groupings together to form a broad data communication. The number of 埠206 to 212 can be dynamically selected in a link group. For example, a single 埠 or any number of enthalpy (such as the number of powers of two) may be combined to provide 埠 206 to 212. When fewer turns are used, fewer pins and less power will be used. When more 埠 is used, the bandwidth is increased and the latency to obtain the same data is reduced. The number of links can be changed at any time.

圖二C顯示用於單一主機介面之埠連結選擇275之實施例。其中276表示一埠(可提供十六位元存取及單一指令)、277表示二埠(可提供三十二位元資料存取及三十二位元指令或指令重複),及278表示四或多埠(可提供六十四位元資料存取及同時之三十二位元指令及重複)。當連結二或以上之埠277及278時,資料將傳遞於群組中所有埠上,並有效地乘以資料頻寬。然而,個別指令可能僅需要一埠,留下其餘之埠未使用。因此為了避免浪費頻寬、改善記憶體運作及儲存指令頻寬,因此提供一組密切相關之指令或附屬指令(Adjunct Command)。這些指令可正確使用額外頻寬,使其不致浪費,且如此密切相關/附屬指令可發布於一指令之前或之後,並可與其餘埠同時發布。舉例而言,當發布一現行指令(Active Command,ACT)時,可同時發布現行庫指令(Active Bank Command,ABNK)作為附屬,以完成指令。相似地,附屬寫入遮罩指令(Write Mask Command,WMSK)可同時伴隨一寫入指令(Write Command,WR)。在埠0處可接受所有指令,但相關之附屬指令可由其他埠接收,以保留指令頻寬。指令ACT、ABNK、WR及WMSK係更進一步描述於圖七B至七D中,以作為參考。Figure 2C shows an embodiment of a connection selection 275 for a single host interface. 276 denotes one (available for sixteen-bit access and a single instruction), 277 for two (a 32-bit data access and 32-bit instruction or instruction repetition), and 278 for four Or more (available for 64-bit data access and 32-bit instructions and repetitions at the same time). When two or more links 277 and 278 are linked, the data is passed to all the cells in the group and effectively multiplied by the data bandwidth. However, individual instructions may only need one 埠, leaving the rest unused. Therefore, in order to avoid wasting bandwidth, improving memory operation and storing instruction bandwidth, a set of closely related instructions or accompanying instructions (Adjunct Command) is provided. These instructions correctly use the extra bandwidth so that it is not wasted, and such closely related/affiliated instructions can be posted before or after an instruction and can be issued simultaneously with the rest. For example, when an Active Command (ACT) is issued, the current library command (Active Bank Command, ABNK) can be simultaneously issued as an attachment to complete the instruction. Similarly, a Write Mask Command (WMSK) can be accompanied by a Write Command (WR). All instructions are accepted at 埠0, but related dependent instructions can be received by other 埠 to preserve the instruction bandwidth. The commands ACT, ABNK, WR, and WMSK are further described in Figures 7B through 7D for reference.

此外,一種單一選項可啟動指令之重複,以改善錯誤偵測,以從不正常之記憶體運作狀態中避免錯誤之指令。當啟動此選項時,一單一埠將對於在第一框中之一指令與後續框之重複(Duplicate)進行比較。當連結及使用二或以上之埠277及278時,對於重複而言並不需使用額外之頻寬,因為重複係於相同時間顯示於另一埠。雖然指令被重複,但在此實施例中資料並未重複。當具有至少四連結埠278時,將可能同時使用重複及附屬指令。In addition, a single option can initiate a repetition of instructions to improve error detection to avoid erroneous instructions from abnormal memory operating conditions. When this option is enabled, a single 埠 will be compared to Duplicate for one of the instructions in the first box and the subsequent box. When two or more 埠 277 and 278 are linked and used, no additional bandwidth is required for repetition because the repetition is displayed at the same time at the same time. Although the instructions are repeated, the material is not repeated in this embodiment. When there are at least four links 278, it will be possible to use both repeat and attached instructions.

圖二D顯示一種智慧型行動電話架構280之實施例,其包含一基頻處理器282及一應用處理器281,及個別的揮發性記憶體(譬如DRAM 274、SRAM/DRAM 283)、非揮發性記憶體(譬如NAND 272及NOR快閃273)及溝通通道(分享記憶體)269位於兩處理器281及282之間。記憶體272至274及283係用以儲存及接收可執行程式碼及相關於連接之處理器未分享之維持隱密性資料。任何的分享或溝通係藉由溝通通道269加以執行。應用處理器281可耦合於其他週邊裝置,譬如攝像機201及顯示裝置203。Figure 2D shows an embodiment of a smart mobile phone architecture 280 comprising a baseband processor 282 and an application processor 281, and individual volatile memory (e.g., DRAM 274, SRAM/DRAM 283), non-volatile Sex memory (such as NAND 272 and NOR flash 273) and communication channel (shared memory) 269 are located between the two processors 281 and 282. Memory 272 to 274 and 283 are used to store and receive executable code and maintain privacy information that is not shared by the connected processor. Any sharing or communication is performed by communication channel 269. The application processor 281 can be coupled to other peripheral devices such as the camera 201 and the display device 203.

圖二E顯示對於圖二D之選擇實施例之一種智慧型行動電話架構284,其包含SPDRAM 285。在一實施例中,記憶體被分享於基頻處理器282及應用處理器281之間。在一實施例中,SPDRAM 285可用以溝通基頻處理器282及應用處理器281、用於兩處理器之儲存程式碼及資料,及減少需用以實施此架構之記憶元件或技術數量。此外,可減少記憶體及處理器之間的連結數量,包含排除特定之溝通通道。在一實施例中提供了區隔,使得一些主機可存取部分記憶體而另一些則不可。這使得記憶體裝置可分享於安全環境,譬如對於基頻軟體。舉例而言,應用處理器281可將基頻軟體影像載入SPDRAM 285中,並指示基頻處理器282其影像已就位。接著基頻處理器282將移除對其他主機之存取,並確認此影像之有效性。若其正確,基頻處理器282可自影像繼續運作,而不需與運行於應用處理器281之軟體有所分裂。Figure 2E shows a smart mobile phone architecture 284 for the selected embodiment of Figure 2D, which includes SPDRAM 285. In one embodiment, the memory is shared between the baseband processor 282 and the application processor 281. In one embodiment, SPDRAM 285 can be used to communicate baseband processor 282 and application processor 281, store code and data for both processors, and reduce the number of memory elements or technologies needed to implement the architecture. In addition, the number of connections between the memory and the processor can be reduced, including the exclusion of specific communication channels. In one embodiment, a segmentation is provided such that some hosts have access to some of the memory while others are not. This allows the memory device to be shared in a secure environment, such as for a baseband software. For example, the application processor 281 can load the baseband software image into the SPDRAM 285 and instruct the baseband processor 282 that its image is in place. The baseband processor 282 will then remove access to other hosts and confirm the validity of this image. If it is correct, the baseband processor 282 can continue to operate from the image without having to split with the software running on the application processor 281.

圖二F顯示多主機連結構形286、287及288之實施例。在一實施例中,可利用多主機功能結合多埠連結。舉例而言,若一主機(譬如一應用處理器281)需要更多頻寬,其可利用其介面之許多連結埠,而其他主機可繼續使用單一埠。在實施例圖中提供在一種四埠裝置上連結許多主機之一些組合286(二獨立主機、雙埠/各主機)、287(二獨立主機、主機1:單一埠、主機2:雙埠)及288(四獨立主機、每埠一主機)。舉例而言,在組合286中,主機1及2之介面係分別對應於兩埠。在組合287中,主機1之介面係對應於埠0,而主機2之介面對應於兩埠2及3。在組合288中,各主機之介面對應於一單一埠。可理解實施例中可提供主機埠連結或介面之任意組合,譬如一單一主機可一起連結全部四個埠。何埠實際上對應於何主機則可視暫存器之設定而定,其給予連結埠群組之長度。Figure 2F shows an embodiment of a multi-master connection configuration 286, 287, and 288. In an embodiment, multiple host functions may be utilized in conjunction with multiple connections. For example, if a host (such as an application processor 281) requires more bandwidth, it can utilize many of its interfaces, while other hosts can continue to use a single port. In the embodiment diagram, some combinations 286 (two independent hosts, dual/hosts), 287 (two independent hosts, host 1: single port, host 2: double ports) connecting a plurality of hosts on a four-inch device are provided. 288 (four independent hosts, one host per host). For example, in combination 286, the interfaces of hosts 1 and 2 correspond to two turns, respectively. In combination 287, the interface of host 1 corresponds to 埠0, and the interface of host 2 corresponds to two 埠 2 and 3. In combination 288, the interface of each host corresponds to a single frame. It can be understood that any combination of host connections or interfaces can be provided in an embodiment, for example, a single host can connect all four ports together. The actual corresponding to the host depends on the setting of the scratchpad, which gives the length of the link group.

圖二G顯示多主機連結埠記憶體292之實施例。圖中多主機埠連結記憶體(多主機記憶體系統)292包含四埠290,並溝通於包含八記憶庫289之記憶體核心291。為了簡潔之目的,僅顯示有限數量之埠290及記憶庫289。雖然多主機記憶體系統292相似於圖二A之單一主機記憶體系統204,此中來自各埠290之資料係個別可得於各庫289。在此實施例中,記憶庫289係定義為整體多主機記憶體系統292之部分,其可獨立地追蹤資料傳送。此外,藉由提供個別之存取,在指令期間埠290之單一埠可相關於記憶庫289之一單一記憶庫,且不與存取其他記憶庫之其他埠相衝突。連結之多工器293及解多工器294係相乘,以產生一種交叉開關(Crossbar Switch)之可能實施例,以導引記憶庫289及埠290之多埠群組間之資料。Figure 2G shows an embodiment of a multi-host interface memory 292. The multi-host connection memory (multi-host memory system) 292 in the figure includes four 290s and is communicated to a memory core 291 including eight memories 289. For the sake of brevity, only a limited number of files 290 and memory 289 are displayed. Although the multi-host memory system 292 is similar to the single host memory system 204 of FIG. 2A, the data from each of the ports 290 is available to each bank 289 individually. In this embodiment, memory bank 289 is defined as part of an overall multi-master memory system 292 that can track data transfers independently. Moreover, by providing individual accesses, a single frame during the command period 290 can be associated with a single memory bank of memory bank 289 and does not conflict with other ports accessing other memory banks. The multiplexer 293 and the multiplexer 294 are multiplied to create a possible embodiment of a crossbar switch to direct data between the memory banks 289 and 埠 290.

圖二H顯示用於可達十六埠之一種埠連結控制暫存器295之實施例,及用於可達十六埠之一種重複指令確認暫存器296。為了簡潔之目的,實施例採用之連結發生於多個二位元倍數之連續埠(譬如埠1、2或4),且隨著匹配標準(Matching Modulus)(譬如埠0對應於四埠、埠0或2對應於兩埠,或任何埠對應於單一埠)。埠可根據暫存器之設定而確認其本身在一連結群組之身分。圖中顯示了一種結合十六埠之埠控制暫存器295。此連結描述及提供了一種階層模式,因此若未設定位元,則所有埠將獨立運作。對於兩埠之裝置而言,僅使用了位元0,而對於四埠裝置而言,位元0至4描述了可能之連結,藉由增加對於四埠之兩埠連結剩餘者,並連結所有埠。對於八埠裝置而言,兩埠連結之剩餘者位於位元8至11、四埠連結位於位元13及14,且所有埠位於位元15。此模式可無限制繼續下去。Figure 2H shows an embodiment of a 埠 link control register 295 for up to sixteen ,, and a repeat command acknowledgement register 296 for up to sixteen 。. For the sake of brevity, the linkages employed in the embodiments occur in a continuous number of multiples of multiples (such as 埠 1, 2, or 4), and with the matching criteria (Matching Modulus) (eg, 埠0 corresponds to four 埠, 埠0 or 2 corresponds to two turns, or any 埠 corresponds to a single 埠).确认 You can confirm the identity of a link group based on the settings of the register. The figure shows a control register 295 that combines the sixteen 埠. This link describes and provides a hierarchical mode, so if no bits are set, all ports will operate independently. For the two devices, only bit 0 is used, and for the four devices, bits 0 to 4 describe the possible links, by adding the remaining two for the four, and linking all port. For the gossip device, the remainder of the two links are located at bits 8 through 11, the four links are at bits 13 and 14, and all turns are at bit 15. This mode can continue without restrictions.

此外,埠可以不屬於一連結群組,在此情況中它們可獨自運作。埠可以不是一連結群組的一部分並可個別運作,或它們可為不只一連結群組之一部分。一種對於此衝突之處理技術在於選擇特定之最大連結群組。當利用暫存器295增加一埠於一連結群組時,下個指令係接著使用於連結群組之內容中,且在一新埠準備好之前並不需要發布新的指令。當從連結群組移除一埠時,其可能被停止或隨後立即獨自使用。In addition, 埠 may not belong to a link group, in which case they operate independently.埠 may not be part of a connected group and may operate individually, or they may be part of more than one connected group. One technique for dealing with this conflict is to select a particular maximum connected group. When the scratchpad 295 is used to add a link group, the next command is then used in the content of the link group, and there is no need to issue a new command until a new one is ready. When a trip is removed from a link group, it may be stopped or immediately used alone.

此外,實施例中將每埠一位元分配至一暫存器,以啟動重複指令(Duplicate Command)確認,如圖中所示之重複指令確認暫存器296。若一埠被連結於任何群組,其將確認其連續埠之指令值。若其並非連結於一群組,則將於其連續週期中發現重複。In addition, in the embodiment, each bit is allocated to a register to initiate a Duplicate Command confirmation, and the repeat instruction acknowledgment register 296 is shown in the figure. If a group is linked to any group, it will confirm its continuous command value. If it is not linked to a group, it will find duplicates in its continuous cycle.

圖二I顯示一種連結之解多工器294之實施例。在一實施例中,埠準備通道(Port Ready Lanes)294a(譬如port_rdy lanes)係由個別埠290所產生,並被授予其連結指令。舉例而言,當四埠290被連結時,將發布所有埠準備通道294a。然而,若僅埠290之埠2及3被連結於兩埠群組中,則會發布埠準備通道294a之port_rdy[3:2]。相似地,若單獨運作埠1,則僅發布port_rdy[1]。此技術被用於確認從埠290至前往記憶庫289之正確埠準備通道294a之傳送大小及路由,以及建立整體記憶體字元以儲存之拴鎖(Latches)。FIG. 2I shows an embodiment of a linked demultiplexer 294. In one embodiment, Port Ready Lanes 294a (e.g., port_rdy lanes) are generated by individual ports 290 and are given a link command. For example, when the four 290s are linked, all of the preparation channels 294a will be issued. However, if only 埠2 and 3 of 埠290 are linked to the two groups, port_rdy[3:2] of the preparation channel 294a is issued. Similarly, if 埠1 is operated alone, only port_rdy[1] is issued. This technique is used to confirm the transfer size and routing of the correct read preparation channel 294a from 埠290 to memory 289, as well as the creation of overall memory characters for storage of latches.

圖二J顯示表297a及297b之實施例,其顯示連結解多工器之路由。舉例而言,當資料到達時,解多工器根據路由功能表297a以將埠資料路由至正確之通道。此解多工器暫存器接著根據enable_fn(圖二I中之298)之功能,以將用於記憶體之資料捕捉至正確的埠通道中,如表297b所示。一旦拴鎖了所有資料,則藉由enable_fn 298利用wr_strobe而命令其核心儲存資料。Figure 2J shows an embodiment of tables 297a and 297b showing the route to the demultiplexer. For example, when the data arrives, the demultiplexer routes the data to the correct channel according to the routing function table 297a. The demultiplexer register then functions to capture the data for the memory into the correct channel according to the function of enable_fn (298 in Figure 2I), as shown in Table 297b. Once all the data has been shackled, its core stores the data with enable_fn 298 using wr_strobe.

利用一種平行資料路徑,可達成寫入遮蔽功能或禁止選定資料之儲存。在儲存週期之開端,係根據enable_fn設定所有遮蔽(譬如,禁止所有通道)。當資料到達時,相關之遮罩係隨著資料而加以路由及儲存。若非全部資料到達(譬如中斷或短傳送(Short Transfer)),則僅抵達之資料會被加以儲存,因為資料通道未抵達所以未有機會清除相關遮罩。With a parallel data path, write masking can be achieved or storage of selected data can be disabled. At the beginning of the storage cycle, all masking is set according to enable_fn (for example, all channels are disabled). When the data arrives, the associated mask is routed and stored with the data. If not all of the data arrives (such as an interruption or a Short Transfer), only the arrival data will be stored, as the data channel has not arrived so there is no opportunity to clear the relevant mask.

圖二K顯示一種連結之多工器293之實施例。在一實施例中,埠準備(譬如port_rdy)294a及讀取指令(譬如read_cmd)訊號係由記憶體之讀取潛時(Read Latency,RL)加以延遲299,使得從記憶體(及拴鎖)到達之資料可即時選擇輸出埠290。如此埠之選擇係簡單地利用延遲輸出值所達成。來自一讀取指令之port_rdy通道294a係藉由多工器293加以解讀,相似於解多工器294之解讀。多工器選擇通道映射至輸出埠290,其係根據圖二L之表279所示之功能。Figure 2K shows an embodiment of a coupled multiplexer 293. In one embodiment, the 埠 preparation (such as port_rdy) 294a and the read command (such as read_cmd) are delayed by 299 from the memory read latency (RL), such that the memory (and shackles) The arrival data can be selected immediately for output 埠290. Such a choice is simply achieved by using a delayed output value. The port_rdy channel 294a from a read command is interpreted by the multiplexer 293, similar to the interpretation of the demultiplexer 294. The multiplexer select channel is mapped to output 埠 290, which is based on the functions shown in Table 279 of Figure 2L.

為了簡潔之目的,採取可能從記憶體傳送一種(六十四位元)資料字元於每一週期,且具有儲存或延遲之機率,以降低資料速率以涵蓋單一埠之情況。假使相較於輸出週期而言需要更多週期來取得資料,則隨著一「預取得緩衝區(Pre-Fetch Buffer)」而建立一種核心,其從記憶體載有較大之字元,並跨越連續週期而選擇較短之片段。在此情況中,資料之拴鎖可連結於預取得緩衝區。為了使資料節流(Throttle),指令解讀器可將讀取指令分割為較短之量,並以較低速率發布中間指令,以匹配於輸出速率。For the sake of brevity, take the possibility of transmitting a (64-bit) data character from memory to each cycle with a chance of storage or delay to reduce the data rate to cover a single frame. If more cycles are required to obtain the data than the output cycle, a core is created with a "Pre-Fetch Buffer" that carries a larger character from the memory and Select a shorter segment across consecutive cycles. In this case, the shackles of the data can be linked to the pre-fetch buffer. To throttle the data, the instruction interpreter can split the read instruction into shorter quantities and issue intermediate instructions at a lower rate to match the output rate.

圖三顯示一種用於框同步化之步驟實施例。起初,記憶體埠係關閉電力以系統重置302。為了開啟埠電力,連結電力關閉(Link Power-Down,/LPD)係被驅動為高位304,使/LPD等於零且使埠停止。然而,當/LPD等於一時,則開始框搜尋306,以尋找特定碼或稱為SYNC之位元順序。當偵測到SYNC時,步驟前進至一種運作模式308。此步驟可繼續於多埠(若實施),如圖四所示。Figure 3 shows an embodiment of a step for frame synchronization. Initially, the memory system turns off power to reset 302. In order to turn on the power, the Link Power-Down (LPD) is driven to the high position 304, making /LPD equal to zero and stopping the 埠. However, when /LPD is equal to one, then block search 306 is initiated to find the particular code or bit order called SYNC. When SYNC is detected, the step proceeds to an operational mode 308. This step can continue with multiple (if implemented), as shown in Figure 4.

因為主機及記憶體以串列式交換資料,接收器係被同步化以確認在一框中之位元位置對應關係。為了確認正確之同步化,其連結在「框搜尋(Frame Search)」情況306中搜尋一特定之位元序列。舉例而言,起初串列連結傳送兩同步化位元序列之一者:SYNC及SYNC2。藉由主機及記憶體之使用,發送器之實體層(Rx-PHY)可偵測這些成框資料封包。SYNC在一重置或錯誤後之連結提起(Link Bring-up)中扮演一種關鍵角色。此外,在正常運作中,在任何未使用之框中,記憶體Tx-PHY將傳送SYNC。在正常運作中,在未使用之框中,主機Tx-PHY將傳送SYNC或SYNC2。當偵測到SYNC並且從記憶體加以辨識時,其步驟前進至正常運作模式308中。若成框失敗,譬如指示一種二十位元解碼錯誤,則舉例而言記憶體將轉回「框搜尋」情況306,直到再次偵測到SYNC。在任何狀態中,若/LPD變為零,則表示埠將轉回至「連結關閉(Link Down)」狀態304,並且重新開始。Because the host and the memory exchange data in tandem, the receivers are synchronized to confirm the bit position correspondence in a frame. To confirm proper synchronization, the link searches for a particular sequence of bits in the "Frame Search" case 306. For example, initially the tandem link transmits one of two sequences of synchronization bits: SYNC and SYNC2. The physical layer (Rx-PHY) of the transmitter can detect these framed data packets by using the host and the memory. SYNC plays a key role in Link Bring-up after a reset or error. In addition, in normal operation, the memory Tx-PHY will transmit SYNC in any unused box. In normal operation, the host Tx-PHY will transmit SYNC or SYNC2 in the unused box. When SYNC is detected and recognized from the memory, its steps proceed to normal operating mode 308. If the frame fails, such as indicating a twentieth decoding error, then for example the memory will switch back to the "box search" case 306 until SYNC is detected again. In any state, if /LPD goes to zero, it means that 埠 will switch back to the "Link Down" state 304 and start over.

記憶體傳送SYNC2以指示接收主機資料之錯誤,或因為留下「連結關閉」狀態或一種成框錯誤。主機獨佔地藉由發送SYNC做出回應,直到記憶體重新建立成框並開始傳送SYNC。主機在指令間傳送SYNC2,以用於適當的錯誤回復運作。SYNC及SYNC2建立及回復連接成框,且主機安排協調連結之建立。The memory transmits SYNC2 to indicate an error in receiving the host data, or because a "link closed" status or a framed error is left. The host responds exclusively by sending a SYNC until the memory is re-established into a frame and begins transmitting SYNC. The host transfers SYNC2 between instructions for proper error recovery operations. The SYNC and SYNC2 setup and reply connections are framed, and the host schedules the establishment of a coordinated link.

圖四顯示一種用於電力控制之步驟實施例。其接收/LPD。在決策區塊402,其確認一埠是否開啟。在/LPD前之斜線係表示反邏輯,譬如當/LPD等於零時連結是電力關閉的,表示其電力並非開啟,則步驟將前進至區塊412,以停止主埠。相似地,/LPD等於一表示並非電力關閉,表示其為電力開啟。若/LPD等於一(譬如連結之電力開啟)則執行一訓練步驟,在處理區塊404,尋找一框以用於特定碼或位元序列(譬如SYNC)。用於SYNC搜尋之訓練步驟將持續到偵測到SYNC為止,且接著在處理區塊406,其步驟將進入一種運作模式。此步驟將對於圖三作進一步描述。在決策區塊408,將確認是否有埠錯誤。若是,步驟將繼續至決策區塊402。若否,則在決策區塊410將確認是否更多埠接連進入運作模式中。若未增加其他埠,步驟將繼續於處理區塊406之運作模式中。然而,若偵測到額外之埠,步驟將繼續於處理區塊414以訓練新埠。Figure 4 shows an embodiment of a step for power control. Its reception / LPD. At decision block 402, it is determined if a turn is on. The slash before the /LPD indicates the inverse logic. For example, if the link is powered off when /LPD is equal to zero, indicating that its power is not on, the step will proceed to block 412 to stop the master. Similarly, /LPD equals one to indicate that the power is not off, indicating that it is power on. If /LPD is equal to one (e.g., the connected power is on) then a training step is performed, and at processing block 404, a box is sought for a particular code or sequence of bits (e.g., SYNC). The training step for the SYNC search will continue until SYNC is detected, and then at processing block 406, its steps will enter an operational mode. This step will be further described with respect to Figure 3. At decision block 408, a confirmation is made as to whether there is an error. If so, the step will continue to decision block 402. If not, then at decision block 410 it will be confirmed if more 埠 are successively entered into the operational mode. If no other defects are added, the steps will continue in the operational mode of processing block 406. However, if additional defects are detected, the steps will continue to process block 414 to train the new one.

這些額外(多)埠係處理於處理區塊416。多埠之使用亦描述於圖九以作為參考。在決策區塊418將確認埠錯誤。若確認有埠錯誤,譬如在決策區塊430藉由埠被關閉電力(譬如/LPD=0)所造成之埠錯誤。若是,在處理區塊432將停止所有埠,且步驟將前進於決策區塊434之單一埠模式。若在決策區塊434中/LPD並非零(譬如/LPD=1),則在處理區塊436將訓練所有埠,且步驟將繼續至處理區塊416。請往回參考決策區塊430,若/LPD並非零(譬如/LPD=1),則步驟將前進至在處理區塊428之訓練錯誤埠,且更繼續於處理區塊416。These additional (multiple) tethers are processed in processing block 416. The use of multiple uses is also described in Figure 9 for reference. At decision block 418, an error will be confirmed. If an error is confirmed, such as in the decision block 430, the error is caused by the power being turned off (e.g., /LPD = 0). If so, all blocks will be stopped at processing block 432 and the steps will advance to a single mode of decision block 434. If /LPD is not zero in decision block 434 (e.g., /LPD = 1), then all blocks will be trained at processing block 436 and the process will continue to processing block 416. Referring back to decision block 430, if /LPD is not zero (e.g., /LPD = 1), then the step will proceed to the training error 处理 in processing block 428 and further to processing block 416.

請返回參考決策區塊418,若未發現埠錯誤,則在決策區塊420將另外決定是否有更多埠加入。若是,步驟將繼續至處理區塊414之新埠訓練步驟(譬如尋找各新埠之SYNC)。若沒有開啟額外之埠,則在決策區塊422將確認是否移除任何埠。若否,步驟將繼續至處理區塊416。若是,在處理區塊424將停止任何被移除之埠。在此中,在決策區塊426將確認是否可得單一埠,以轉回至單一埠模式。若是,步驟將繼續至處理區塊406之單一埠模式。若否,步驟將繼續至處理區塊416之多埠模式。Returning to decision decision block 418, if no error is found, then in decision block 420 it is additionally determined if there are more 埠 joins. If so, the step will continue to the new training step of processing block 414 (e.g., looking for the new SYNC). If no additional defects are turned on, then at decision block 422 it will be confirmed whether any defects have been removed. If no, the step will continue to processing block 416. If so, any blocks that are removed will be stopped at processing block 424. Here, at decision block 426 it will be confirmed if a single defect is available to switch back to the single mode. If so, the step will continue to the single mode of processing block 406. If not, the step will continue to the multi-mode mode of processing block 416.

電力控制238(參考圖二A)係負責傳遞/LPD,而埠206至212係負責訓練其本身及圖三及圖四中之處理。Power control 238 (refer to Figure 2A) is responsible for the transfer / LPD, while 埠 206 to 212 is responsible for training itself and the processing in Figures 3 and 4.

圖五顯示利用單一埠之重複確認及指令解讀之步驟實施例。利用多埠之更複雜步驟將顯示於圖九。如圖五中之進一步敘述,在處理區塊502,係於一埠(譬如第一埠或主埠)執行資料之接收、讀取及解碼,以開始第一框。在決策區塊504將確認是否偵測到埠錯誤。若偵測到錯誤,在區塊528將以一轉回錯誤以結束步驟。若未偵測到埠錯誤,在決策區塊506將確認是否開啟重複。應理解其重複可視必要性及需求加以開啟或關閉。若開啟重複,步驟將前進至步驟區塊508之資料接收、讀取及解碼,於當下隨著第二框之埠加以執行。再者,在決策區塊510將確認是否偵測到埠錯誤。若是,步驟將結束於區塊528之錯誤轉回。若否,步驟將繼續至區塊512,以確認第一框是否等於第二框,若是,步驟將繼續至區塊514,若否,步驟將繼續至區塊528以錯誤轉回而結束。Figure 5 shows an embodiment of the steps of repeated confirmation and instruction interpretation using a single frame. More complex steps using multiples will be shown in Figure 9. As further described in FIG. 5, at processing block 502, the receiving, reading, and decoding of data is performed at a time (eg, first or main) to begin the first block. At decision block 504, a confirmation is made as to whether a 埠 error has been detected. If an error is detected, block 528 will return the error with one to end the step. If no error is detected, a decision block 506 will confirm whether to enable the repeat. It should be understood that its repeated visual necessity and needs are turned on or off. If the repetition is turned on, the step proceeds to the data reception, reading, and decoding of the step block 508, which is performed immediately after the second frame. Again, at decision block 510, a confirmation is made as to whether a false error has been detected. If so, the step will end with the error back to block 528. If not, the step will continue to block 512 to confirm if the first box is equal to the second block, and if so, the step will continue to block 514, and if not, the step will continue until block 528 ends with an error turn back.

若未偵測到埠錯誤(且未開啟重複,請返回參考決策區塊506),步驟將繼續確認此框是否為指令或資料。若此框為指令,在決策區塊516將確認此指令是否有效。若指令為無效,步驟將於區塊528以錯誤轉回而結束。若指令為有效,在決策區塊518將確認此指令是否位於序列中或是否位於正確之位置。若指令並非位於序列中,步驟將於區塊528以轉回錯誤而結束。若指令係位於序列中,在處理區塊520將處理指令,且在區塊530將發布一正常轉回。If no error is detected (and no repetition is turned on, return to decision decision block 506) and the step will continue to confirm if the box is an instruction or data. If the box is an instruction, then at decision block 516 it will be confirmed if the instruction is valid. If the instruction is invalid, the step will end with block 528 turning back with an error. If the instruction is valid, then at decision block 518 it will be confirmed if the instruction is in the sequence or if it is in the correct location. If the instruction is not in the sequence, the step will end at block 528 with an error back. If the instruction is in the sequence, the processing block 520 will process the instruction and at block 530 the normal will be posted back.

請返回參考決策區塊514,若框為資料,則在決策區塊522將確認記憶體是否準備好進行寫入運作。若否,步驟將於區塊528以錯誤轉回結束。若是,在處理區塊524資料將被寫入記憶體,且步驟將於區塊530結束於正常轉回。在此實施例中,區塊516、518及520之步驟係執行於圖二A之指令解讀器248,而其餘步驟係執行於圖二A之埠206至212。Returning to decision decision block 514, if the box is data, then at decision block 522 it will be confirmed if the memory is ready for write operation. If not, the step will end at block 528 with an error back. If so, the data in processing block 524 will be written to the memory and the step will end at block 530 and then return to normal. In this embodiment, the steps of blocks 516, 518, and 520 are performed in instruction interpreter 248 of FIG. 2A, with the remaining steps being performed in FIGS.

圖六顯示一種於埠中執行各種功能之步驟實施例。在區塊602提供接收、讀取及解碼資料串流之步驟。舉例而言,於一埠經由Rx接收單一資料串流(以位元),並於圖中所示形成平行串流並接著解碼(譬如使用17B/20B解碼)。利用連結電力關閉(/LPD)訊號以控制所有埠之電力(經由電力控制機制),使電力進入及外出於單一主機連結埠記憶體之所有埠,如圖二A所示(譬如圖二A中之虛線表示/LPD之電力控制)。在決策區塊604將確認/LPD是否等於零。若為零,步驟將於區塊614以轉回錯誤結束。然而,若/LPD並非等於零,步驟將繼續於處理區塊606。Figure 6 shows an embodiment of the steps for performing various functions in the UI. The step of receiving, reading, and decoding the data stream is provided at block 602. For example, a single stream of data (in bits) is received via Rx, and a parallel stream is formed as shown in the figure and then decoded (eg, using 17B/20B decoding). Use the Connected Power Off (/LPD) signal to control all of the power (via the power control mechanism), allowing power to enter and out of a single host to connect all of the memory, as shown in Figure 2A (Figure 2A) The dotted line indicates the power control of /LPD). At decision block 604, it will be confirmed if /LPD is equal to zero. If zero, the step will end at block 614 with a return error. However, if /LPD is not equal to zero, the step will continue at processing block 606.

在處理區塊606將讀取資料框,其包含埠以接收一種按位元(Bitwise)之資料串流,並產生框之平行串流(譬如二十位元解串化)。在處理區塊608將對框解碼(譬如使用17B/20B解碼技術)以接著產生有效資料。在決策區塊610將確認框之有效性。舉例而言,將確認框是否具有一種二十位元碼,且被正確地解碼為一種十七位元之值。若轉換失敗,因為不明確使其並未產生任何結果,其有效性將失敗,且在區塊614轉回錯誤。然而,若轉換成功且產生結果,則資料框將被視為有效,且在區塊612將為正常轉回,此將於圖九中進一步說明。At processing block 606, a data frame is received that contains 埠 to receive a bitwise data stream and to generate a parallel stream of frames (e.g., twis de-serialization). The block is decoded at processing block 608 (e.g., using 17B/20B decoding techniques) to then generate valid data. The validity of the check box will be confirmed at decision block 610. For example, it will be confirmed if the box has a tweetal code and is correctly decoded as a seventeen bit value. If the conversion fails, its validity will fail because it is not clear that it has not produced any results, and an error is returned at block 614. However, if the conversion is successful and a result is produced, the data frame will be considered valid and will be returned normally at block 612, as will be further illustrated in FIG.

圖七A顯示一種十七位元後解碼(Post-Decoded)框格式700之實施例。實施例圖中之一種十七位元解碼框700可用以傳送十七位元資料、指令及/或狀態,且經過轉換編碼以產生用於串列傳輸之二十位元框。資料、指令及狀態係以二十位元框加以傳送及接收。當接收時將執行相反之步驟,其中二十位元轉換編碼框係經過解碼以產生一種十七位元框700,以保存資料、指令及狀態。Figure 7A shows an embodiment of a 17-bit post-decoded block format 700. A seventeen-bit decoding block 700 of the embodiment diagram can be used to transfer seventeen-bit data, instructions, and/or states, and is transcoded to produce a twematon box for serial transmission. Data, instructions and status are transmitted and received in a twentieth box. The opposite step will be performed when receiving, where the twematal conversion coding frame is decoded to produce a seventeen bit box 700 to hold the data, instructions and status.

圖中所示之十七位元後解碼框(格式)700將前十六位元貢獻於酬載(Payload)702,且將最後一位元(即第十七位元)貢獻於酬載指標704。記憶體存取格式建立於基本解碼格式。舉例而言,位元十六704可表示其酬載是設定為一或零,以用於資料、指令或狀態。在框對框之基礎上,指令及寫入資料可分享其接收者連結。為了降低潛時,指令可被插入(或優先)於一寫入資料串流,以延遲寫入指令之完成。The seventeen-bit post-decoding block (format) 700 shown in the figure contributes the first sixteen bits to the Payload 702 and contributes the last bit (ie, the seventeenth bit) to the payload indicator. 704. The memory access format is based on the basic decoding format. For example, bit sixteen 704 may indicate that its payload is set to one or zero for use in data, instructions, or status. On the basis of the box-to-frame, instructions and write data can share their recipient links. To reduce latency, instructions can be inserted (or prioritized) into a write stream to delay completion of the write command.

圖七B顯示一種指令、狀態或資料編碼框格式720之實施例。圖中實施例包含但不限於一種串列埠DRAM(SPDRAM)之指令、狀態及資料編碼框720之實施例。圖中十七位元編碼框720具有可延伸性,其可提供彈性以保留多位元,可於未來增加額外之指令(舉例而言,視技術或需求改變)。舉例而言,旗標722及次指令724佔據框720之前七位元(位元零至七),且因為在次指令724中大部分項目皆為一,因此此區域(包含旗標區域722)可於未來增加額外指令(譬如,可達十六指令),以擴充框720。FIG. 7B shows an embodiment of an instruction, status, or data encoding frame format 720. Embodiments of the figures include, but are not limited to, an embodiment of a serial, DRAM (SPDRAM) instruction, status, and data encoding block 720. The seventeen-bit encoding block 720 in the figure is extensible, which provides flexibility to retain multiple bits, and additional instructions can be added in the future (for example, depending on technology or demand). For example, flag 722 and secondary instruction 724 occupy seven bits (bits zero through seven) before block 720, and because most of the items in secondary instruction 724 are one, this region (including flag region 722) Additional instructions (e.g., up to sixteen instructions) may be added in the future to expand block 720.

相似地,有其他區域具有有限之範圍(譬如模式暫存器群組726),其亦可用於額外指令(譬如模式暫存器群組726之次指令區域,其僅包含三指令)。另一個如此區域為DRAM指令群組728(譬如DRAM指令群組728之次指令區域,其全部為一),可用以增加其他指令。Similarly, there are other areas with a limited range (such as mode register group 726), which can also be used for additional instructions (such as the sub-instruction area of mode register group 726, which contains only three instructions). Another such area is the DRAM instruction group 728 (e.g., the sub-instruction area of the DRAM instruction group 728, all of which is one), which can be used to add other instructions.

SYNC 730控制及維持連結框同步化,而SYNC2 732表示一種特定連結運作狀態。SYNC 730及732皆為關於圖三及圖四之進一步說明。資料(資料框)734包含一種十七位元框,相似於圖七A中所示之資料框700,其包含第十七位元設定為一及後續兩個八位元之位元組。現行庫指令(ABNK)736及現行指令(ACT)738將於圖七C中說明。寫入指令(WR)740起始一種對於特定庫及行(Column)之記憶體寫入週期。寫入遮罩(WMSK)742設定一種八位元之位元組遮罩,用以於步驟中寫入指令,且隨著WR指令740以具有任何效果。WMSK 742將於圖七D進一步說明,以作為參考。The SYNC 730 controls and maintains the link frame synchronization, while the SYNC2 732 represents a specific link operation state. Both SYNC 730 and 732 are further described with respect to Figures 3 and 4. The data (frame) 734 contains a seventeen-bit box similar to the data box 700 shown in Figure 7A, which includes the seventeenth bit set to one and the next two octets. The current library instruction (ABNK) 736 and the current instruction (ACT) 738 will be illustrated in Figure VIIC. Write command (WR) 740 initiates a memory write cycle for a particular bank and column. Write mask (WMSK) 742 sets an octet byte mask for writing instructions in the step and has any effect with WR instruction 740. WMSK 742 will be further illustrated in Figure 7D for reference.

讀取(Read,RD)744表示一種讀取指令,以起始一種記憶體讀取週期,而叢發停止(Burst Stop,BSTP)746表示一種指令,以中斷一埠當下之讀取或寫入指令,且係根據所特定庫。預充(Precharge,PCG)748表示一種指令,以預充指令中特定記憶庫,而預充全部(Precharge All,PCA)750包含一指令,以同時預充所有記憶庫。逐記憶庫更新(Per-Bank Refresh,REFB)752使特定記憶庫可自動更新,而所有記憶庫更新(All-Bank Refresh,REFA)754根據一內部計數器使所有記憶庫更新。在發布REFA指令前,所有記憶庫皆位於預充狀態中。Read (RD) 744 represents a read command to initiate a memory read cycle, and Burst Stop (BSTP) 746 represents an instruction to interrupt a current read or write. Instructions, and are based on the specific library. Precharge (PCG) 748 represents an instruction to precharge a particular bank of instructions, and Precharge All (PCA) 750 includes an instruction to precharge all of the banks simultaneously. Per-Bank Refresh (REFB) 752 allows specific memory banks to be automatically updated, and All-Bank Refresh (REFA) 754 updates all memory banks based on an internal counter. All banks are in the precharge state before the REFA instruction is issued.

模式暫存器寫入(Mode Register Write,MRW)758表示一種指令,以執行寫入至一模式暫存器。模式暫存器寫入資料(Mode Register Write Data,MRD)760隨著MRW指令758之後提供寫入資料,在下個中間框、從埠0,且是以MRD指令760之形式。模式暫存器讀取(Mode Register Read,MRR)756表示一種指令,以從一模式暫存器執行讀取。自更新電力關閉(Self-Refresh Power-Down,SPRD)762將使記憶體核心立刻進入自我再新狀態。電力關閉離開(Power-Down Exit,PDX)764表示一種指令,其發布以離開自更新電力關閉,且用以在連接建立後喚醒記憶體核心。Mode Register Write (MRW) 758 represents an instruction to perform a write to a mode register. The Mode Register Write Data (MRD) 760 provides write data following the MRW instruction 758, in the next intermediate block, from 埠0, and in the form of an MRD instruction 760. Mode Register Read (MRR) 756 represents an instruction to perform a read from a mode register. The Self-Refresh Power-Down (SPRD) 762 will cause the memory core to immediately enter the self-renew state. Power-Down Exit (PDX) 764 represents an instruction that is issued to leave the self-updating power off and to wake up the memory core after the connection is established.

圖七C表示一種ABNK(埠0(ABNK))及ACT指令736及738之實施例。為了同時傳送二或以上之指令,它們將可彼此支援對方功能或是功能性為正交。第三種標準包含複雜性,因為語意記憶(Memory Semantics)或實施決策可能因為正交性而造成失敗。舉例而言,串列埠DRAM可包含一指令以啟動(Activate)一記憶庫,且其將要啟動之列位址對於框而言太長。在單一埠情況中,此指令將需要二或以上之框,但對於連結埠而言,其可於二或以上埠之上溝通於一框時間中。Figure 7C shows an embodiment of ABNK (埠0(ABNK)) and ACT commands 736 and 738. In order to transmit two or more instructions at the same time, they will be able to support each other's functions or functionality to be orthogonal. The third standard involves complexity because Memory Semantics or implementation decisions can fail due to orthogonality. For example, a serial DRAM can include an instruction to initiate a memory and its column address to be initiated is too long for the frame. In a single case, this command would require a box of two or more, but for a link, it could be communicated in a box of time on top of two or more.

舉例而言,ABNK 736設定目標記憶庫753及列位址755之較高五位元用於後續之ACT指令738。ACT指令738被傳送至最後ABNK指令736中所指定之記憶庫753。若連結二或以上之埠,則可能於埠二出現一種選擇性ABNK 736指令。列位址之較低十五位元765係指定於ACT指令738之最不重要十五位元,而其最重要之五位元係指定於最後ABNK指令736之較低五位元,或出現於埠2之ABNK 770。此實施例指出各指令736及738可於後續框中任何時間獨立運作。這提供了可變之埠群組尺寸、獨立於埠群組尺寸一般控制器,及符合跨埠連結之語意。此外,指令738及770彼此互補,並可同時執行。此外,757表示一種較高列位址。For example, ABNK 736 sets the higher five bits of target memory 753 and column address 755 for subsequent ACT instructions 738. The ACT instruction 738 is passed to the memory bank 753 specified in the last ABNK instruction 736. If two or more links are linked, a selective ABNK 736 instruction may appear on the second. The lower fifteen-bit 765 of the column address is assigned to the least significant fifteen of the ACT instruction 738, and the most significant five-bit element is assigned to the lower five bits of the last ABNK instruction 736, or appears ABNK 770 of Yu埠2. This embodiment indicates that instructions 736 and 738 can operate independently at any time in subsequent frames. This provides a variable group size, a general controller that is independent of the group size, and a semantic fit across the links. Additionally, instructions 738 and 770 are complementary to each other and can be executed simultaneously. In addition, 757 represents a higher column address.

圖七D顯示一種WMSK及WR指令742及740之實施例。圖七D顯示一種WR指令742及相關之位元組/寫入遮罩742,以選擇性寫入。WMSK 742表示一種指令,其設定為在步驟中用於WR指令740之一種八位元組遮罩772,且跟在WR指令740之後以具有任何效果。在溝通八位元組資料後,遮罩772重新開始接下來八位元組。在遮罩772中之字母「H」表示字元轉換之高位元組(譬如位元15至8),而「L」表示低位元組(譬如位元7至0)。Figure 7D shows an embodiment of a WMSK and WR commands 742 and 740. Figure 7D shows a WR command 742 and associated byte/write mask 742 for selective writing. WMSK 742 represents an instruction that is set to an octet mask 772 for the WR instruction 740 in the step and follows the WR instruction 740 to have any effect. After communicating the octet data, mask 772 restarts the next octet. The letter "H" in the mask 772 represents the high byte of the character conversion (such as bits 15 to 8), and the "L" represents the low byte (such as the bit 7 to 0).

WR指令740起始一種記憶體寫入週期,至指定記憶庫774及行776。一旦傳送WR指令740,則將接續寫入資料。若連結二或以上之埠,則一種選擇性WMSK指令780被傳送至埠2,涵蓋或遮蔽前八位元祖(778)。遮罩778重複每八位元,除非其被接續之WMSK指令所重設。二或多埠連結之其他實施例包含同時讀取及寫入之結合,或同時啟動及寫入,根據其記憶體及介面之語意學。WR instruction 740 initiates a memory write cycle to designated memory bank 774 and row 776. Once the WR command 740 is transmitted, the data will be written successively. If two or more links are linked, a selective WMSK instruction 780 is transmitted to 埠2, covering or obscuring the first octet (778). Mask 778 repeats every eight bits unless it is reset by a subsequent WMSK instruction. Other embodiments of the two or more links include a combination of simultaneous reading and writing, or simultaneous activation and writing, according to the semantics of its memory and interface.

圖八A、八B及八C顯示一種寫入遮罩模型800、850及875之實施例。對於使用串列溝通之記憶體而言,減少不可整除(Indivisible)之傳送之位元數量係用以降低潛時。不可整除之傳送係定義為一種以位元之框或字元長度,其描述一種整體資料量(譬如一位元組)或一種可執行指令包含任何需要完成此指令之中間運算元資料,譬如「寫入」及目標地址。8A, 8B, and 8C show an embodiment of writing mask models 800, 850, and 875. For memory using serial communication, reducing the number of bits of Indivisible transmission is used to reduce latency. An indivisible transmission is defined as a box or character length in bits that describes an overall amount of data (such as a tuple) or an executable instruction that contains any intermediate metadata that needs to be completed, such as " Write" and the target address.

對於大部分記憶體而言,寫入運算子同時包含WR指令、地址、運算子(此例中為遮罩)及寫入資料。對於較快之記憶體裝置而言,需要描述指令之速度變得過高,因此將利用一種叢發傳送(Burst Transfer)。叢發傳送係起始於指令及起始資料,但繼續於資料串流及後續被計算之地址(譬如增加的)。無論資料何時傳送,其皆伴隨著額外之寫入遮罩指示訊號。For most memory, the write operator contains both the WR instruction, the address, the operator (in this case, the mask), and the write data. For faster memory devices, the speed at which the instructions need to be described becomes too high, so a burst transfer will be utilized. The burst transmission system starts with the instruction and the start data, but continues with the data stream and subsequent calculated addresses (such as increments). Whenever the data is transmitted, it is accompanied by an additional write mask indication signal.

因為指令及地址可能非連續資料傳送所必須,因此隨著串列溝通,指令、地址、寫入遮罩及資料之編碼將可能效率不足。對此情況,資料將隨著WR指令及地址,利用叢發傳送以交付資料。為了降低潛時,寫入遮罩或WMSK指令(譬如每位元組一位元)僅需伴隨當寫入叢發中位置值未儲存之資料。雖然如此之最佳化對於串列介面效率可為關鍵的,此機制係可用以減少在平行記憶體介面中之所需頻寬。由於串列介面改善了多主機記憶體之實用性,藉由放置寫入遮罩至指令串流中,各主機將可使用獨立寫入遮罩以獨立傳送。為了減少包含WMSK伴隨資料以減少潛時之相關性,在叢發中將採用及說明一種之三用模型。Because instructions and addresses may be necessary for non-contiguous data transfer, the encoding of instructions, addresses, write masks, and data may be inefficient with serial communication. In this case, the data will be transmitted using the WR order and address to deliver the data. In order to reduce the latency, writing masks or WMSK instructions (such as one-bit per-bit tuple) only need to accompany the data that was not stored when the location value was written in the burst. While such optimization can be critical to serial interface efficiency, this mechanism can be used to reduce the required bandwidth in the parallel memory interface. Since the serial interface improves the utility of multi-host memory, by placing a write mask into the instruction stream, each host can use an independent write mask for independent transfer. In order to reduce the inclusion of WMSK companion data to reduce the latency, a three-purpose model will be used and described in the burst.

圖八A顯示一種重複模式WMSK模型800之實施例。其包含之前的記憶體內容(Memory Contents Before)802、指令串流804及之後的記憶體內容(Memory Contents After)806。在圖中,WMSK重複於各傳送,譬如在包含紅、綠及藍資料之矩形中僅改變紅值,其他兩顏色將被遮蔽,且此WMSK將於此矩形中重複跨越所有三原色資料。圖八B顯示一種起始及末端WMSK模型850之實施例,包含之前的記憶體內容852、指令串流854及之後的記憶體內容856。此中,寫入遮罩僅用於傳送之初始部分。舉例而言,網路封包可起始於一奇(Odd)傳送邊界(傳送之四位元組之第二位元組)以最佳化存取(對準)於封包中其餘資料結構。一旦耗盡了起始遮罩,整個剩餘之封包資料將被寫入記憶體。為了完成傳送,因此將插入一新的WMSK以修剪最後兩位元組。圖八C顯示一種利用多串列介面以用於重複模式之WMSK模型875之實施例,其中包含之前的記憶體內容876、指令串流878及之後的記憶體內容880。此中,WMSK係用於一單一傳送,以於傳送尺寸中選擇一資料結構。舉例而言,於三十二位元之整數中僅寫入第二位元組。FIG. 8A shows an embodiment of a repeat mode WMSK model 800. It includes the previous Memory Contents Before 802, the command stream 804, and the following Memory Contents After 806. In the figure, the WMSK is repeated for each transmission, for example, only the red value is changed in the rectangle containing the red, green and blue data, the other two colors will be obscured, and the WMSK will repeat across all three primary colors in this rectangle. FIG. 8B shows an embodiment of a start and end WMSK model 850 that includes previous memory content 852, instruction stream 854, and subsequent memory content 856. Here, the write mask is only used for the initial portion of the transfer. For example, the network packet may start at an odd (Odd) transfer boundary (the second byte of the transferred four bytes) to optimize access (alignment) to the remaining data structures in the packet. Once the start mask is exhausted, the entire remaining packet data will be written to the memory. In order to complete the transfer, a new WMSK will be inserted to trim the last two tuples. FIG. 8C shows an embodiment of a WMSK model 875 that utilizes a multi-serial interface for repeating mode, including previous memory content 876, instruction stream 878, and subsequent memory content 880. Here, the WMSK is used for a single transmission to select a data structure among the transmission sizes. For example, only the second byte is written in an integer of thirty-two bits.

關於模型800及850,寫入遮罩係重複使用或不常使用。舉例而言,各種形式之傳送(譬如快取寫入及大量儲存傳送)並不需要遮罩。在這些情況中,於資料中包含寫入遮罩是沒有效率的,因為其大部分時間並被未使用。相較於單元傳送而言同樣小或較小之傳送並未獲得叢發傳送之優點,因此將指定資料、指令、地址及寫入遮罩。如此之短傳送通常發生於內部之快取記憶體,以從此類常用運作中減輕叢發傾向之記憶體。Regarding models 800 and 850, the write mask is reused or infrequently used. For example, various forms of transfer (such as cache writes and mass storage transfers) do not require masking. In these cases, it is inefficient to include a write mask in the material because it is unused most of the time. A transmission that is equally small or small compared to a cell transfer does not achieve the advantages of burst transmission, so data, instructions, addresses, and write masks are specified. Such short transfers typically occur in internal cache memory to mitigate the tendency of bursts of memory from such common operations.

請注意模型800及850中之假設,寫入遮罩係包含資料,但是若要獲得叢發傳送之優點,則將寫入遮罩與指令加以連結是不足夠的。對此情況,將來自指令及資料之寫入遮罩傳送之去耦合(Decoupling)將可被理解為一種新的指令。在包含不可分割傳送(框)之單一串列串流中,寫入指令係被發布於其一框中之位址,且其資料串流對於所計算之記憶體而言係定址於一種框序列中,且寫入遮罩係被描述為一個別指令並被應用於單位叢發,以發布於寫入指令之後,且位於所需資料中。一單位叢發係被定義為位元之數量,為實施之單一寫入遮罩位元乘上寫入遮罩指令中之寫入遮罩位元數量。當發布寫入指令時,寫入遮罩將被清除,使後續資料被寫入。若寫入遮罩指令立刻跟隨著寫入指令,其應用將開始於第一單位叢發。Note that in the assumptions in models 800 and 850, the write mask contains data, but to obtain the advantages of burst transmission, it is not sufficient to link the write mask to the instruction. In this case, decoupling of the write mask transmission from the instruction and data can be understood as a new instruction. In a single serial stream containing an inseparable transfer (box), the write command is posted to the address in its box, and its data stream is addressed to a block sequence for the memory being computed. The write mask is described as a separate instruction and is applied to the unit burst to be published after the write command and in the desired material. A unit burst is defined as the number of bits that are used to implement a single write mask bit multiplied by the number of write mask bits in the write mask instruction. When a write command is issued, the write mask will be cleared, causing subsequent data to be written. If the write mask instruction immediately follows the write command, its application will begin with the first unit burst.

若使用模型800中所述之重複模式,則遮罩將重複於所有單位叢發。若模式將於傳送中改變,則將發布一種額外寫入遮罩指令,使新的寫入遮罩應用至所有後續資料。若使用模型850中所述之起始模式,則寫入遮罩將於第一單位叢發之後被清除。若需要額外遮罩(譬如於末端單位叢發中),則將發布一種額外寫入遮罩指令,其僅應用於下一單位叢發,而那時寫入遮罩將被清除。If the repeat mode described in model 800 is used, the mask will repeat for all unit bursts. If the mode will change during the transfer, an additional write mask command will be issued to apply the new write mask to all subsequent data. If the start mode described in model 850 is used, the write mask will be cleared after the first unit burst. If additional masking is required (such as in the end unit burst), an additional write mask command will be issued that will only be applied to the next unit burst, while the write mask will be cleared.

對於模型875而言,係利用一種多埠版本之模型800,其中遮罩係被重複,但WMSK指令同時發生與WR指令同時發生,但於不同之埠上。若使用多串列介面,其可能產生更複雜的指令配置。若一起使用兩埠,舉例而言,寫入指令可被結合於一埠上,而第一寫入遮罩於另一埠上,以改善頻寬之利用性。For model 875, a multi-version version of model 800 is utilized in which the mask is repeated, but the WMSK instruction occurs simultaneously with the WR instruction, but on a different scale. If multiple serial interfaces are used, it may result in a more complex instruction configuration. If two turns are used together, for example, the write command can be combined on one turn and the first write mask on the other switch to improve bandwidth utilization.

圖九顯示一種利用多埠以重複核對(Duplication Check)及指令解讀之步驟實施例。在區塊902開始處理埠之步驟,在處理區塊904隨著多埠之第一埠之處理。在處理區塊906,在第一埠經由對應之Rx接收具有資料之資料串流(接著將被解碼)。參考處理區塊906之用語「埠m+i」,「m」表示連結群組,而「i」表示連結群組中之數目。在此實施例中,i開始於零,而因為實施單一主機,因此m等於零。在決策區塊908將確認第一埠(埠0)有無任何錯誤。若發現錯誤,在區塊942將以一錯誤轉回而結束步驟。若未發現錯誤,步驟將繼續至處理區塊910以確認下一埠,直到確認過所有埠。舉例而言,在決策區塊912將確認是否剩下任何埠。若是,步驟將繼續至處理區塊906並至下一埠。若否,步驟將繼續至處理區塊914。Figure 9 shows an embodiment of the steps for utilizing multiple multiplexes for Duplication Check and instruction interpretation. The step of processing 埠 at block 902 is processed at block 904 with the first 埠. At processing block 906, a data stream with data is received via the corresponding Rx at the first location (which will then be decoded). Referring to the term "埠m+i" in the processing block 906, "m" indicates a link group, and "i" indicates the number in the link group. In this embodiment, i starts at zero, and since a single host is implemented, m is equal to zero. At decision block 908, the first 埠 (埠0) will be confirmed for any errors. If an error is found, the block 942 will end with an error and end the step. If no errors are found, the process will continue to processing block 910 to confirm the next defect until all defects have been confirmed. For example, at decision block 912, it will be confirmed if any defects remain. If so, the step will continue to processing block 906 and proceed to the next step. If no, the step will continue to processing block 914.

在決策區塊916將確認重複是否開啟。若是,在決策區塊918將確認當前之埠並根據其結果,其步驟將於區塊942以轉回錯誤結束,或(若未開啟重複,則返回參考決策區塊916)步驟將繼續至決策區塊920,其中將確認此埠是否具有資料。若其資料並未重複其將不會進行比較。若有資料,在決策區塊936將執行寫入運作。若未進行寫入,在區塊942步驟將以轉回錯誤而結束。若執行寫入運作,則在處理區塊938資料將從所有埠被寫入記憶體,且在區塊940執行一正常轉回。At decision block 916, it is confirmed whether the repetition is on. If so, at decision block 918, the current acknowledgment will be confirmed and, depending on its outcome, its steps will end at block 942 with a return error, or (if no repetition is turned on, return to reference decision block 916) the steps will continue until the decision Block 920, which will confirm if the defect has data. If the information is not repeated, it will not be compared. If there is data, a write operation will be performed in decision block 936. If no writes have been made, the block 942 step will end with a return error. If a write operation is performed, then at processing block 938 the data will be written to memory from all ports and a normal switch back is performed at block 940.

請返回參考決策區塊920,若埠並不具有資料,在決策區塊922將執行指令有效性確認。在決策區塊922將確認埠指令是否有效,舉例而言,將確認一指令列表。若指令並非有效,則步驟將結束於區塊942。若發現指令有效,在決策區塊924將確認指令是否於序列中(譬如,指令是否在正確位置)。若指令並非位於序列中,在區塊942將轉回錯誤。若發現指令位於序列中,則將於處理區塊926進行指令處理。Returning to decision decision block 920, if there is no data, decision order 922 will perform an instruction validity check. At decision block 922, it will be confirmed whether the command is valid, for example, a list of instructions will be confirmed. If the instruction is not valid, the step will end at block 942. If the command is found to be valid, then at decision block 924 it will be confirmed if the instruction is in the sequence (e.g., if the instruction is in the correct position). If the instruction is not in the sequence, an error will be returned at block 942. If the instruction is found to be in the sequence, then instruction processing will be performed at processing block 926.

在決策區塊928將確認下一埠,以觀察下一對(Pair)埠是否有重複資料。因為資料之重複通常牽涉到一對埠,在處理區塊930其埠數量將以二增加以確認下兩埠。請返回參考決策區塊928,若答案為是,則在處理區塊934將選擇下(單一)埠。接著步驟將前進至決策區塊932,以確認是否要處理更多埠。若是,步驟將繼續至決策區塊916。若否,在區塊940將發布一正常轉回。At decision block 928, the next 将 will be confirmed to see if there is duplicate information for the next pair (Pair). Since the repetition of the data usually involves a pair of defects, the number of defects in the processing block 930 will be increased by two to confirm the next two. Returning to decision decision block 928, if the answer is yes, then (single) 将 will be selected in processing block 934. The next step will proceed to decision block 932 to confirm if more defects are to be processed. If so, the step will continue to decision block 916. If not, a normal reversal will be issued at block 940.

在一實施例中,資料係接收於一埠且指令係接收於此埠。指令被處理於指令解讀器248(如圖二A所示),在此處表示為區塊922、924及926。而重複核對係執行於以兩個三角254所表示之位置(如圖二A所示),在此處表示為區塊916、918及920。In one embodiment, the data is received at a time and the command is received at this location. The instructions are processed by instruction interpreter 248 (shown in Figure 2A), represented here as blocks 922, 924, and 926. The repeat check is performed at the position indicated by the two triangles 254 (as shown in FIG. 2A), and is represented here as blocks 916, 918, and 920.

圖十表示一種指令重複模型1002、1004及1006之實施例。在一實施例中指令重複係用以改良錯誤偵測。指令係被傳送兩次,且原始指令被比較於重複指令。若使用一或二埠1002及1004,在原始指令1008及1012之後框上立即重複指令1010及1014。若使用四或以上之埠1006,則重複指令1016及1018將出現於其他埠。Figure 10 illustrates an embodiment of an instruction repetition model 1002, 1004, and 1006. In one embodiment, the instruction repetition is used to improve error detection. The instruction is transmitted twice and the original instruction is compared to the repeated instruction. If one or two of 1002 and 1004 are used, the instructions 1010 and 1014 are repeated immediately after the original instructions 1008 and 1012. If four or more 埠1006 is used, the repeating commands 1016 and 1018 will appear in other 埠.

指令係經過特定選擇,因為:(1)在一種連結埠情況中,重複可用以填滿未使用之頻寬;(2)指令之錯誤解讀可能造成未預料之結果,譬如違反指令排序(譬如,啟動已啟動之庫,或寫入未啟動之庫)或破壞不相關於目前傳送之一記憶體位置;反之,若一指令為正確,則任何壞資料至少限制於目前之傳送;及(3)雖然重複資料可產生較好之結果,但有效系統頻寬將變為一半,因為對於指令之可得自由空間並非可得於資料串流中。The instruction is specifically selected because: (1) in a connection , case, the repetition can be used to fill the unused bandwidth; (2) The misinterpretation of the instruction may result in unanticipated results, such as sorting violations (for example, Start the started library, or write to the unstarted library) or destroy the memory location that is not related to the current transfer; conversely, if an instruction is correct, then any bad data is limited to at least the current transfer; and (3) Although repeated data can produce better results, the effective system bandwidth will be half, because the free space available for instructions is not available in the data stream.

指令重複模型1002、1004及1006顯示一種單一埠1002,及具有重複之連結埠1004及1006之組合。其更顯示重複及多指令如何一起工作。舉例而言,在同一框時間中可傳送最大量為二之不同指令。The instruction repetition models 1002, 1004, and 1006 display a single 埠 1002, and a combination of duplicate 埠 1004 and 1006. It also shows how duplicates and multiple instructions work together. For example, a different maximum number of two instructions can be transmitted in the same box time.

在單一埠模型1002中,指令係單一地發布,且其重複1010跟隨於指令1008之後。對於兩埠模型1004而言,重複指令1014係傳送於相同框時間。然而,若重複被關閉,兩指令可佔據此框時間。對於四或以上之埠模型1006而言,二(或以上)之指令1020及1022可佔據一框時間,且兩指令1020及1022皆可於相同框時間中被重複為重複指令1016及1018。其對於同時傳送之指令數量或於群組中埠數量之粒度(Granularity)並無必須之限制。In a single UI model 1002, the instructions are issued singularly, and their repetition 1010 follows the instruction 1008. For the two-dimensional model 1004, the repeat instruction 1014 is transmitted at the same frame time. However, if the repetition is turned off, the two instructions can occupy this frame time. For four or more models 1006, two (or more) instructions 1020 and 1022 can occupy a frame time, and both instructions 1020 and 1022 can be repeated as repeat instructions 1016 and 1018 in the same frame time. There is no limit to the number of instructions that can be transmitted at the same time or the granularity of the number of 埠 in the group.

根據使用模型1002、1004及1006,其係可機會地執行指令。在某些情況中這將節省潛時,但其將衡量錯誤機率及處理錯誤之成本。若在一框時間中所有複製皆為可得,則錯誤的結果將立刻可得。Depending on the usage models 1002, 1004, and 1006, the instructions are executed exponentially. In some cases this will save time, but it will measure the probability of errors and the cost of handling errors. If all copies are available in a box of time, the wrong result will be available immediately.

上述內容之目的在於解釋本發明,所提出之諸多特定細節是為了提供對於本發明之徹底理解。然而,明顯地,本領域中具有通常知識者可實施本發明而不需其中某些特定細節。在其他一些例子中,一些習知的結構及裝置係表示為方塊圖形式。在圖中之元件間可能包含中間結構。此中之說明或圖中之元件可包含額外之輸入或輸出而未加以說明或圖示。The above description is intended to be illustrative of the invention, and the specific details are set forth to provide a thorough understanding of the invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without some specific details. In other instances, some conventional structures and devices are shown in the form of block diagrams. Intermediate structures may be included between the elements in the figures. Elements in the description or figures herein may include additional inputs or outputs without being illustrated or illustrated.

本發明之各種實施例可包含各種步驟。這些步驟可藉由硬體元件加以實施,或可包含於電腦程式或電腦可讀取指令中,可用以產生一一般目的或特別目的之處理器或具有指令以執行這些步驟之邏輯電路。選擇性地,這些步驟可藉由硬體及軟體之結合加以實施。Various embodiments of the invention may include various steps. These steps may be implemented by hardware components or may be included in a computer program or computer readable instructions, and may be used to produce a general purpose or special purpose processor or logic circuit having instructions to perform the steps. Alternatively, these steps can be carried out by a combination of hardware and software.

說明書中所述之一或多個模組、元件或成分,位於或相關於像是關於實施例之多主機改良機制,可包含硬體、軟體及/或以上之組合。在一實施例中一模組包含軟體、軟體資料、指令及/或設定,可經由一機器/電子裝置/硬體所製造之物品加以提供。一製品可包含具有內容之機器可存取/讀取之媒體以提供指令、資料或其他等。這些內容可於一電子裝置(舉例而言,像是一濾波器、一磁碟或所述之一磁碟控制器),以執行所述各種操作及執行動作。One or more of the modules, elements or components described in the specification are located or related to a multi-master improvement mechanism such as the embodiment, and may include hardware, software, and/or combinations thereof. In one embodiment, a module includes software, software files, instructions, and/or settings that can be provided via an item made by a machine/electronic device/hardware. An article of manufacture may include media that is machine-accessible/readable by the content to provide instructions, materials, or the like. The content can be in an electronic device (such as, for example, a filter, a disk, or the one of the disk controllers) to perform the various operations and perform the actions.

本發明各種實施例之部分可由一電腦程式產品所提供,其可包含一電腦可讀取媒體,具有儲存於其中之電腦程式指令,其可用以程式化一電腦(或其他電子裝置)以執行根據本發明實施例之步驟。機器可讀取媒體可包含但不限於軟碟、光碟、唯讀光碟(CD-ROM)、磁光碟(Magneto-Optical Disk)、唯讀記憶體、隨機存取記憶體、可抹除可程式化唯讀記憶體(EPROM)、電子可抹除可程式化唯讀記憶體(EEPROM)、磁或光學卡、快閃記憶體或其他形式之適用於儲存電子指令之媒體/機器可讀取媒體。此外,本發明亦可被下載為電腦程式產品,其中程式可從一遠端電腦傳送至一提出請求之電腦。Portions of various embodiments of the present invention can be provided by a computer program product, which can include a computer readable medium having computer program instructions stored therein for programming a computer (or other electronic device) to perform The steps of the embodiments of the present invention. Machine readable media can include, but is not limited to, floppy disks, compact discs, CD-ROMs, Magneto-Optical Disks, read-only memory, random access memory, erasable and programmable Read-only memory (EPROM), electronic erasable programmable read-only memory (EEPROM), magnetic or optical card, flash memory or other form of media/machine readable media suitable for storing electronic instructions. In addition, the present invention can also be downloaded as a computer program product in which a program can be transferred from a remote computer to a requesting computer.

所述之許多方法係為其最基本之形式,但在未背離本發明之基本範圍下,這些任何方法之步驟可加以增添或刪除,且所述訊息之資訊可增加或減少。明顯地,本領域中技藝者可據此加以修改或變更。特定之實施例並非用以提供限制而是為了說明本發明。本發明實施例之範圍並非由特定實施例所決定,而是以下述申請專利範圍。Many of the methods described are in their most basic form, but the steps of any of these methods can be added or deleted without departing from the basic scope of the invention, and the information of the message can be increased or decreased. Obviously, those skilled in the art can modify or change them accordingly. The specific embodiments are not intended to be limiting, but to illustrate the invention. The scope of the embodiments of the invention is not to be construed as a

若說明一元件「A」是耦合至元件「B」,元件A可直接地耦合至元件B或間接地經由譬如元件C加以耦合。當說明書或請求項說明一元件、特徵、結構、步驟或特性A「造成」一元件、特徵、結構、步驟或特性B,其表示「A」至少部分造成了「B」,但其中可包含至少另一元件、特徵、結構、步驟或特性有助於造成「B」。若說明書中表示「可」、「可能」或「可以」包含一元件、特徵、結構、步驟或特性,則並非必需包含此特定元件、特徵、結構、步驟或特性。若說明書中表示「一」或「一個」元件,那並不表示其僅具有一個所述元件。If an element "A" is coupled to element "B", element A can be coupled directly to element B or indirectly via element C. When the specification or the claims indicate that a component, feature, structure, step or feature A "causes" a component, feature, structure, step or characteristic B, it means that "A" at least partially causes "B", but may include at least Another element, feature, structure, step or feature contributes to "B". It is not necessary to include a particular element, feature, structure, step or feature in the specification. If the specification indicates "a" or "an" element, it does not mean that it has only one of the elements.

一實施例是本發明之一種實施方式或範例。說明書中提及「一實施例」、「一個實施例」、「一些實施例」或「其他實施例」,表示實施例之一特定元件、特徵、結構、步驟或特性係包含於至少一些實施例,但未必於所有實施例。各種樣態之「一實施例」、「一個實施例」或「一些實施例」未必意指所有實施例。應理解在本發明之前述示範性實施例中,各種特徵有時是群集為一單一實施例、圖式或其中之描述,目的在於簡化揭露方式以助於理解各種發明觀點之一者或多者。然而,揭露之方法不可解讀為表示請求專利之發明需要於各請求項中超過所記載之更多特徵。倒不如說,下述請求項反應出發明之觀點依賴於少於一單一前述揭露之實施例之所有特徵。因此,藉此特意將請求項併入說明中,各請求項表示其本身為本發明之一獨立實施例。An embodiment is an embodiment or example of the invention. Reference is made to the "an embodiment", "an embodiment", "an embodiment" or "another embodiment" in the specification. But not necessarily in all embodiments. The "invention", "one embodiment" or "some embodiments" of the various aspects are not necessarily all embodiments. It should be understood that in the foregoing exemplary embodiments of the present invention, various features are sometimes clustered into a single embodiment, a drawing, or a description thereof, for the purpose of simplifying the disclosure to facilitate understanding of one or more of the various inventive concepts. . However, the method disclosed may not be interpreted as indicating that the claimed invention requires more features than those recited in each claim. Rather, the claims below reflect the inventive concept and rely on less than all of the features of a single disclosed embodiment. Accordingly, the claims are hereby explicitly incorporated into the description, each claim being an independent embodiment of the invention.

100...習知串列位元配置100. . . Conventional serial bit configuration

102、122...停止位元102, 122. . . Stop bit

104、106、108、110、112、114、116、118...位元104, 106, 108, 110, 112, 114, 116, 118. . . Bit

120...開始位元120. . . Start bit

124...值124. . . value

126...成框位元126. . . Framed bit

128...框128. . . frame

200...埠記憶體200. . . Memory

201...攝像機201. . . Camera

202...記憶體核心202. . . Memory core

203...顯示裝置203. . . Display device

204...埠記憶體系統204. . . Memory system

206、208、210、212...埠206, 208, 210, 212. . . port

214、216、218、220、222、224、226、228...外部記憶體介面214, 216, 218, 220, 222, 224, 226, 228. . . External memory interface

230、232、234、236...星號230, 232, 234, 236. . . Asterisk

238...電力控制238. . . Power control

240...PLE訊號240. . . PLE signal

242.../LPD訊號242. . . /LPD signal

244...鎖相迴路244. . . Phase-locked loop

246...REFCLK訊號246. . . REFCLK signal

248...指令解讀器248. . . Instruction interpreter

250...模式暫存器250. . . Mode register

252、254...三角252, 254. . . Triangle

256...指令訊號256. . . Command signal

258...庫訊號258. . . Library signal

260...遮罩訊號260. . . Mask signal

262...解多工器262. . . Demultiplexer

264...多工器264. . . Multiplexer

269...溝通通道269. . . Communication channel

270...單一主機連結270. . . Single host link

271...主機271. . . Host

272...NAND快閃272. . . NAND flash

273...NOR快閃273. . . NOR flashes

274...DRAM274. . . DRAM

275...埠連結選擇275. . .埠Link selection

276...一埠276. . . a trip

277...二埠277. . . Second

278...四或多埠278. . . Four or more

279...表279. . . table

280...智慧型行動電話架構280. . . Smart mobile phone architecture

281...應用處理器281. . . Application processor

282...基頻處理器282. . . Baseband processor

283...SRAM/DRAM283. . . SRAM/DRAM

285...SPDRAM285. . . SPDRAM

286、287、288...多主機連結構形286, 287, 288. . . Multi-host connection structure

289...記憶庫289. . . Memory bank

290...埠290. . . port

291...記憶體核心291. . . Memory core

292...多主機連結埠記憶體292. . . Multi-host connection memory

293...多工器293. . . Multiplexer

294...解多工器294. . . Demultiplexer

294a...埠準備通道294a. . . Preparation channel

295...埠連結控制暫存器295. . .埠Link Control Register

296...重複指令確認暫存器296. . . Repeat instruction acknowledge register

297a、297b...表297a, 297b. . . table

298...enable_fn298. . . Enable_fn

299...讀取潛時299. . . Reading latency

302、304、306、308...步驟302, 304, 306, 308. . . step

402、404、406、408、410、412、414、416、418、420、422、424、426、428、430、432、434、436...步驟402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436. . . step

502、504、506、508、510、512、514、516、518、520、522、524、528、530...步驟502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 528, 530. . . step

602、604、606、608、610、612、614...步驟602, 604, 606, 608, 610, 612, 614. . . step

700...框700. . . frame

702...酬載702. . . Payload

704...酬載指標704. . . Reward indicator

720...編碼框格式720. . . Coding box format

722...旗標722. . . Flag

724...次指令724. . . Second instruction

726...模式暫存器群組726. . . Mode register group

728...DRAM指令群組728. . . DRAM instruction group

730...SYNC730. . . SYNC

732...SYNC2732. . . SYNC2

734...資料734. . . data

736...現行庫指令736. . . Current library instruction

738...現行指令738. . . Current directive

740...寫入指令740. . . Write command

742...寫入遮罩742. . . Write mask

744...讀取744. . . Read

746...叢發停止746. . . Crowd stop

748...預充748. . . Precharge

750...預充全部750. . . Prefill all

752...逐庫更新752. . . Repository update

753...記憶庫753. . . Memory bank

754...所有庫更新754. . . All library updates

755...列位址755. . . Column address

756...模式暫存器讀取756. . . Mode register read

757...較高列位址757. . . Higher column address

758...模式暫存器寫入758. . . Mode register write

760...模式暫存器寫入資料760. . . Mode register write data

762...自我再新電力關閉762. . . Self-renewed power off

764...電力關閉離開764. . . Power off

765...較低列位址765. . . Lower column address

770...ABNK770. . . ABNK

772...遮罩位元772. . . Mask bit

774...記憶庫774. . . Memory bank

776...行位址776. . . Row address

778...遮罩778. . . Mask

780...選擇性WMSK指令780. . . Selective WMSK instruction

800、850、875...模型800, 850, 875. . . model

802、852、876...之前的記憶體內容802, 852, 876. . . Previous memory content

804、854、878...指令串流804, 854, 878. . . Instruction stream

806、856、880...之後的記憶體內容806, 856, 880. . . Subsequent memory content

902、904、906、908、910、912、914、916、918、920、922、924、926、928、930、932、934、936、938、940...步驟902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 934, 936, 938, 940. . . step

1002、1004、1006...模型1002, 1004, 1006. . . model

1008、1012...原始指令1008, 1012. . . Original instruction

1010、1014、1016、1018...重複指令1010, 1014, 1016, 1018. . . Repeat instruction

1020、1022...指令1020, 1022. . . instruction

本發明之實施例係用以舉例說明而非用以限制,伴隨之圖式中相同之元件符號係表示相同之元件。The embodiments of the present invention are intended to be illustrative and not restrictive, and the same reference numerals are used in the drawings.

圖一顯示一種RS-232之習知串列位元配置;圖二A顯示一種單一主機連結埠記憶體之實施例;圖二B顯示一種四埠記憶體之單一主機連結之實施例;圖二C顯示一種對於一單一主機介面之埠連結選擇之實施例;圖二D顯示一種智慧型行動電話架構之實施例;圖二E顯示對於圖二D之利用串列埠DRAM(SPDRAM)之一種智慧型電話架構之選擇性實施例;圖二F顯示多主機連結構形之實施例;圖二G顯示一種多主機連結埠記憶體之實施例;圖二H顯示用於可達十六埠之一種埠連結控制暫存器及用於可達十六埠之一種重複指令確認暫存器之實施例;圖二I顯示一種連結解多工器之實施例;圖二J顯示連結解多工器路由表之實施例;圖二K顯示一種連結解多工器之實施例;圖二L顯示一種連結多工器路由表之實施例;圖三顯示一種用於框同步化之步驟實施例;圖四顯示一種用於電力控制之步驟實施例;圖五顯示一種實施單一埠進行重複確認及指令解讀之步驟實施例;圖六顯示一種在一埠中接收及解碼框之步驟實施例;圖七A顯示一種十七位元的後-解碼框(格式)實施例;圖七B顯示一種指令、狀態及資料編碼框之實施例;圖七C顯示一種現行記憶庫及現行指令之實施例;圖七D顯示一種寫入遮罩及寫入指令之實施例;圖八A、八B及八C顯示一種寫入遮罩模型之實施例;圖九顯示一種利用多埠以重複核對及解讀指令之步驟實施例;及圖十顯示一種指令重複模型之實施例。Figure 1 shows an RS-232 conventional serial bit configuration; Figure 2A shows an embodiment of a single host interface memory; Figure 2B shows an embodiment of a single host connection of four memory; Figure 2 C shows an embodiment of a connection selection for a single host interface; Figure 2D shows an embodiment of a smart phone architecture; and Figure 2E shows a wisdom for using Serial DRAM (SPDRAM) for Figure 2D. An alternative embodiment of a telephone architecture; FIG. 2F shows an embodiment of a multi-host connection structure; FIG. 2G shows an embodiment of a multi-host connection memory; FIG.埠 Link control register and an embodiment for a repeat instruction acknowledgement register up to 16 ;; FIG. 2I shows an embodiment of a link multiplexer; FIG. 2 shows a link multiplexer route An embodiment of the table; FIG. 2K shows an embodiment of a connection demultiplexer; FIG. 2L shows an embodiment of a connection multiplexer routing table; FIG. 3 shows an embodiment of a step for frame synchronization; Display one for power control Step embodiment; FIG. 5 shows an embodiment of a step of performing a single acknowledgment for repeated acknowledgment and instruction interpretation; FIG. 6 shows an embodiment of a step of receiving and decoding a frame in one ;; FIG. Post-decoding block (format) embodiment; Figure 7B shows an embodiment of an instruction, status, and data encoding block; Figure 7C shows an embodiment of a current memory bank and current instructions; Figure 7D shows a write mask And an embodiment of a write command; FIGS. 8A, 8B, and 8C show an embodiment of a write mask model; FIG. 9 shows an embodiment of a step of using multiple scans to repeatedly check and interpret instructions; and FIG. An embodiment of an instruction repetition model.

902、904、906、908、910、912、914、916、918、920、922、924、926、928、930、932、934、936、938、940...步驟902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 934, 936, 938, 940. . . step

Claims (31)

一種用於降低記憶體潛時之方法,包含:於一主機電腦系統及一記憶體之間經由位於該記憶體之一埠或一連接組埠於多時間間隔溝通資料,其中該主機電腦系統係耦合於該記憶體,該埠為該連接組埠之一;及於該主機電腦系統及該記憶體之間經由該埠或該連接組埠於一單一時間間隔溝通相關於該資料之一指令,其中該連接組埠之埠數可被動態地選擇,使得該連接組埠之埠之隸屬可於記憶體運作中任何時間改變;其更包含經由維持該連接組埠之埠不被該指令佔據,而對該指令溝通後續指令。 A method for reducing memory latency includes: communicating data between a host computer system and a memory via a plurality of time intervals in a memory or a connection group, wherein the host computer system is Coupling to the memory, the port is one of the connection groups; and communicating with the host computer system and the memory via the port or the connection group at a single time interval to communicate an instruction related to the data, Wherein the number of connections of the connection group can be dynamically selected such that the membership of the connection group can be changed at any time during the operation of the memory; it further includes not being occupied by the instruction after maintaining the connection group. The subsequent instructions are communicated to the instruction. 如請求項1所述之用於降低記憶體潛時之方法,其中該後續指令係如同該指令於該單一時間間隔中溝通。 A method for reducing memory latency as described in claim 1, wherein the subsequent instruction communicates in the single time interval as the instruction. 如請求項1所述之用於降低記憶體潛時之方法,更包含經由維持該連接組埠之埠而溝通該指令之一重複指令。 The method for reducing memory latency as described in claim 1 further includes communicating one of the instructions to repeat the command by maintaining the connection group. 如請求項1所述之用於降低記憶體潛時之方法,更包含實施一遮罩機制,以於該寫入資料之相同溝通框中禁止寫入未包含遮罩資訊之資料,以更降低溝通位元之數量及記憶體潛時。 The method for reducing memory latency according to claim 1, further comprising implementing a masking mechanism to prohibit writing of data not including mask information in the same communication frame of the written data, so as to further reduce The number of communication bits and the potential of the memory. 如請求項4所述之用於降低記憶體潛時之方法,其中該遮罩機制於一資料串流中係可改變。 A method for reducing memory latency as described in claim 4, wherein the masking mechanism is changeable in a data stream. 如請求項5所述之用於降低記憶體潛時之方法,其中該遮罩機制係經過修改,以禁止於如同該寫入指令之相同溝通框中寫入未包含遮罩資訊之資料。 The method for reducing memory latency as described in claim 5, wherein the masking mechanism is modified to prohibit writing of data not including mask information in the same communication box as the write command. 如請求項5所述之用於降低記憶體潛時之方法,其中該遮罩機制係自動地重複於後續單元傳送。 A method for reducing memory latency as described in claim 5, wherein the masking mechanism is automatically repeated for subsequent unit transfers. 如請求項5所述之用於降低記憶體潛時之方法,其中該遮罩機制在一單一單元傳送後停止。 A method for reducing memory latency as described in claim 5, wherein the masking mechanism is stopped after a single unit transfer. 如請求項1所述之用於降低記憶體潛時之方法,其中該指令可插入於一寫入資料串流中。 A method for reducing memory latency as described in claim 1, wherein the instruction is insertable in a write data stream. 如請求項1所述之用於降低記憶體潛時之方法,其中狀態資訊可插入於一寫入資料串流中。 The method for reducing memory latency as described in claim 1, wherein the status information is insertable in a write data stream. 一種用於降低記憶體潛時之裝置,包含:一主機電腦系統,耦合至一記憶體,該記憶體經由位於該記憶體之一埠或一連接組埠於多時間間隔從該主機電腦系統接收資料,該埠為該連接組埠之一;及其中該記憶體係經過修改,以經由該埠或該連接組埠於 一單一時間間隔從該主機電腦系統接收相關於該資料之一指令,其中該連接組埠之埠數可被動態地選擇,使得該連接組埠之埠之隸屬可於記憶體運作中任何時間改變;其中該記憶體係經過修改,以經由維持該連接組埠之埠不被該指令佔據,而接收該指令之後續指令。 A device for reducing memory latency includes: a host computer system coupled to a memory, the memory being received from the host computer system via a plurality of time intervals located in the memory or a connection group Data, the 埠 is one of the connection groups; and the memory system is modified to pass through the 埠 or the connection group Receiving, at a single time interval, an instruction related to the data from the host computer system, wherein the number of connections of the connection group can be dynamically selected such that the membership of the connection group can be changed at any time during the operation of the memory Wherein the memory system is modified to receive subsequent instructions of the instruction by maintaining the connection group without being occupied by the instruction. 如請求項11所述之用於降低記憶體潛時之裝置,其中該後續指令係如同該指令於該單一時間間隔中溝通。 The apparatus for reducing memory latency as described in claim 11, wherein the subsequent instruction communicates in the single time interval as the instruction. 如請求項11所述之用於降低記憶體潛時之裝置,其中該記憶體係經過修改,以經由維持該連接組埠之埠而接收該指令之一重複指令。 The apparatus for reducing memory latency as claimed in claim 11, wherein the memory system is modified to receive a repeat instruction of the instruction by maintaining the connection group. 如請求項13所述之用於降低記憶體潛時之裝置,其中該記憶體更被修改,以實施一遮罩機制,以於如同該寫入資料之相同溝通框中禁止寫入未包含遮罩資訊之資料,以更降低溝通位元之數量及記憶體潛時。 The apparatus for reducing memory latency as claimed in claim 13, wherein the memory is further modified to implement a masking mechanism to prohibit writing from being included in the same communication frame as the written data. Cover the information of the information to reduce the number of communication bits and memory latency. 如請求項14所述之用於降低記憶體潛時之裝置,其中該遮罩機制係可於一資料串流中改變。 The apparatus for reducing memory latency as described in claim 14, wherein the masking mechanism is changeable in a data stream. 如請求項15所述之用於降低記憶體潛時之裝置,其中該遮罩機制係經過修改,以禁止於如同該寫入指令之相同溝通框中寫入未包含遮罩資訊之資料。 The apparatus for reducing memory latency as claimed in claim 15, wherein the masking mechanism is modified to prohibit writing of data not including mask information in the same communication box as the write command. 如請求項16所述之用於降低記憶體潛時之裝置,其中該遮罩機制係自動重複於後續單元傳送。 The apparatus for reducing memory latency as described in claim 16, wherein the masking mechanism is automatically repeated for subsequent unit transfers. 如請求項16所述之用於降低記憶體潛時之裝置,其中該遮罩機制在一單一單元傳送後停止。 A device for reducing memory latency as described in claim 16, wherein the masking mechanism is stopped after a single unit transfer. 如請求項11所述之用於降低記憶體潛時之裝置,其中該指令係可插入於一寫入資料串流中。 The apparatus for reducing memory latency as claimed in claim 11, wherein the instruction is insertable in a write data stream. 如請求項11所述之用於降低記憶體潛時之裝置,其中狀態資訊係可插入於一讀取資料串流中。 The apparatus for reducing memory latency as described in claim 11, wherein the status information is insertable in a read data stream. 一種包含請求項第11至20項中任一項所述之裝置並用於降低記憶體潛時之系統,包含:與一主機電腦耦合之一記憶體使用一埠連結系統以降低記憶體潛時,該埠連結系統包含複數個埠以溝通資料及指令,其中該複數個埠之二或以上之埠係可被連結為一或多連接組埠,該埠連結系統係用以:經由位於該記憶體之一埠或一連接組埠於多時間間隔而於該主機電腦系統及該記憶體之間溝通資料,該埠係為該組埠之一;及經由該埠或該連接組埠於一單一時間間隔於該主機電腦系統及該記憶體之間溝通相關於該資料之一指令,其中該連接組埠之埠數可被動態地選擇,使得該連接組埠 之埠之隸屬可於記憶體運作中任何時間改變;其中該埠連結系統更經過修改,以經由維持該連接組埠之埠不被指令佔據而溝通該指令之後續指令。 A system comprising the apparatus of any one of claims 11 to 20, and for reducing memory latency, comprising: coupling a memory to a host computer to use a connection system to reduce memory latency; The 埠 link system includes a plurality of 埠 to communicate data and instructions, wherein the plurality of 埠 two or more 可 can be linked into one or more connection groups, the 埠 link system is used to: via the memory One or a connection group communicates data between the host computer system and the memory at a plurality of time intervals, the system being one of the group; and being connected to the connection group for a single time Intersecting an instruction related to the data between the host computer system and the memory, wherein the number of connections of the connection group can be dynamically selected, so that the connection group Subsequent membership may be changed at any time during the operation of the memory; wherein the connection system is further modified to communicate subsequent instructions of the instruction via the maintenance of the connection group without being occupied by instructions. 如請求項21所述之用於降低記憶體潛時之系統,其中該後續指令係如同該指令於該單一時間間隔中溝通。 A system for reducing memory latency as described in claim 21, wherein the subsequent instruction communicates in the single time interval as the instruction. 如請求項21所述之用於降低記憶體潛時之系統,其中該埠連結系統係更經過修改,以經由維持該連接組埠之埠而溝通該指令之一重複指令。 A system for reducing memory latency as described in claim 21, wherein the UI connection system is further modified to communicate one of the instructions to repeat the command by maintaining the connection group. 如請求項21所述之用於降低記憶體潛時之系統,其中該埠連結系統係實施一遮罩機制,以於如同該寫入資料之相同溝通框中禁止寫入未包含遮罩資訊之資料,以更降低溝通位元之數量及記憶體潛時。 The system for reducing memory latency as described in claim 21, wherein the UI system implements a masking mechanism to prohibit writing of maskless information in the same communication frame as the written data. Information to reduce the number of communication bits and memory latency. 如請求項24所述之用於降低記憶體潛時之系統,其中該遮罩機制係可於一資料串流中改變。 A system for reducing memory latency as described in claim 24, wherein the masking mechanism is changeable in a data stream. 如請求項25所述之用於降低記憶體潛時之系統,其中該遮罩機制係經過修改,以禁止於如同該寫入指令之相同溝通框中寫入包含遮罩資訊之資料。 A system for reducing memory latency as described in claim 25, wherein the masking mechanism is modified to prohibit writing of material containing mask information in the same communication box as the write command. 如請求項26所述之用於降低記憶體潛時之系統,其中 該遮罩機制係更經過修改,以禁止於如同該寫入指令之相同溝通框中寫入未包含遮罩資訊之資料。 A system for reducing memory latency as described in claim 26, wherein The masking mechanism is further modified to prohibit writing of material that does not contain mask information in the same communication box as the write command. 如請求項27所述之用於降低記憶體潛時之系統,其中該遮罩機制係自動重複於後續單元傳送。 A system for reducing memory latency as described in claim 27, wherein the masking mechanism is automatically repeated for subsequent unit transfers. 如請求項27所述之用於降低記憶體潛時之系統,其中該遮罩機制係在一單一單元傳送後停止。 A system for reducing memory latency as described in claim 27, wherein the masking mechanism is stopped after a single unit transfer. 如請求項21所述之用於降低記憶體潛時之系統,其中該指令係可插入於一寫入資料串流中。 A system for reducing memory latency as described in claim 21, wherein the instruction is insertable in a write data stream. 如請求項21所述之用於降低記憶體潛時之系統,其中狀態資訊係可插入於一讀取資料串流中。A system for reducing memory latency as described in claim 21, wherein the status information is insertable in a read stream.
TW98136752A 2008-10-23 2009-10-29 Method, apparatus and system for reducing memory latency TWI467381B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60513408A 2008-10-23 2008-10-23
US10948008P 2008-10-29 2008-10-29

Publications (2)

Publication Number Publication Date
TW201019120A TW201019120A (en) 2010-05-16
TWI467381B true TWI467381B (en) 2015-01-01

Family

ID=44831612

Family Applications (1)

Application Number Title Priority Date Filing Date
TW98136752A TWI467381B (en) 2008-10-23 2009-10-29 Method, apparatus and system for reducing memory latency

Country Status (1)

Country Link
TW (1) TWI467381B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4807189A (en) * 1987-08-05 1989-02-21 Texas Instruments Incorporated Read/write memory having a multiple column select mode
US20040064663A1 (en) * 2002-10-01 2004-04-01 Grisenthwaite Richard Roy Memory access prediction in a data processing apparatus
TW200613993A (en) * 2004-03-25 2006-05-01 Ibm Method to provide cache management commands for a dma controller
TW200613979A (en) * 2004-10-21 2006-05-01 Mediatek Inc Methods and devices for memory paging management
US20060106956A1 (en) * 2004-11-12 2006-05-18 International Business Machines Corporation Methods and apparatus for servicing commands

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4807189A (en) * 1987-08-05 1989-02-21 Texas Instruments Incorporated Read/write memory having a multiple column select mode
US20040064663A1 (en) * 2002-10-01 2004-04-01 Grisenthwaite Richard Roy Memory access prediction in a data processing apparatus
TW200613993A (en) * 2004-03-25 2006-05-01 Ibm Method to provide cache management commands for a dma controller
TW200613979A (en) * 2004-10-21 2006-05-01 Mediatek Inc Methods and devices for memory paging management
US20060106956A1 (en) * 2004-11-12 2006-05-18 International Business Machines Corporation Methods and apparatus for servicing commands

Also Published As

Publication number Publication date
TW201019120A (en) 2010-05-16

Similar Documents

Publication Publication Date Title
US10056123B2 (en) Method and system for improving serial port memory communication latency and reliability
US4623997A (en) Coherent interface with wraparound receive and transmit memories
KR100881049B1 (en) A multiple address two channel bus structure
WO2021207919A1 (en) Controller, storage device access system, electronic device and data transmission method
US6880056B2 (en) Memory array and method with simultaneous read/write capability
US6816955B1 (en) Logic for providing arbitration for synchronous dual-port memory
CN103077132A (en) Cache processing method and protocol processor cache control unit
CN204390227U (en) Computing equipment expanding unit and extendible computing system
CN114518902A (en) Memory sequencer system and memory sequencing method applying same
CN104598404A (en) Computing equipment extending method and device as well as extensible computing system
TW425508B (en) Narrow data width dram with low latency page-hit operations
CN110008162B (en) Buffer interface circuit, and method and application for transmitting data based on buffer interface circuit
TWI467381B (en) Method, apparatus and system for reducing memory latency
JP2000029826A (en) Three-port fifo data buffer having multilevel caching
CN110720126B (en) Method for transmitting data mask, memory controller, memory chip and computer system
JP5497743B2 (en) Method for controlling access to memory area from a plurality of processes, and communication module including message memory for realizing the method
US7555630B2 (en) Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit
CN116795763B (en) Method, system on chip and chip for data packet transmission based on AXI protocol
US20230134215A1 (en) System and Method for Flexibly Crossing Packets of Different Protocols
JP2005505856A5 (en)
WO2023076597A1 (en) System and method for flexibly crossing packets of different protocols
CN111581140A (en) Data transmission and processing method and slave device
CN116361226A (en) Reconfigurable computing memory access architecture and method and electronic equipment