CN112148653A - 数据传输装置、数据处理系统、数据处理方法和介质 - Google Patents
数据传输装置、数据处理系统、数据处理方法和介质 Download PDFInfo
- Publication number
- CN112148653A CN112148653A CN201910559188.6A CN201910559188A CN112148653A CN 112148653 A CN112148653 A CN 112148653A CN 201910559188 A CN201910559188 A CN 201910559188A CN 112148653 A CN112148653 A CN 112148653A
- Authority
- CN
- China
- Prior art keywords
- data
- data transmission
- interleaved
- memory
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 62
- 230000005540 biological transmission Effects 0.000 title claims abstract description 48
- 238000003672 processing method Methods 0.000 title description 13
- 230000015654 memory Effects 0.000 claims abstract description 78
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012546 transfer Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 5
- 239000010410 layer Substances 0.000 description 50
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2757—Interleaver with an interleaving rule not provided for in the subgroups H03M13/2703 - H03M13/2753
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7896—Modular architectures, e.g. assembled from a number of identical packages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2767—Interleaver wherein the permutation pattern or a portion thereof is stored
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Semiconductor Memories (AREA)
Abstract
根据本公开的示例性实施例,提供了一种数据传输装置。该数据传输装置包括多个第一端口,被耦合至处理单元;多个第二端口,被耦合至多个存储器;以及多条数据通道,被布置在第一端口和第二端口之间以形成具有多个层的交织网络,以用于在处理单元和多个存储器之间传输数据,使得交织网络的每层包括至少一个子交织网络。通过采用多通道、分层的内存交织的技术,有效降低了硬件开销,并提高了扩展性和灵活性。由于分成了多个子交织网络,使得需要走长路径的数据通道大幅减少,物理实现更容易。这对功耗以及数据的传输时延以及稳定性方面都是有利的。分层的交织网络的数据传输技术能够更容易地实现对称结构的布局,从而能够更容易地布置数据处理系统中的各个模块。
Description
技术领域
本公开的实施例主要涉及数据传输的技术领域,并且更具体地,涉及数据传输装置、数据处理系统和方法。
背景技术
目前,随着人工智能(AI)技术的广泛应用,图形处理器(GPU)或者AI专用芯片的算力不断提高。这对内存访问的带宽的要求越来越高,如512GB/s~1TB/s已很常见,甚至有的芯片已经超过1TB/s。然而,SoC的频率和总线宽度受限于工艺和时序不可能无限增大。现在比较常见的AXI接口,一般而言,频率大约1GHz,数据位宽1024bit以下,常见为512bit,其带宽为64GB/s(=1GHz*512bit/8),这与单通道的GDDR、HBM等存储提供的带宽相当。已有的内存多通道交织技术通常需要多达16(=1TB/64GB)个AXI接口才能提供足够的内存带宽,以满足对内存访问的带宽的要求。
然而,内存的多通道交织,尤其是8通道以上,也带来了巨大的挑战。一方面,这样的多通道很难在SoC芯片的一侧布开,常常需要在芯片两侧,甚至芯片四周放置。这给芯片的平面布局和物理实现带来非常大的难度。另一方面,多通道也给SoC的片上互连(NoC)和系统性能提出了挑战,不仅包括如何将不支持交织的模块接入系统,也还需仔细评估各种场景下的性能带宽能否满足系统要求等。
发明内容
根据本公开的示例实施例,提供了一种数据传输装置的方案,以解决或至少部分地解决上述问题和/或其他潜在问题。
在本公开的第一方面中,提供了一种数据传输装置。该数据传输装置包括多个第一端口,被耦合至处理单元;多个第二端口,被耦合至多个存储器;以及多条数据通道,被布置在第一端口和第二端口之间以形成具有多个层的交织网络,以用于在处理单元和多个存储器之间传输数据,使得交织网络的每层包括至少一个子交织网络。
通过采用多通道、分层的内存交织的技术,能够有效降低硬件开销、并有效地提高扩展性和灵活性。由于其中的至少一层被打散布置,也即,分成了多个子交织网络,长路径的数据通道大幅减少。这对功耗以及数据的传输时延以及稳定性方面都是有利的。此外,分层的交织网络的数据传输技术能够更容易地实现对称结构的布局,从而能够更容易地布置数据处理系统中的各个模块。
在一些实施例中,多条数据通道包括交织数据通道,以将交织网络的多个层中的相邻层互连。这进一步提高了数据的传输效率以及扩展性。
在一些实施例中,交织网络的多个层中的子交织网络的数目从第一端口向第二端口递增或者递减。通过运用各层之间的子交织网络的多种组合,进一步提高了扩展性和灵活度。
在一些实施例中,第一端口所提供的总带宽不小于第二端口所提供的总带宽。
在一些实施例中,第二端口经由内存控制器而被耦合至多个存储器。
在本公开的第二方面中,提出了一种数据处理方法。该数据处理方法包括响应于接收到针对多个存储器中的至少一个存储器中的数据的读请求;以及经由根据本公开的第一方面的数据传输装置,从读请求针对的至少一个存储器中获取数据。
在本公开的第三方面中,提出了一种数据处理方法。响应于接收到向多个存储器中的至少一个存储器写入数据的写请求,经由根据本公开的第一方面的数据传输装置,将数据写入到至少一个存储器。
在本公开的第四方面中,提供了一种数据处理系统。该数据处理系统包括处理单元、根据本公开的第一方面的数据传输装置以及存储装置,用于存储一个或多个程序,当一个或多个程序被处理单元执行,使得处理单元实现根据本公开的第二方面和第三方面的方法。
在一些实施例中,数据传输装置被集成在处理单元中。
在一些实施例中,在数据处理系统的周围的任意位置被布置有多个存储器。
在本公开的第五方面中,提供了一种计算机可读介质,计算机可读介质上存储有计算机可读指令,计算机可读指令在被执行时使设备执行根据本公开的第三方面或第四方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了现有技术中利用内存交织技术进行数据传输的示意图;
图2示出了根据本公开的一些实施例的利用多通道、分层的内存交织技术进行数据传输的示意图;
图3示出了根据本公开的一些实施例的利用多通道、分层的内存交织技术的物理实现的示意图;
图4示出了根据本公开的其他实施例的利用多通道、分层的内存交织技术进行数据传输的示意图;
图5示出了根据本公开的其他实施例的利用多通道、分层的内存交织技术进行数据传输的示意图;
图6示出了根据本公开的示例性实施例的数据处理方法的流程图;
图7示出了根据本公开的示例性实施例的数据处理方法的流程图;以及
图8示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
内存交织技术用来提升内存性能的一种技术,能提供更多的传输通道与更高的内存频宽,使内存在同一时间内能同时进行多个写/读的操作,从而有效地提高系统性能。图1示出了现有技术中利用内存交织技术进行数据传输的示意图。以片上系统(SoC)为例,如图1所示,对于多通道(特别是8通道以上)的内存交织,控制端侧和存储器侧通常采用N×N的交叉矩阵(crossbar)来互连。
SoC系统的处理单元101’一般经由交织的数据通道103’以及内存控制器和物理层(PHY)来与存储器200’互连。根据SoC系统芯片布局的需要,如果内存控制器和物理层需要分布在SoC系统的两侧或者更多侧,对于常见的500mm2的AI芯片而言,多通道的交叉矩阵的实现是非常困难的。
特别是,对于这样大小的芯片,通常采用对称结构并分成多个模块(block)来实现时,模块划分以及对称结构很难实现。发明人研究发现,这很大一部分是由于现有技术中多通道的交织网络只有一层造成的。
发明人根据上述发现,提出了一种基于多通道、分层交织网络的数据传输技术,以解决或者至少部分地解决上述和/或其他潜在问题。该数据传输技术可以被体现为数据传输装置。这里的数据传输装置可以是被应用在任何一个适当的环境(例如SoC)中的模块。
图2示出了根据本公开的一些实施例的利用多通道、分层的内存交织技术的数据传输装置进行数据传输的示意图。如图2所示,该数据传输装置包括被耦合到处理单元(例如SoC系统中的处理单元)的多个第一端口101、被耦合到多个存储器(200)的多个第二端口102以及多条数据通道103。多条数据通道103被布置在第一端口101和第二端口102之间以用于在处理单元和多个存储器102之间传输数据。
第二端口102可以经由内存控制器和物理层而被耦合至多个存储器。第一端口101和第二端口102的数目可以相等也可以不相等,一般而言,第一端口101所提供的总带宽不小于第二端口102所提供的总带宽。例如,在一些实施例中,在位宽相同的情况下,第一端口101的数目也可以与第二端口102的数目不同。下面主要以第一端口101和第二端口102的数目相同为例(例如N×N)来介绍根据本公开的实施例的改进。
不同于传统的利用内存交织技术的数据通道,根据本公开实施例的多个数据通道采用分层的内存交织方式。在数据通道的交织网络的每一层上,包括至少一个子交织网络1031。即,多个数据通道采用的分层的交织网络,例如图2所示,多个数据通道被分为两层结构,其中在第一层中具有一个子交织网络,在第二层中具有两个子交织网络。
在这种情况下,第一层中的子交织网络只需采用N×2交织,而第二层中的每个子交织网络只需采用(N/2)×(N/2)交织即可。首先,很明显的是,采用分层技术会使硬件开销小很多。具体而言,对于单层的N×N的交织网络,其比图2中所示的示例中的N×2+2×(N/2)×(N/2)的交织网络的开销要大得多。其次,由于其中的至少一层被打散布置,即,被分成了多个子交织网络,长路径的数据通道将大幅度减少。这对功耗以及数据的传输时延以及稳定性方面都是有利的。
采用分层的内存交织的技术,每个层可以单独或者与其他已有的模块一起构成新的模块,使得每个子交织网络都不会占用太大面积,且能够被更灵活的布置。如图3所示,采用图2所示的分层的交织网络的数据传输技术能够更容易地实现对称结构的布局。
在一些实施例中,在物理实现时,图2示例中的第二层、所需的内存控制器和物理层可以被合并到人工智能(AI)运算模块中来实现。以此方式,能够更好地实现模块划分以及对称结构,从而使得该分层技术具有良好的扩展性。例如,在具有合理的模块划分以及对称结构的情况下,通道数能够容易地从8通道扩展到16通道甚至是32通道或者更高。这使得对内存的访问带宽的高要求能够被容易地实现。
在一些实施例中,交织网络的多个层中的至少相邻的层的子交织网络之间可以采用交织数据通道互连。各个相邻的层之间可以采用诸如AXI接口等的总线传输协议来进行数据的传输。这进一步提高了数据的传输效率以及扩展性。
此外,图2中仅示出了根据本公开的一些实施例的利用多通道、分层的内存交织技术进行数据传输的示意图。当然,应当理解的是,这只是示例性的,并不旨在限定本公开的保护范围。根据本公开的实施例的采用分层的内侧交织的数据传输装置支持各个模块和/或子交织网络的更灵活的调整。
例如,如图4所示,在一些实施例中,多条数据通道103也是形成两层的交织网络。与图2中所示的实施例不同的是,在第一层交织网络中,可以存在一个子交织网络1031,而在第二层交织网络中,可以存在4个子交织网络。以这种方式,第一层中的子交织网络可以采用N×4交织,第二层中的每个子交织网络可以采用(N/4)×(N/4)交织。这样使得硬件开销进一步缩小的同时,还能够支持更多种的模块划分方式。另外,这种布置方式还允许将存储器对称地布置在SoC芯片四周。
图2和图4示出了数据通道可以被分成交织网络的两个层的情况。通过对图2和图4的实施例的描述可以看出,每个层上的子交织网络的数目可以根据实际情况的需要而灵活地被调整。在一些实施例中,多个层中的子交织网络的数目可以从第一接口102向第二接口逐渐增多或者逐渐减少。通过运用各层之间的子交织网络的多种组合,进一步提高了数据传输的可扩展性和灵活度。
子交织网络的多种组合方式除了各个层中的子交织网络的数目可以根据实际需要而灵活地调整外,交织网络的层的数目也可以被调整,如3层或者3层以上。通道数目越多,可以考虑采用的层数越多。例如,在一些实施例中,如图5所示,图中示出了16通道的交织网络具有三个层。其中第一层可以具有一个子交织网络1031,第二层可以具有两个子交织网络1031,而第三层可以具有4个子交织网络1031。
在这种情况下,第一层中的子交织网络1031可以采用N×2交织,第二层中的每个子交织网络可以采用(N/2)×(N/4)交织,而第三层中的子交织网络可以采用(N/4)×(N/4)交织的方式。采用这种多层的结构,由于子交织网络被进一步细分,从而更加便于模块划分和对称布置,灵活度和可扩展性进一步得到提高。
除了上面所描述的层的数目以及每个层上的子交织网络的数目可以灵活调整之外,为了进一步优化面积,第一端口101或者第二端口102中的任一个还可以采用增加数据位宽的方式来减少接口的数目。
例如,在一些实施例中,第一端口101的位宽可以是第二端口的位宽的两倍。这样,第一端口101的数目可以因此是第二端口102的数目的一半。在采用两层结构的交织网络时,一方面,第一层的子交织网路可以采用(N/2)×2的交织方式。这样能够大幅减少第一层的面积和走线。另一方面,走线的减少带来的是物理实现更加友好,例如在通道为16时,只需要8个第一端口101。
上文中描述了数据通道的交织网络可以具有两个以上的多个层、并且每个层可以具有不同数目的子交织网络的多通道交织方式。这种多通道交织方式实现了数据通道的多种布置方式,实现了高扩展性且物理实现又好的多通道、分层的内存交织方法。
根据本公开的实施例,还提出了一种读数据处理方法600。该读数据处理方法600可以由数据处理系统中的处理单元来执行。图6示出了根据本公开的示例性实施例的数据处理方法的流程图。如图所示,在610,确定是否接收到针对多个存储器200中的至少一个存储器200中的数据的读请求。如果接收到该读请求,则方法600在620经由上文中所描述的数据传输装置,从读请求针对的至少一个存储器200中获取数据。
例如,如果用户想要处理被存储在存储器或者其他存储设备中的数据,用户可以通过适当的接口来向处理单元发送对该数据的读请求。如果数据被存储在其他存储设备中,这些数据可以经由适当的操作而被转存到存储器中。该读请求中可以包含这些数据在存储器中的地址。在接收到针对这些数据的读请求的情况下,处理单元可以根据地址信息来从存储器200中获取数据。数据被获取后可以经过相应地处理后发送至用户通过接口所指定的模块处来进行进一步地处理。例如,这些数据可以在处理单元读取并处理后写入存储器200以待进一步处理。
根据本公开的实施例,还提出了一种写数据处理方法700。该写数据处理方法700可以由数据处理系统中的处理单元来执行。图7示出了根据本公开的示例性实施例的写数据处理方法的流程图。如图所示,在710,确定是否接收到向多个存储器200中的至少一个存储器200写入数据的写请求。如果接收到该写请求,则方法700在720经由上文中所描述的数据传输装置,将数据写入到至少一个存储器。
例如,在处理单元对数据处理完成后并在接收到将该处理后的数据写入存储器200的请求,处理单元经由上文中描述的数据传输装置将数据写入到存储器200中以待进一步处理。
上述方法通过采用多通道、分层的内存交织方式,能够有效减少长路径的数据通道的数目,提高数据的传输效率以及稳定性。
根据本公开的实施例,还提出了一种数据处理系统300,如图3所示。该数据处理系统可以包括处理单元、存储装置以及上文中所描述的数据传输装置100。数据处理系统300在一些实施例中可以是片上系统SoC。存储装置用来存储至少一个程序。该至少一个程序能够被处理单元执行,并在被执行时使得处理单元实现上文中描述的方法。采用上文中所描述的数据传输装置100的数据处理系统300的布局更加合理且扩展性更高、能耗更小。
在一些实施例中,数据传输装置100可以被集成在处理单元中。也就是说,在一些实施例中,片上系统SoC包括至少一个处理单元,而数据传输装置100可以是被集成在片上系统处理单元中的数据通道。在一些实施例中,多个存储器200可以被布置在数据处理系统(例如片上系统SoC)的任意位置,例如对称地布置在两侧或者四周。采用上述布置的数据处理单元能够被更容易地物理实现。
图8示出了可以用来实施本公开的实施例的示例设备600的示意性框图。设备800可以用于实施图7和图8中所示的方法。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元801执行上文所描述的各个方法和处理,例如过程600和700。例如,在一些实施例中,过程600和700可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由CPU 801执行时,可以执行上文描述的过程600和700的一个或多个步骤。备选地,在其他实施例中,CPU801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程600和700。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
应该理解的是,本公开的以上详细实施例仅仅是为了举例说明或解释本公开的原理,而不是限制本公开。因此,凡在本公开的精神和原则之内所作的任何修改、等同替代以及改进等,均应包含在本公开的保护范围之内。同时,本公开所附的权利要求旨在覆盖落入权利要求的范围和边界的等同替代的范围和边界的所有变化和修改。
Claims (11)
1.一种数据传输装置(100),包括:
多个第一端口(101),被耦合至处理单元;
多个第二端口(102),被耦合至多个存储器(200);以及
多条数据通道(103),被布置在所述第一端口(101)和所述第二端口(102)之间以形成具有多个层的交织网络,以用于在所述处理单元和所述多个存储器(200)之间传输数据,使得所述交织网络的每层包括至少一个子交织网络(1031)。
2.根据权利要求1所述的数据传输装置(100),其中所述多条数据通道(103)包括交织数据通道,以将所述交织网络的所述多个层中的相邻层互连。
3.根据权利要求1所述的数据传输装置(100),其中所述交织网络的所述多个层中的子交织网络(1031)的数目从所述第一端口(101)向所述第二端口(102)递增或者递减。
4.根据权利要求1所述的数据传输装置(100),其中所述第一端口(101)所提供的总带宽不小于所述第二端口(102)所提供的总带宽。
5.根据权利要求1所述的数据传输装置(100),其中所述第二端口(102)经由内存控制器(201)而被耦合至所述多个存储器(200)。
6.一种数据处理方法,包括:
响应于接收到针对多个存储器(200)中的至少一个存储器(200)中的数据的读请求,经由权利要求1-5任一项所述的数据传输装置(100),从所述读请求针对的所述至少一个存储器(200)中获取所述数据。
7.一种数据处理方法,包括:
响应于接收到向多个存储器(200)中的至少一个存储器(200)写入数据的写请求,经由权利要求1-5任一项所述的数据传输装置(100),将所述数据写入到所述至少一个存储器(200)。
8.一种数据处理系统(300),包括:
处理单元;
根据权利要求1-5任一项所述的数据传输装置(100);以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述处理单元执行,使得所述处理单元实现如权利要求6或权利要求7所述的方法。
9.根据权利要求8所述的数据处理系统(300),其中所述数据传输装置(100)被集成在所述处理单元中。
10.根据权利要求8所述的数据处理系统(300),其中在所述数据处理系统的周围的任意位置布置有多个存储器(200)。
11.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,计算机可读指令在被执行时使设备执行根据权利要求6或权利要求7所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910559188.6A CN112148653A (zh) | 2019-06-26 | 2019-06-26 | 数据传输装置、数据处理系统、数据处理方法和介质 |
EP20165433.2A EP3758264A1 (en) | 2019-06-26 | 2020-03-25 | Data transmission apparatuses, data processing systems and methods, and media |
KR1020200045068A KR102337697B1 (ko) | 2019-06-26 | 2020-04-14 | 데이터 전송 장치, 데이터 처리 시스템, 데이터 처리 방법 및 매체 |
US16/904,856 US11360915B2 (en) | 2019-06-26 | 2020-06-18 | Data transmission apparatuses, data processing systems and methods |
JP2020108977A JP7149987B2 (ja) | 2019-06-26 | 2020-06-24 | データ伝送装置、データ処理システム、データ処理方法及び媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910559188.6A CN112148653A (zh) | 2019-06-26 | 2019-06-26 | 数据传输装置、数据处理系统、数据处理方法和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112148653A true CN112148653A (zh) | 2020-12-29 |
Family
ID=69960526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910559188.6A Pending CN112148653A (zh) | 2019-06-26 | 2019-06-26 | 数据传输装置、数据处理系统、数据处理方法和介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11360915B2 (zh) |
EP (1) | EP3758264A1 (zh) |
JP (1) | JP7149987B2 (zh) |
KR (1) | KR102337697B1 (zh) |
CN (1) | CN112148653A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12026380B2 (en) * | 2022-06-30 | 2024-07-02 | Advanced Micro Devices, Inc. | Dynamic memory reconfiguration |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733506A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 用于数据同步的方法、设备和计算机可读介质 |
CN109313609A (zh) * | 2016-06-27 | 2019-02-05 | 高通股份有限公司 | 用于奇数模存储器通道交织的系统和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11338768A (ja) | 1998-05-22 | 1999-12-10 | Nec Kofu Ltd | メモリ制御方法、メモリ制御装置及びその記録媒体 |
US7248596B2 (en) * | 2003-02-07 | 2007-07-24 | Fujitsu Limited | Memory interleaving in a high-speed switching environment |
EP1542369A1 (en) * | 2003-12-09 | 2005-06-15 | STMicroelectronics N.V. | Method and system for de-interleaving of data |
US7921264B2 (en) * | 2007-06-27 | 2011-04-05 | International Business Machines Corporation | Dual-mode memory chip for high capacity memory subsystem |
US9110795B2 (en) | 2012-12-10 | 2015-08-18 | Qualcomm Incorporated | System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components |
US9639276B2 (en) * | 2015-03-27 | 2017-05-02 | Intel Corporation | Implied directory state updates |
GB2568086B (en) * | 2017-11-03 | 2020-05-27 | Imagination Tech Ltd | Hardware implementation of convolution layer of deep neutral network |
-
2019
- 2019-06-26 CN CN201910559188.6A patent/CN112148653A/zh active Pending
-
2020
- 2020-03-25 EP EP20165433.2A patent/EP3758264A1/en active Pending
- 2020-04-14 KR KR1020200045068A patent/KR102337697B1/ko active IP Right Grant
- 2020-06-18 US US16/904,856 patent/US11360915B2/en active Active
- 2020-06-24 JP JP2020108977A patent/JP7149987B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313609A (zh) * | 2016-06-27 | 2019-02-05 | 高通股份有限公司 | 用于奇数模存储器通道交织的系统和方法 |
CN108733506A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 用于数据同步的方法、设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2021005380A (ja) | 2021-01-14 |
EP3758264A1 (en) | 2020-12-30 |
US20200409876A1 (en) | 2020-12-31 |
KR102337697B1 (ko) | 2021-12-08 |
KR20210001907A (ko) | 2021-01-06 |
US11360915B2 (en) | 2022-06-14 |
JP7149987B2 (ja) | 2022-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100595720C (zh) | 用于基于集线器的存储系统中直接存储器访问的设备和方法 | |
US7215561B2 (en) | Semiconductor memory system having multiple system data buses | |
KR101885452B1 (ko) | 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들 | |
US8090913B2 (en) | Coherency groups of serially coupled processing cores propagating coherency information containing write packet to memory | |
US20080183959A1 (en) | Memory system having global buffered control for memory modules | |
KR101051506B1 (ko) | 스케일러블 멀티채널 메모리 액세스를 위한 방법 및 메모리제어기 | |
CN110309088B (zh) | Zynq fpga芯片及其数据处理方法、存储介质 | |
CN101427224A (zh) | 用于提供存储器定序提示的存储器集线器和方法 | |
JP6105720B2 (ja) | チップ間メモリインターフェース構造 | |
US10805392B2 (en) | Distributed gather/scatter operations across a network of memory nodes | |
KR100959136B1 (ko) | 직접 메모리 접근 제어기 및 직접 메모리 접근 채널의데이터 전송 방법 | |
US20180253391A1 (en) | Multiple channel memory controller using virtual channel | |
US7761668B2 (en) | Processor architecture having multi-ported memory | |
US20130058173A1 (en) | Semiconductor apparatus | |
CN112148653A (zh) | 数据传输装置、数据处理系统、数据处理方法和介质 | |
US8209470B2 (en) | CPU data bus PLD/FPGA interface using dual port RAM structure built in PLD | |
CN115136125A (zh) | Noc宽松写入顺序方案 | |
Sikder et al. | Exploring wireless technology for off-chip memory access | |
CN109324982B (zh) | 一种数据处理方法以及数据处理装置 | |
CN113157602A (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
CN104049915A (zh) | 一种存储系统及通信方法 | |
US20220005521A1 (en) | Programmable Memory Controller Circuits And Methods | |
Jones | Throughput Expansion with FET Based Crossbar Switching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211018 Address after: Baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100086 Applicant after: Kunlun core (Beijing) Technology Co.,Ltd. Address before: 100094 2 / F, baidu building, No.10 Shangdi 10th Street, Haidian District, Beijing Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |