CN104106115B - 无竞争的存储器配置 - Google Patents
无竞争的存储器配置 Download PDFInfo
- Publication number
- CN104106115B CN104106115B CN201280069104.7A CN201280069104A CN104106115B CN 104106115 B CN104106115 B CN 104106115B CN 201280069104 A CN201280069104 A CN 201280069104A CN 104106115 B CN104106115 B CN 104106115B
- Authority
- CN
- China
- Prior art keywords
- memory
- group
- access port
- memory block
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1075—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/023—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Static Random-Access Memory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Dram (AREA)
Abstract
本发明提供一种包含多个存储块(208)、第一组存取端口(204)以及第二组存取端口(206)的存储器布置(200)。路由电路(209)将所述第一组和第二组存取端口中的每一对耦合到所述存储块中的相应者。每一对包含来自所述第一组的第一存取端口以及来自所述第二组的第二存取端口。所述第一存取端口具有对所述相应存储块的第一部分的写入存取权,但不具有对所述存储块的第二部分的写入存取权,以及具有对所述第二部分的读取存取权,但不具有对所述第一部分的读取存取权。所述第二存取端口具有对所述第二部分的写入存取权,但不具有对所述第一部分的写入存取权,以及具有对所述第一部分的读取存取权,但不具有对所述第二部分的读取存取权。
Description
技术领域
一或多个实施例大体上涉及数据存储以及检索。
背景技术
许多网络装置包含桥接口以将数据从一种协议格式转换为另一种协议格式、路由数据或者执行其它处理。举例来说,桥接口可以经实施以在网络之间转化数据包格式。
作为另一实例,桥接口可以用于在网络与计算系统之间转换数据格式。为便于说明,主要参考经配置以在光学网络与连接到其上的计算系统之间提供接口的网桥来描述实施例以及实例。
为了减少设计以及调试所需的时间和投资,桥接口可以使用可编程集成电路(IC)来实施,可编程IC包含可经配置以实施电路设计的多个逻辑和路由资源。可编程IC允许在未将电路设计实现为专用IC(ASIC)的情况下实施、测试以及修改电路设计。以此方式,可以减少研发时间以及成本。
桥接口通常在存储器中缓冲数据包以便高效处理。传统桥接口使用芯片外存储器(例如,动态随机存取存储器(DRAM))来实施数据缓冲。然而,对于例如那些在光学网络中采用的高传输速度应用(例如,400Gbps全双工)来说,通常在可编程IC封装中没有足够的引脚用以补偿因对存储器的存取冲突造成的吞吐量的减少。
一或多个实施例可以解决以上问题中的一或多者。
发明内容
存储器布置的一个实施例可包含多个存储块、第一组存取端口以及第二组存取端口。路由电路可以将第一组和第二组存取端口中的每一对耦合到多个存储块中的相应者。每一对存取端口可以包含来自第一组的第一存取端口以及来自第二组的第二存取端口。第一存取端口可以具有对多个存储块中的相应者的第一部分的写入存取权,但不具有对所述存储块的第二部分的写入存取权,以及可以具有对所述存储块的第二部分的读取存取权,但不具有对所述存储块的第一部分的读取存取权。第二存取端口可以具有对相应的存储块的第二部分的写入存取权,但不具有对所述存储块的第一部分的写入存取权,以及可以具有对所述存储块的第一部分的读取存取权,但不具有对所述存储块的第二部分的读取存取权。
在此实施例中,多个存储块中的每一者的第一部分各自可以专门用于缓冲流出数据;并且多个存储块中的每一者的第二部分各自可以专门用于缓冲流入数据。多个存储块可以在多个堆叠的半导体裸片上实施。多个存储块中的每一个可以在多个堆叠的半导体裸片中的相应者上实施。
在此实施例中,存储器布置可以进一步包括插入件,其中多个堆叠的半导体裸片可以被电耦合到所述插入件正面的触点。多个存储块中的每一个可以包含两个存储片。路由电路可以包含可经配置以调整在多个存储块与第一组和第二组存取端口之间的一或多个路径上的时序的可编程延迟电路。对于所述一或多个路径中展现最少时延的路径,不调整时序。可编程延迟电路可以包含多个多路复用(MUX)可选择路径,MUX可选择路径中的每一个可以包含不同数目的触发器。对于多个存储块中的每一个,所述存储块的第一部分和第二部分各自可以包含整数数目的存储体。
在此实施例中,路由电路可以包含耦合到多个存储块以及第一组和第二组存取端口的纵横接线器,所述纵横接线器可以按比存储块的可能的顺序存取速率大的速率来定时,以减少队头阻塞。多个存储块以及路由电路可经配置以:对于每个存储块,响应于配置比特流来调整包含在相应的第一部分中的存储块的量以及包含在相应的第二部分中的存储块的量。在此实施例中,多个存储块中的每一个可以包含:多个存储体,每个存储体可以具有一或多个存取端口;并且对于每个存储体,相应的选择电路可经配置以将读取请求从由配置比特流指定的第一组和第二组存取端口的对应对中的一个存取端口转发到存储体的一或多个存取端口,并且可经配置以将写入请求从第一组和第二组存取端口的对应对中的另一个存取端口转发到存储体的一或多个存取端口。
网络接口电路的实施例可以包含网络侧串行器/解串器(SerDes)电路、耦合到网络侧SerDes电路的第一组存取端口、系统侧SERDES电路、以及耦合到系统侧SerDes电路的第二组存取端口。多个存储块以及路由电路可以包含在半导体裸片堆叠上。路由电路可以使多个存储块耦合到第一组和第二组存取端口。对于每个存储块,相应的第一存取端口可以具有对所述存储块的第一部分的写入存取权,但不具有对所述存储块的第二部分的写入存取权,以及可以具有对所述存储块的第二部分的读取存取权,但不具有对所述存储块的第一部分的读取存取权。第二存取端口可以具有对相应的存储块的第二部分的写入存取权,但不具有对所述存储块的第一部分的写入存取权,以及可以具有对所述存储块的第一部分的读取存取权,但不具有对所述存储块的第二部分的读取存取权。
在此实施例中,路由电路可以包含纵横接线器,所述纵横接线器按比存储块的顺序存取可进行的速率还大两倍的速率来定时。每个存储块的第一部分各自可以专门用于缓冲流出数据;并且每个存储块的第二部分各自可以专门用于缓冲流入数据。对于每个存储块,所述存储块中的第一部分和第二部分各自可以包含整数数目的存储体。
桥接口电路的实施例可以包含经配置以第一数据格式接收并且传输数据的第一收发器电路。第二收发器电路可经配置以第二格式接收并且传输数据。转换电路可以耦合到第一和第二收发器电路。所述转换电路可经配置以将数据从第一格式转化为第二格式,并且将数据从第二格式转化为第一格式。存储器电路可以耦合到所述转换电路。所述存储器电路可以包含多个存储块、第一组存取端口、第二组存取端口、以及路由电路,所述路由电路将第一组和第二组存取端口中的每一对耦合到多个存储块中的相应者。第一组和第二组存取端口中的每一对存取端口可以包含来自第一组存取端口的第一存取端口以及来自第二组存取端口的第二存取端口。第一存取端口各自可以具有对多个存储块中的相应者的第一部分的写入存取权,但不具有对所述存储块的第二部分的写入存取权,以及可以具有对所述存储块的第二部分的读取存取权,但不具有对所述存储块的第一部分的读取存取权。第二存取端口各自可以具有对相应的存储块的第二部分的写入存取权,但不具有对所述存储块的第一部分的写入存取权,以及可以具有对所述存储块的第一部分的读取存取权,但不具有对所述存储块的第二部分的读取存取权。
在此实施例中,转换电路可经配置以:仅通过第一端口组在第一收发器电路与存储器电路之间路由数据;以及仅通过第二端口组在第二收发器电路与存储器电路之间路由数据。第一端口组可以定位得比第二端口组更接近第一收发器;并且第二端口组可以定位得比第一端口组更接近第二收发器。
一种方法的实施例可以包括:将第一组存取端口和第二组存取端口中的每一对耦合到多个存储块中的相应者,第一组和第二组存取端口中的每一对可以包含来自第一组存取端口的第一存取端口以及来自第二组存取端口的第二存取端口;将第一组存取端口中的每一个配置为具有对多个存储块中的相应者的第一部分的写入存取权,以及具有对多个存储块中的所述相应者的第二部分的读取存取权;将第一组存取端口中的每一个配置为不具有对多个存储块中的所述相应者的第一部分的读取存取权,以及不具有对多个存储块中的所述相应者的第二部分的写入存取权;将第二组存取端口中的每一个配置为具有对多个存储块中的所述相应者的第二部分的写入存取权,以及具有对多个存储块中的所述相应者的第一部分的读取存取权;以及将第二组存取端口中的每一个配置为不具有对多个存储块中的所述相应者的第二部分的读取存取权,以及不具有对多个存储块中的所述相应者的第一部分的写入存取权。
所述方法的此实施例可以进一步包括:对于每个存储块,响应于配置比特流来调整包含在相应的第一部分中的存储块的量以及包含在相应的第二部分中的存储块的量。
鉴于下文的具体实施方式以及所附权利要求书将认识到其它实施例。
附图说明
在审阅以下详细描述并且参考附图时,所揭示的实施例的各种方面以及优点将变得显而易见,附图中:
图1绘示根据一或多个实施例使用可编程IC实施的网络接口的框图;
图2绘示存储器架构的框图;
图3绘示被分区为用于流入数据以及用于流出数据的相应存储体组的存储块;
图4绘示可经配置以控制对经分区存储片的存储体的读取/写入端口的存取的电路的框图;
图5绘示根据一或多个实施例可以用于在端口组与存储器之间路由数据的路由电路的框图;
图6绘示根据一或多个实施例使用多个堆叠在可耦合到集成电路的插入件上的裸片来实施的存储器布置的侧视图;以及
图7绘示可以根据一或多个实施例配置的实例可编程IC。
具体实施方式
对于高速桥接口应用,通常在可编程IC封装中没有足够可供使用的引脚以补偿因存储器存取冲突导致的吞吐量的减少。然而,对于桥接口的存储器容量需求通常足够低(例如,1GB到2GB),使存储器能使用当前处理技术集成在可编程IC封装内。前述桥接口实施方案利用控制逻辑来仲裁存储器存取从而避免存取冲突。然而,在可编程IC中实施此类控制逻辑需要许多可编程资源,并且因此减少了可用以实施桥接口逻辑的可编程资源的数目。一或多个实施例提供一种无冲突的高效存储器布置。由于系统是无冲突的,因此不需要可编程资源来实施仲裁电路。
在一或多个实施例中,提供用于无冲突存储器存取的存储器布置。存储器布置实施高效的路由系统来直接存取特定的存储器地址,因此无需仲裁。
图1绘示根据一或多个实施例使用可编程IC实施的桥接口的框图。在此实例中,网桥接口100是使用可编程IC 102来实施。可编程IC 102包含用于以由网络使用的第一协议格式传输并且接收数据的第一集合的串行器/解串器(SerDes)收发器电路106,以及用于以由系统使用的第二协议格式传输并且接收数据的第二集合的SerDes收发器电路110。为了便于参考,从网络接收的用于传输到系统侧的数据可以被称为流入数据,而从系统接收的用于传输到网络的数据可以被称为流出数据。在此实例中,箭头120以及122描绘通过流入存储缓冲器104A的流入数据流。箭头124以及126描绘通过流出存储缓冲器104B的流出数据流。可编程资源108用以实施转换电路109,转换电路109将数据在第一协议格式与第二协议格式之间转化,并且将流入数据路由到相应的存储缓冲器104A并从其路由出,以及将流出数据路由到相应的存储缓冲器104B并从其路由出。
图2绘示根据一或多个实施例可以用于实施桥接口电路的存储器架构200的框图。从网络接收的数据以及导向网络的数据经由第一端口组204(端口组A)写入到存储器208并从存储器208中读取,而从系统接收的数据以及导向系统的数据经由第二端口组206(端口组B)写入到所述存储器并从所述存储器中读取。存储器架构将两个端口组的端口组织成对,并且将每一对的存储器存取限制到存储器的相应分区。在此实例中,所述存储器被分区成四个存储块,每个存储块包含一对存储片。举例来说,路由电路209经配置以仅允许端口1A和端口1B存取由存储片1A和1B组成的第一存储块。作为另一实例,只有端口2A和2B才被允许存取由存储片2A和2B组成的第二存储块。对于每一个端口组对,使用对应块的存储片中的第一者来处理流入数据,而使用所述块的存储片中的第二者来处理流出数据。举例来说,在一个实施方案中,对于包含端口1A和1B的端口组对,使用存储片1A来处理流入数据,而使用存储片1B来处理流出数据。只要所述存储块的存储片各自经实施以赋予对端口组对(例如,1A和1B)的一个端口的独占式写入存取权以及对所述端口组对的另一个端口的独占式读取存取权,就可以使用数据块的不同部分(也即,不同存储片)来处理流入数据以及流出数据,以防止在端口组对中的端口竞争对存储器的所述部分的读取或写入存取权。以此方式,可以以无冲突的方式来处理流入以及流出数据。
尽管以上实例将存储块各自分区为用于流入数据的一个存储片和用于流出数据的一个存储片,但应认识到在一或多个实施例中,存储块各自可以经分区以将不同数量的存储器用于流入和流出数据。举例来说,在许多应用中,流入数据缓冲可能比流出数据缓冲需要更多的存储器来缓解拥塞。图3绘示根据一或多个实施例被分区为用于流入数据和流出数据的相应组存储体的存储块。存储块302和304图示存储块的一些不同分区布置。在此实例中,存储块302和304各自包含两个相应的存储片(例如,存储片1A和1B),所述两个存储片一起包括在0x000000到0xFFFFFF范围内的地址空间。
每一个存储片(例如,存储片1A)包含可以被独立存取的四个存储体(例如,存储体5到8)。举例来说,每一个存储体可以是多端口存储器(例如,一读取一写入存储器)。存储块302和304可以在存储体之间的任何地址边界进行分区。向右的箭头表示用于流入数据的存储体,而向左的箭头表示用于流出数据的存储体。在此实例中,存储块302和304中的每一个经分区以为流出数据分配两个存储体和为流入数据分配六个存储体。存储块302在边界306处分区为连续的两组存储体。在边界306下方的地址用于流入数据,在边界上方的地址用于流出数据。在另一个实施例中,可以在存储块的存储体之间以任何方式来分区。举例来说,如在存储块304中所图示,存储片2B中的存储体1到3以及存储片2A中的存储体5、6和8用于流入数据;存储片2B中的存储体4和存储片2A中的存储体7用于流出数据。
应理解用于实施每一个存储块的存储器电路具有可以用于从所述存储器电路的存储单元读取或向所述存储器电路的存储单元写入的多个端口。为了区分个别存储器电路的端口以及端口组A和B的端口,存储器电路的端口可被称为内部端口。为了提供用于经分区存储片的独占式读取和写入存取,存储片各自是使用两个内部写入端口来实施:一个内部写入端口对应端口组(例如,端口组A和端口组B)的各个端口。这样能使来自端口组A的端口向存储片的第一分区写入数据,并且来自端口组B的端口向存储片的第二分区写入数据,而不发生竞争。同样地,存储片各自具有两个内部读取端口。取决于用以实施存储片的存储器的读取和写入内部端口的配置,存储片各自可以具有两个内部端口,每一个端口能够读取和写入(“2RW”);或者存储片各自可以具有两个专用读取端口和两个专用写入端口(“2R2W”)。
在一或多个实施例中,存储片可以取决于特定应用的要求而动态分区为流入和流出部分。举例来说,每一个存储片的存储体可以是1R1W存储器。每一个存储体的内部读取和写入端口可以被独立编程以通过一个端口组来读取并且通过一个不同的端口组来写入。此类可配置性要求从两个端口组(例如,存储片的内部端口)到存储片中的每个存储体的内部端口的读取和写入地址的可编程连接。
图4绘示可经配置以控制对经分区存储片的存储体的读取存取权的电路的框图。对每个存储体的写入存取可以按类似方式实施。在此实例中,存储体(例如,402)各自具有读取启用控制输入端(RE)和读取地址输入端(RA)。RE输入端耦合到2:1多路复用器(例如,406)的输出端。多路复用器406基于配置信号(例如,Config[0])选择启用信号以输入到相应的存储体。此2:1多路复用器406的两个输入端响应于来自端口1A中的端口的读取请求信号以及来自端口1B的读取请求信号。对多路复用器的选择输入为静态信号(Config[0]或简称“Config”),其选择此存储体是应由端口1A还是端口1B读取。在初始化过程中设置Config信号(例如,作为现场可编程门阵列(FPGA)配置比特流的一部分)。仅当读取地址(例如,RAddr_P1A或RAddr_P1B)的存储体地址(BA)是相应的存储体(例如,402)的存储体地址时,“与”门408才将对应于端口1A和1B的启用信号RE_P1A和RE_P1B转发到多路复用器406。
对存储体402的读取地址端口同样通过多路复用器404多路复用。多路复用器404基于Config信号选择地址信号(例如,RAddr_P1A或RAddr_P1B)。举例来说,响应于Config[0]为0,存储体402仅可通过端口1A而不是端口1B读取,而响应于Config[0]为1,存储体402仅可通过端口1B而不是端口1A读取。此选择信号有效地忽略非法读取地址。类似逻辑可以用于检测存取违规并生成错误信号。错误信号可以用于向例如存储器控制器等外部电路发送信号,表示读取/写入请求被拒绝存取存储器。
在一或多个实施例中,相应的每一对端口(例如,图2的端口1A和1B)对存储块的存储器存取是通过为每一对端口实施路由系统来执行。图5绘示根据一或多个实施例可以用于在一对端口502与具有存储片1A和1B的存储块506之间路由数据的路由电路504的框图。路由电路504以蝶形布局来配置,其中提供从一对端口502的每一个端口到存储块506的每一个分区(也即,存储片1A和1B)的读取路径和写入路径。
取决于信号路径各自的长度,在端口之间经由存储器路由流入或流出数据可能造成不同量的延迟。出于说明性目的,在图5中提供虚线图示的触发器516、518、522、524、526和528以直观地表示通过存储片1A的路径的延迟。应理解路由电路实际上并不包含这些触发器。实际上,虚线图示的触发器各自表示一个时钟周期的信号传播延迟。同样,通过存储片1B的路径的延迟是通过虚线图示的触发器542、544、546、548、550和552来描绘。在此实例中,对角线路径更长,且因此造成更多延迟。如果未加以校正,路径长度的差异可能使得从两个不同存储器位置读取的数据同时到达一对端口502中的端口1A,从而产生冲突,或以错误的次序到达。举例来说,假设存储片1A的位置接近存取端口502且存储片1B距存取端口502的距离较远。如果第一个流入数据包被写入存储片1B并随后从存储片1B读取(例如,在长信号路径上写入和读取),而下一个流入数据包被写入存储片1A并随后从存储片1A读取(例如,在短信号路径上写入和读取),则第二个流入数据包可以在第一个流入数据包之前被输出。
为了避免冲突以及乱序数据,在一对存取端口502之间的流入和流出路径各自可以包含可编程延迟电路,以调整流入和流出路径的延迟并且减少延迟变化。在此实例中,两个多路复用器(MUX)可选择路径(例如,510和560)实施可编程延迟电路中的每一个。对于每一个流入和流出路径,路由电路504包含触发器(560、562、564和566)以提供可以用于校正的额外延迟。相应的MUX(570、572、574和578)根据相应的控制信号(延迟调整1-4)所指示将数据从MUX可选择路径中的一者路由出。以此方式,可以补偿各种路径的传播延迟变化。
图5中所示的路由电路504实施在存取端口502和存储块506之间的固定路由,以避免如上文所论述的存储器存取冲突。一或多个实施例可以使用例如纵横接线器等动态路由电路来实施类似的路由限制。在一或多个实施例中,使用纵横接线器来路由并缓冲一个端口的数据,同时另一个端口正在同一周期中试图向同一存储器地址写入。为提供充足的吞吐量,所述纵横接线器可以按至少两倍于对存储块可进行的存取速率的速率来定时。如果数据包由于存取冲突而在端口处缓冲,那么所述纵横接线器能够在下一周期中路由缓冲的数据包以及任何新的数据包(假定所述数据包将写入不同的存储器位置)。关于纵横接线器的拥塞使用以减少竞争影响(例如队头阻塞)的具体内容在桑达尔·耶尔(Sundar Iyer)和尼克·麦克欧文(Nick McKeown)的“论多播并行包交换所需的加速(On the SpeedupRequired for a Multicast Parallel Packet Switch)”,IEEE交流快报,第5卷,第6号,第269页(2001年6月)中进一步解释,其内容在此充分体现。
在一或多个实施例中,参考以上实例论述的无竞争的存储器布置可以使用在一或多个裸片上的ASIC电路来实施,所述一或多个裸片可以在可编程IC上堆叠。由于存储器布置与可编程IC分开实施,因此可编程IC的更多可编程资源可用于实施电路设计。
图6绘示根据一或多个实施例使用堆叠于插入件上的多个裸片来实施的存储器布置的侧视图,所述插入件可耦合到集成电路。插入件606将存储器布置602的触点电耦合到存取所述存储器布置的IC 604。所述插入件包含插入件主体610,其中具有在所述主体中形成的多个硅通孔(TSV)612。在插入件主体610的背面上形成具有多个焊球触点614的触点阵列。焊球触点614被耦合到TSV中的相应者。一或多个布线层616实施多个电路路径,其将TSV耦合到第二触点阵列的相应接触垫618。第二触点阵列经布置以与存储器布置602的微凸块触点620对齐。由于插入件可易于重新设计和实施以调整在IC604与存储器布置602之间的路由,因此IC 604的电路的置放和路由(在IC中)不用考虑存储器布置602的哪些微凸块620对应于哪些特定的端口组。这能使IC 604的置放和路由得以更最佳地进行,并且使存储器布置602的布局易于与在IC 604上实施的多种设计一起使用。尽管主要参考使用插入件将存储器布置602连接到IC 604来描述所述实例和实施例,但应认识到存储器布置602可以不使用插入件直接耦合到IC 604。
存储器布置602的存储器裸片可以按多个替代配置来布置和连接。举例来说,实施存储器布置的裸片可以布置在多个裸片的单个堆叠中或具有一或多个裸片的多个堆叠中。在图6的实例中,存储器布置被描绘为在两个堆叠中实施。参照图1到4论述的路由电路可以配置成多个替代的裸片堆叠布置。举例来说,在左侧堆叠中,存储器裸片632A和632B堆叠在实施路由电路的IC裸片630上。因为是在裸片630中实施路由,所以路由电路可以经配置和建构以与存储器裸片的不同配置兼容。作为另一实例,右侧堆叠的存储器裸片640A和640B中的每一个实施存储器布置602的一些存储块和路由电路。由于每一对端口具有对存储块的独占式存取权,因此每一对端口独立于其它端口进行操作。其结果是,不同端口组对的存储器和对应路由电路可以在堆叠裸片中的不同者中实施。
图7绘示可以根据一或多个实施例配置的实例可编程IC。所示出的可编程IC被称为现场可编程门阵列(FPGA)。FPGA可以在阵列中包含若干不同类型的可编程逻辑块。举例来说,图7示出包含许多不同可编程单元片(tile)的FPGA架构(700),所述可编程单元片包含多千兆位收发器(MGT 701)、可配置逻辑块(CLB 702)、随机存取存储块(BRAM 703)、输入/输出块(IOB704)、配置和时钟逻辑(CONFIG/CLOCKS 705)、数字信号处理块(DSP 706)、专门化输入/输出块(I/O 707)(举例来说,例如,时钟端口)、以及例如数字时钟管理器、模/数转换器、系统监视逻辑等其它可编程逻辑708。一些FPGA还包含专用的处理器块(PROC710)及内部和外部重配置端口(未示出)。
在一些FPGA中,可编程单元片各自包含与每个邻近单元片中的对应互连元件标准化地连接的可编程互连元件(INT 711)。因此,可编程互连元件一起实施所示出的FPGA的可编程互连结构。可编程互连元件INT 711还包含与同一单元片内的可编程逻辑元件的连接,如图7的顶部处所包含的实例所示。
举例来说,CLB 702可以包含可经编程以实施用户逻辑的可配置逻辑元件CLE 712加上单个可编程互连元件INT 711。除一或多个可编程对接元件之外,BRAM 703还可包含BRAM逻辑元件(BRL 713)。通常,包含在单元片中的互连元件的数目取决于所述单元片的高度。在所描绘的实施例中,BRAM单元片具有等于五个CLB的高度,但也可使用其它数目(例如,四个)。除适当数目的可编程互连元件之外,DSP单元片706还可以包含DSP逻辑元件(DSPL714)。除可编程互连元件INT 711的一个执行个体(instance)之外,IOB 704还可以包含(例如)输入/输出逻辑元件(IOL 715)的两个执行个体。所属领域的技术人员将清楚,连接到(例如)I/O逻辑元件715的实际I/O垫是使用在各种所示出的逻辑块上方的分层金属来制造,并且通常不局限于输入/输出逻辑元件715的区域。
在所描绘的实施例中,接近裸片中心的柱状区域(图7中示出为阴影)被用于配置、时钟以及其它控制逻辑。从此柱延伸的水平区域709用于在FPGA的整个广度上分配时钟和配置信号。
一些利用图7中所示出架构的FPGA包含使组成FPGA的大部分的普通柱状结构中断的额外逻辑块。所述额外逻辑块可以是可编程块和/或专用逻辑。举例来说,图7中所示的处理器块PROC 710横跨若干列CLB和BRAM。
应注意,图7旨在仅仅说明示例性FPGA架构。在图7顶部处包含的一列中逻辑块的数目、列的相对宽度、列的数目以及次序、包括在列中的逻辑块的类型、逻辑块的相对大小,以及互连/逻辑实施方案纯粹为示例性的。举例来说,在实际的FPGA中,在任何出现CLB的地方通常包括超过一个相邻的CLB列,以便于用户逻辑的有效实施。
所述实施例被认为适用于使用存储器的多种应用。在考虑本说明书后,其它方面和实施例对于所属领域的技术人员将显而易见。所述实施例可以实施为经配置以执行软件的一或多个处理器、专用集成电路(ASIC)或在可编程逻辑装置上的逻辑。希望仅将本说明书和所示出的实施例视作实例,其中本发明的真实范围由所附权利要求书来指定。
Claims (15)
1.一种存储器,其包括:
多个存储块;
第一组存取端口及第二组存取端口;
路由电路,其将所述第一组存取端口和所述第二组存取端口中的每一对耦合到所述多个存储块中的相应者,所述第一组存取端口和所述第二组存取端口中的每一对包含来自所述第一组存取端口的第一存取端口及来自所述第二组存取端口的第二存取端口;且
其中:
第一存取端口各自具有对所述多个存储块中的所述相应者的第一部分的写入存取权,具有对所述多个存储块中的所述相应者的第二部分的读取存取权,但不具有对所述多个存储块中的所述相应者的所述第一部分的读取存取权,及不具有对所述多个存储块中的所述相应者的所述第二部分的写入存取权;以及
第二存取端口各自具有对所述多个存储块中的所述相应者的所述第二部分的写入存取权,具有对所述多个存储块中的所述相应者的所述第一部分的读取存取权,但不具有对所述多个存储块中的所述相应者的所述第二部分的读取存取权,及不具有对所述多个存储块中的所述相应者的所述第一部分的写入存取权。
2.根据权利要求1所述的存储器,其中:
所述多个存储块中的每一者的第一部分各自专门用于缓冲流出数据;以及
所述多个存储块中的每一者的第二部分各自专门用于缓冲流入数据。
3.根据权利要求1或2所述的存储器,其中所述多个存储块在多个堆叠的半导体裸片上实施。
4.根据权利要求3所述的存储器,其中所述多个存储块中的每一个在所述多个堆叠的半导体裸片中的相应者上实施。
5.根据权利要求3所述的存储器,其进一步包括∶
插入件,其中所述多个堆叠的半导体裸片被电耦合到所述插入件的正面上的触点。
6.根据权利要求1或2所述的存储器,其中所述多个存储块中的每一个包含两个存储片。
7.根据权利要求1或2所述的存储器,其中所述路由电路包含可编程延迟电路,其经配置以调整在所述多个存储块与所述第一组存取端口和所述第二组存取端口之间的一或多个路径上的时序。
8.根据权利要求7所述的存储器,其中对于所述一或多个路径中展现最少时延的路径,不予以调整时序。
9.根据权利要求7所述的存储器,其中所述可编程延迟电路包含多个多路复用(MUX)可选择路径,所述多路复用可选择路径中的每一个包含不同数目的触发器。
10.根据权利要求1或2所述的存储器,其中对于所述多个存储块中的每一个,所述存储块的所述第一部分和所述第二部分各自包含整数数目的存储体。
11.根据权利要求1或2所述的存储器,其中所述路由电路包含耦合到所述多个存储块及所述第一组存取端口和所述第二组存取端口的纵横接线器,所述纵横接线器按比所述存储块的顺序存取可进行的速率还大的速率来定时,以减少队头(head-of-line)阻塞。
12.根据权利要求1或2所述的存储器,其中所述多个存储块以及所述路由电路可经配置以:
对于每个存储块,响应于配置比特流来调整包含在相应的所述第一部分中的所述存储块的量以及包含在相应的所述第二部分中的所述存储块的量。
13.根据权利要求12所述的存储器,其中所述多个存储块中的每一个包含:
多个存储体,每个存储体具有一或多个存取端口;以及
对于每个存储体,相应的选择电路经配置以将读取请求从由所述配置比特流指定的所述第一组存取端口和所述第二组存取端口中的对应对的一个存取端口转发到所述存储体的所述一或多个存取端口,并且经配置以将写入请求从所述第一组存取端口和所述第二组存取端口中的所述对应对的另一个存取端口转发到所述存储体的所述一或多个存取端口。
14.一种对多个存储块的存取进行控制的方法,其包括:
将第一组存取端口和第二组存取端口中的每一对耦合到所述多个存储块中的相应者,所述第一组存取端口和所述第二组存取端口中的每一对包含来自所述第一组存取端口的第一存取端口及来自所述第二组存取端口的第二存取端口;
将所述第一组存取端口中的每一个配置为具有对所述多个存储块中的相应者的第一部分的写入存取权,及具有对所述多个存储块中的所述相应者的第二部分的读取存取权;
将所述第一组存取端口中的每一个配置为不具有对所述多个存储块中的所述相应者的所述第一部分的读取存取权,及不具有对所述多个存储块中的所述相应者的所述第二部分的写入存取权;
将所述第二组存取端口中的每一个配置为具有对所述多个存储块中的所述相应者的第二部分的写入存取权,及具有对所述多个存储块中的所述相应者的所述第一部分的读取存取权;以及
将所述第二组存取端口中的每一个配置为不具有对所述多个存储块中的所述相应者的所述第二部分的读取存取权,及不具有对所述多个存储块中的所述相应者的所述第一部分的写入存取权。
15.根据权利要求14所述的方法,其进一步包括:
对于每个存储块,响应于配置比特流来调整包含在相应的所述第一部分中的所述存储块的量以及包含在相应的所述第二部分中的所述存储块的量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/314,079 US8611175B2 (en) | 2011-12-07 | 2011-12-07 | Contention-free memory arrangement |
US13/314,079 | 2011-12-07 | ||
PCT/US2012/058039 WO2013085606A2 (en) | 2011-12-07 | 2012-09-28 | Contention-free memory arrangement |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104106115A CN104106115A (zh) | 2014-10-15 |
CN104106115B true CN104106115B (zh) | 2017-03-22 |
Family
ID=47172872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280069104.7A Active CN104106115B (zh) | 2011-12-07 | 2012-09-28 | 无竞争的存储器配置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8611175B2 (zh) |
EP (1) | EP2788983B1 (zh) |
JP (1) | JP5947397B2 (zh) |
KR (1) | KR101816970B1 (zh) |
CN (1) | CN104106115B (zh) |
IN (1) | IN2014CN04171A (zh) |
WO (1) | WO2013085606A2 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8947931B1 (en) * | 2014-06-13 | 2015-02-03 | Sandisk Technologies Inc. | Memory module |
US9864710B2 (en) * | 2015-03-30 | 2018-01-09 | EMC IP Holding Company LLC | Writing data to storage via a PCI express fabric having a fully-connected mesh topology |
JP2018032141A (ja) * | 2016-08-23 | 2018-03-01 | 東芝メモリ株式会社 | 半導体装置 |
US10141938B2 (en) | 2016-09-21 | 2018-11-27 | Xilinx, Inc. | Stacked columnar integrated circuits |
US10635331B2 (en) * | 2017-07-05 | 2020-04-28 | Western Digital Technologies, Inc. | Distribution of logical-to-physical address entries across bank groups |
US10346093B1 (en) * | 2018-03-16 | 2019-07-09 | Xilinx, Inc. | Memory arrangement for tensor data |
US20200125506A1 (en) * | 2018-10-23 | 2020-04-23 | Etron Technology, Inc. | Superscalar Memory IC, Bus And System For Use Therein |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993687A (zh) * | 2004-08-05 | 2007-07-04 | 罗伯特·博世有限公司 | 用于控制对通信组件的消息存储器的数据访问的消息管理器和方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62145172A (ja) * | 1985-12-20 | 1987-06-29 | Fujitsu Ltd | 試験回路付入出力パツフア |
JP2546901B2 (ja) * | 1989-12-05 | 1996-10-23 | 株式会社日立製作所 | 通信制御装置 |
JPH0668022A (ja) * | 1992-08-18 | 1994-03-11 | Oki Electric Ind Co Ltd | ダイレクトメモリアクセス装置 |
GB9618137D0 (en) * | 1996-08-30 | 1996-10-09 | Sgs Thomson Microelectronics | Improvements in or relating to an ATM switch |
JP2000209172A (ja) * | 1999-01-14 | 2000-07-28 | Matsushita Electric Ind Co Ltd | 多重化装置及び多重化システム |
KR100546331B1 (ko) * | 2003-06-03 | 2006-01-26 | 삼성전자주식회사 | 스택 뱅크들 마다 독립적으로 동작하는 멀티 포트 메모리장치 |
KR100655081B1 (ko) | 2005-12-22 | 2006-12-08 | 삼성전자주식회사 | 가변적 액세스 경로를 가지는 멀티 포트 반도체 메모리장치 및 그에 따른 방법 |
US8861300B2 (en) * | 2009-06-30 | 2014-10-14 | Infinera Corporation | Non-blocking multi-port memory formed from smaller multi-port memories |
US8547774B2 (en) * | 2010-01-29 | 2013-10-01 | Mosys, Inc. | Hierarchical multi-bank multi-port memory organization |
-
2011
- 2011-12-07 US US13/314,079 patent/US8611175B2/en active Active
-
2012
- 2012-09-28 CN CN201280069104.7A patent/CN104106115B/zh active Active
- 2012-09-28 WO PCT/US2012/058039 patent/WO2013085606A2/en active Application Filing
- 2012-09-28 EP EP12784372.0A patent/EP2788983B1/en active Active
- 2012-09-28 KR KR1020147017494A patent/KR101816970B1/ko active IP Right Grant
- 2012-09-28 JP JP2014545893A patent/JP5947397B2/ja active Active
- 2012-09-28 IN IN4171CHN2014 patent/IN2014CN04171A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993687A (zh) * | 2004-08-05 | 2007-07-04 | 罗伯特·博世有限公司 | 用于控制对通信组件的消息存储器的数据访问的消息管理器和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013085606A3 (en) | 2014-08-14 |
KR20140102718A (ko) | 2014-08-22 |
CN104106115A (zh) | 2014-10-15 |
KR101816970B1 (ko) | 2018-01-09 |
EP2788983B1 (en) | 2016-04-06 |
JP2015506025A (ja) | 2015-02-26 |
JP5947397B2 (ja) | 2016-07-06 |
IN2014CN04171A (zh) | 2015-07-17 |
US8611175B2 (en) | 2013-12-17 |
EP2788983A2 (en) | 2014-10-15 |
WO2013085606A2 (en) | 2013-06-13 |
US20130148450A1 (en) | 2013-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104106115B (zh) | 无竞争的存储器配置 | |
CN107209734B (zh) | 用于控制混合存储系统的运行的电路和方法 | |
TWI390913B (zh) | 使用一緩衝交叉式交換系統用於在資料模組之間傳輸資料的裝置、方法、以及機器可讀儲存媒體 | |
Rezaei et al. | NoM: Network-on-memory for inter-bank data transfer in highly-banked memories | |
CN109783410A (zh) | 执行并行运算处理的存储器设备和包括其的存储器模块 | |
WO2020231521A1 (en) | On-chip network in programmable integrated circuit | |
CN102866980B (zh) | 用于多核微处理器片上互连网络的网络通信胞元 | |
CN109564914A (zh) | 用于堆叠硅互连(ssi)技术集成的独立接口 | |
Daneshtalab et al. | A low-latency and memory-efficient on-chip network | |
CN109240980A (zh) | 具有多个高速串行访存通道的访存密集型算法加速芯片 | |
US20150309725A1 (en) | Shared Memory Controller and Method of Using Same | |
CN105159853B (zh) | 基于fpga的dfi标准ddr3控制器 | |
US9069912B2 (en) | System and method of distributed initiator-local reorder buffers | |
CN102129418A (zh) | 一种高端容错计算机系统及实现方法 | |
WO2023030053A1 (zh) | 一种llc芯片、缓存系统以及llc芯片的读写方法 | |
CN108390831B (zh) | 一种高阶路由器输入端口缓冲优化结构 | |
US8015386B1 (en) | Configurable memory manager | |
CN112214427A (zh) | 缓存结构、工作量证明运算芯片电路及其数据调用方法 | |
Kim et al. | A network congestion-aware memory controller | |
Mora et al. | Towards an efficient switch architecture for high-radix switches | |
García-Vidal et al. | A DRAM/SRAM memory scheme for fast packet buffers | |
US20070180216A1 (en) | Processor with programmable configuration of logical-to-physical address translation on a per-client basis | |
EP2405362B1 (en) | A connection arrangement | |
US7047385B1 (en) | High-speed memory for use in networking systems | |
CN216119560U (zh) | 一种llc芯片及缓存系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |