CN108255521A - 一种用于实现线路速度互连结构的方法 - Google Patents

一种用于实现线路速度互连结构的方法 Download PDF

Info

Publication number
CN108255521A
CN108255521A CN201810161735.0A CN201810161735A CN108255521A CN 108255521 A CN108255521 A CN 108255521A CN 201810161735 A CN201810161735 A CN 201810161735A CN 108255521 A CN108255521 A CN 108255521A
Authority
CN
China
Prior art keywords
input
output
computing device
line speed
grouping
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.)
Granted
Application number
CN201810161735.0A
Other languages
English (en)
Other versions
CN108255521B (zh
Inventor
穆罕默德·阿布达拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN108255521A publication Critical patent/CN108255521A/zh
Application granted granted Critical
Publication of CN108255521B publication Critical patent/CN108255521B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1523Parallel switch fabric planes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种用于线路速度互连处理的方法。该方法包括从输入通信路径接收初始输入,通过利用第一阶段互连并行处理器,执行对所述初始输入的预分类,以创建中间输入,以及通过利用第二阶段互连并行处理器,执行对所述中间输入的最终组合和分割,以创建结果输出。该方法还包括以线路速度将所述结果输出传输出所述第二阶段。

Description

一种用于实现线路速度互连结构的方法
本申请是PCT国际申请号为PCT/US2014/026427、国际申请日为2014年3月13日、进入中国国家阶段的申请号为201480024465.9,题为“一种用于实现线路速度互连结构的方法”的发明专利申请的分案申请。
相关申请的交叉引用
原申请要求2013年3月15日递交的、Mohammad A.Abdallah的名为“A METHOD FORIMPLEMENTING A LINE SPEED INTERCONNECT STRUCTURE”、专利申请号为61/852389的共同未决共同转让的美国临时专利申请的权益,其全部内容被结合于此。
技术领域
本申请一般涉及数字计算机系统,更具体地,涉及用于选择包括指令序列的指令的系统和方法。
背景技术
要求处理器处理多个或依赖性的或完全独立的任务。这种处理器的内部状态通常包括寄存器,该寄存器可以保持程序执行的每个特定瞬间的不同值。在程序执行的每个瞬间,内部状态图像被称作处理器的体系架构状态。
当代码执行被切换以运行另一函数(例如,另一线程、进程或程序)时,则不得不保存机器/处理器的状态,使得新的函数可以利用内部寄存器来构建其新的状态。一旦新的函数被终止,则可丢弃其状态,并且将恢复之前的上下文的状态,并且执行继续。这种切换处理被称为上下文切换,并且通常包括数十或成百个周期,特别是针对利用大数量的寄存器(例如,64,128,256)和/或乱序执行的现代体系架构而言。
在线程感知的硬件体系架构中,对硬件来说支持针对有限数量的硬件支持的线程的多个上下文状态是正常的。在该情形中,针对每个所支持的线程,硬件复制所有体系架构状态元件。这消除了当执行新线程时进行上下文切换的需要。但是,这仍具有多个缺陷,即针对每个硬件中所支持的额外线程,复制所有体系架构状态元件(即,寄存器)的区域、功率和复杂度。另外,如果软件线程的数量超过硬件明确支持的线程的数量,则必须仍执行上下文切换。
这变得很平常,因为基于要求大量线程的精确粒度,并行化是需要的。带有复制的上下文状态硬件存储器的硬件线程感知的体系架构对非线程化软件代码无益,并且仅减少了线程化的软件的上下文切换次数。但是,那些线程通常被构建用于粗粒度并行化,并且导致用于初始化和同步的繁重的软件开销,使得诸如函数调用和循环并行执行之类的细粒度并行化没有高效的线程初始化/自动生成。这种所描述的开销伴随有针对非明确/容易并行化/线程化的软件代码利用现有技术的编译器或用户并行化技术来进行对这种代码的自动并行化的困难。
发明内容
在一个实施例中,本发明被实现为一种用于线路速度互连处理的方法。该方法包括从输入通信路径接收初始输入,通过利用第一阶段互连并行处理器,执行对所述初始输入的预分类,以创建中间输入,以及通过利用第二阶段互连并行处理器,执行对所述中间输入的最终组合和分割,以创建结果输出。该方法还包括以线路速度将所述结果输出传输出所述第二阶段。
前述是概要,并且因此必须包括简化、概括,以及省略细节;因此,本领域技术人员将理解,该概要是阐释性的,并且不意欲以任何方式限制。鉴于以下给出的非限制性详细的描述,完全由权利要求所限定的本发明的其他方面、创造性特征和优势将变得明显。
附图说明
本发明由示例示出,而非限制,在附图的示图中,相似的参考标号指相似的元件。
图1示出了根据本发明的一个实施例的线路速度互连结构的概略图。
图2示出了根据本发明的一个实施例的对线路速度互连结构的联网实现的概述。
图3示出了根据本发明的一个实施例的由线路速度互连结构所使用的处理的某些术语。
图4示出了根据本发明的一个实施例的如何使用FB值和NP值的第二示图。
图5示出了根据本发明的一个实施例的示出了初始位置/分组号码、新的分组中的新的位置号码,以及结果输出分组号码之间的关系的另一示图。
图6示出了根据本发明的一个实施例的上述模2评估方程的操作的更加详细的示图。
图7描述了根据本发明的一个实施例的高速缓存访问实现的操作,其中高速缓存的访问被重新定位并布置到针对存储器层级的高速缓存线的大小对齐的新的发出的高速缓存访问中。
图8示出了根据本发明的一个实施例的、根据高速缓存端口的重新映射处理的示图。
图9示出了根据本发明的一个实施例的、根据高速缓存端口的两阶段重新映射处理的示图。
图10描述了根据本发明的一个实施例的计算机指令实现的操作,其中计算机指令被重新定位并融合或分成新的发出的计算机指令。
图11描述了根据本发明的一个实施例的仲裁器实现的操作,其中不同的源针对多个发出的目的地被仲裁。
图12示出了根据本发明的一个实施例的仲裁器实现的另一示图,其中不同的源针对多个发出的目的地被仲裁。
图13示出了根据本发明的一个实施例的仲裁器实现的另一示图,其中不同的源针对多个发出的目的地被仲裁。
图14示出了根据本发明的一个实施例的对示出了模2评估方程的电子表格的图形描绘。
图15示出了根据本发明的一个实施例的对累积和评估处理的操作。
图16示出了根据本发明的一个实施例的、描绘了用于并行执行累积和评估的电路的示图。
图17示出了根据本发明的一个实施例的执行对累积和的评估的电路的示图。
图18示出了根据本发明的一个实施例的执行对累积和的评估的第二电路的示图。
图19示出了并行加法器实现的示例性体系架构。
图20示出了根据本发明的一个实施例的、描绘了并行进位保存加法器的示图。
图21示出了根据本发明的一个实施例的阶段优化高速度并行加法器的实施例。
具体实施方式
虽然已经与一个实施例一起描述了本发明,但是,本发明并不意欲限制为此处所给出的具体形式。相反,意欲覆盖这种替换例、修改例和等同例,只要能合理地被包括在所附权利要求所限定的本发明的范围内即可。
在以下的详细的描述中,已经给出了众多具体的细节,诸如具体的方法顺序、结构、元件和连接。但是,应理解,无需利用这些以及其他具体细节来实践本发明的实施例。在其他情况中,已经省略了已知的结构、元素或连接,或者未以特定细节来描述,以便避免不必要地模糊本描述。
本说明书中对“一个实施例”或“实施例”的引用意欲指示与实施例一起描述的特定特征、结构或特点被包括在本发明中的至少一个实施例中。本说明书中各处所出现的短语“在一个实施例中”并不必须都指相同的实施例,单独的或可替换的实施例也并非与其他实施例互斥。另外,描述了各种特征,其可有某些实施例而非其他实施例展现。类似地,描述了各种要求,其可能是某些实施例而非其他实施例的要求。
之后的详细描述的某些部分以流程、步骤、逻辑块、处理、以及对计算机存储器内的数据比特的操作的其他符号表示的方式呈现。这些描述和表示是数据处理领域的技术人员用来最有效地将他们的工作传达给其他本领域技术人员的手段。此处的流程、计算机执行的步骤、逻辑块、处理等一般被看作为导致所希望的结果的步骤或指令的自洽序列。步骤是要求对物理量进行的物理操纵。通常,虽然不是必须的,这些量以计算机可读存储介质的电或磁信号的形式存在,并且能够在计算机系统中被存储、转移、组合、比较,以及否则操纵。主要出于通用原因,将这些信号称为比特、值、元素、符号、字符、术语、数字等有时已经被证实为很方便。
但是,应牢记,所有这些和类似的术语要与合适的物理量相关联,并且仅仅是应用到这些量的方便的标签。除非特别声明,否则从以下的讨论中很显然,应理解,遍及本发明,利用诸如“处理”、或“访问”、或“写入”、或“存储”、或“复制”等之类的术语的讨论指计算机系统或类似电子计算设备的动作和处理,该电子计算设备操纵并将计算机系统的寄存器和存储器以及其他计算机可读介质中表示为物理(电子)量的数据转化成计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备中同样被表示为物理量的其他数据。
本发明的实施例实现了一种线路速度互连结构,以用于要求极其低的延迟的应用中。存在许多联网操作影响这种应用,其无法忍受延迟。为了将进来的分组转发给不同的目的地,要求非常高速度的电路。以下的示图示出了这种高速度电路的若干实施例,并且示出了这种结构在联网环境切换分组中的使用,在管理至不同高速缓存线的访问以及至不同开放DRAM页的访问的处理环境中的使用,以及在任何合并和/或分割宏指令为对应的合并和/或分割微指令的处理环境中的使用。
在许多实现中,元素以并行请求或分组进来,并且其经历一个或多个通用的动作。例如,它们中的两个或更多个可被组合、合并或分组,以形成统一/均一的请求或分组。其他动作可将请求或分组分割成或分段成两个或更多个请求或分组。另一个示例是可变长度联网分组。相同的概念可被应用至固定大小的分组,其支持多个固定大小。
以下的示图示出了这种线路速度互连结构的不同实施例。应当注意,术语“目的地”并不必意味着最终目的地。
图1示出了根据本发明的一个实施例的线路速度互连结构的概略图。图1概略图示出了线路速度互连如何包括了两个阶段。
在图1实施例中,第一阶段接收初始输入,并且在初始输入上执行预分类/分簇。第一阶段的输出被传递给第二阶段,其执行最终的重新映射。第二阶段的输出随后被传递至线路速度处。预分类阶段通过在将被检查以用于配对的初始输入中识别潜在的候选者来工作,例如利用目的地ID的第一匹配等等。第二阶段随后执行位置混排(shuffling)、配对或分割。线路速度通过能够并行组合并且分割输入以及创建结果输出来完成。
图1的结构可被应用在多种不同的实现中,其将在后续示图中描述。实现包括联网体系架构、高速缓存访问体系架构、DRAM访问体系架构,以及仲裁体系架构,以及计算机指令组合/分割体系架构。遍及这些实现,此处图1中所图示的整体结构提供了将输入组合/分割成结果输出的线路速度。
图2示出了根据本发明的一个实施例的线路速度互连结构的联网实现的概述。
如以上所描述的,存在许多应用,其中输入请求、访问、数据、指令或分组的集合经历了将这些输入重新映射/复用或混排至不同的输出;对此一个非常常见的理由是,如果两个或更多个这些输入合并、组合或分组在一起,另一个原因是,当这些输入被分割、划分、分段或广播时,这两个原因可导致将输入完全重新映射至任意接口、互连的输出,导致对数据或请求或访问的混排、指令编码、路由或任意复用。在许多这些应用和实现中,线路速度/管线速度被维持有这种重新映射功能也是很重要的。
图2示出了联网实现,其利用线路速度互连结构的低延迟优势,其中联网分组经历重新映射/组合/混排/分割处理,以接受进来的分组(示出为图2的左手边中的分组P0至P8),并且将其处理成发出的分组(例如,示出为指向中央路由器的箭头0至8)。中央路由器随后将分组发送至其目的地,示出为Ra至Rd。
因此,图2示出了一种处理,其中进来的分组的目的地和大小确定了它们如何被分割/组合/混排/重新排序。在一个实施例中,目标是将去往相同的下一个目的地(跨过相同的瞬态路径)的两个短分组配对。配对的理想条件将是这样的实例:两个分组都是短分组,并且它们去往相同的目的地。另外,在一个实施例中,目标是接受不同大小的进来的分组,并且执行分割/组合/混排/重新排序,以创建发送至中央路由器的统一大小的发出的分组。每个发出的分组示出为具有上半部和下半部(例如,偶数的或奇数的),以示出多个短分组是如何被组合的。
如图2中所示,P0去往目的地1并且是短分组,其被布置在发出的分组0中。下一个分组P1是中间大小的分组,并且去往不同于目的地P0的目的地。P1被排序成发出的分组1的上半部和下半部。P2和P3都是去往相同目的地的短分组,在该情形中为目的地3。因此,P2和P3被组合成发出的分组2。P4是大分组,并且示出了其中大分组被分割成两个或更多个发出的分组的示例,此处示出为P4被分割成占据发出的分组3和4。P5和P6都是去往相同目的地的短分组,并且因此被组合成发出的分组5。P7和P8是去往不同目的地的短分组,并且因此不能被组合。因此,它们中的每一个被指派至其自身各自的发出的分组6和7。并且因此,该处理针对所接收的所有进来的分组继续执行。如图2中所图示的,该处理被并行实现,并且具有非常小的延迟(例如,线路速度)。
图3示出了根据本发明的一个实施例的由线路速度互连结构所使用的处理的某些术语。在本实施例中,术语FB=0指示短分组,术语FB=1是指长分组,并且术语FB=3指示非常长的分组。术语NP=0指示分组具有相同的目的地。如上所述,在一个实施例中,目标是将去往相同下一目的地(跨越相同的瞬态路径)的两个短分组配对。配对的理想条件将是这样的实例:分组都是短分组,并且它们去往相同的目的地。因此,图3的表中示出了如何使用FB值和NP值,以快速地评估进来的分组是否可以通过它们自身配对、分割,或发送成发出的分组。通过这种方式,FB可被想作是桶/块/分组是否是完整的,并且NP可描述它们是否去往相同的目的地(例如,由虚线框301中的对所示出的)。图4中所示出的术语“sdx”指去往目的“x”的短分组,并且术语“ldx”指去往目的地“x”的长分组。
图4示出了第二示图,该示图示出了根据本发明的一个实施例,如何使用FB值和NP值。图4示出了其中使用了评估方程的用于处理所有进来的分组并确定将进来的分组分割/组合/重新排序成发出的分组的方式。另外,并行执行该评估。
如以上所描述的,目标是将去往相同下一目的地(例如,跨越相同的瞬态路径)的两个短分组配对。针对两个分组的条件应当是FB=0(例如,二者都是短分组),并且后一个分组应当具有NP=0(例如,后一个分组具有与更早的分组相同的目的地,并且因此可被配对)。评估方程可被写作M5=G5+OR(MOD(G5,2)I5)*(MOD(E5+MOD(SUM(M$2:M4),2),2)),其中MOD指模2运算。这在框401中示出,其示出了用于评估元素E5的新位置的示例。框402示出了用于评估元素E6的新位置的另一示例。6上面的星号指示6是分割的第一部分的位置。分割的第二部分的位置通过将分割的第一部分的位置加2而本地生成。
以上方程中的OR试图找出NP或FB是否被设置。如果其中一个被设置,则评估处理将创建气泡(bubble),并且该气泡将处于上半部分或下半部分(例如,偶数的或奇数的)的位置处。方程将当前位置与当前位置之前的所有气泡累积相加。方程的操作示出在图4中所描绘的表中,并且还由图4的下半部分示出,其中进来的分组I0至I7被描绘为它们如何被处理成发出的分组0至7。
图5示出了根据本发明的一个实施例的示出了初始位置/分组号码、新的分组中的新的位置号码,以及结果输出分组号码之间的关系的另一示图。进来的分组可以是短的,其被表示为“S”,长的,其被表示为“L”,或非常长的,其被表示为“VL”。在本示例中,目的地都是相同的,被表示为术语“D1”。因此,图5是对初始分组位置如何被变成结果发出分组的新的分组位置的阐释。某些分组被组合(例如,分组0和分组1),并且,某些分组被分割(例如,分组2和分组6)。具体地,图5示出了非常大的分组(例如,分组6)如何被分割以占据输出分组。对初始分组的处理用上述模2评估方程并行执行。
图6示出了根据本发明的一个实施例的上述模2评估方程的操作的更加详细的示图。
如上所述,在许多实现中,元素作为并行请求或分组进来,并且其经历一个或多个通用的动作。它们中的两个或更多个可被组合、合并或分组,以形成统一/均一的请求或分组。其他动作可以是将请求或分组分割成或分段成两个或更多个请求或分组。第一个示例是可变长度联网分组。相同的概念可被应用于固定大小的分组,其中支持多个固定大小。并且另外,该评估的之后的分组应当具有NP=0(之后的分组具有与之前的分组相同的目的地,并且因此可被配对)。
在许多实现中,元素作为并行请求或分组进来,并且其经历一个或多个通用的动作。它们中的两个或更多个可被组合、合并或分组,以形成统一/均一的请求或分组。其他动作可以是将请求或分组分割成或分段成两个或更多个请求或分组。第一个示例是可变长度联网分组。相同的概念可被应用于固定大小的分组,其中支持多个固定大小。
图6实施例描述了路由体系架构实现的操作,其中可变大小的初始分组被重新定位并布置成新的发出的统一大小的分组。在本实现中,发出的分组具有偶数位置和奇数位置。根据上述模2函数,可变大小的初始分组被布置到偶数位置和奇数位置。在本实施例中,“NP”指示符当针对初始分组被设置为0时,指示这两个分组可被组合或合并在一起,因为它们去往相同的中间/瞬态目的地。当“NP”被设置为1时,则它们不能被组合或合并,因为它们去往不同的目的地。通过相应地调整取模函数,针对分组多于两个,分组/组合可被促进。
但是,当FB指示符被设置为1时,大的分组需要被分段成两个更小的分组(分组要求完整的块/桶:统一的奇数/偶数槽位(slot))。另一个FB被设置为1的理由是,每当共享相同中间/瞬态目的地的初始合并的两个分组需要被分割成带有不同的最终目的地的两个不同的分组时。FB可被设置为3,如果分组需要被分割成4片。
左侧的图6的示图示出了初始分组号/位置、值FB和NP,以及目的地。图6的右侧,示出了跨越位置的气泡以及新的位置。公式首先计算由气泡所导致的从初始位置的累积布置。然后,通过将初始位置与累积布置的累积和相加来计算新的位置。该累积和属性由虚线椭圆示出,其示出了每个后续位置是如何由所有之前的位置的累积和所确定的。另外,虚线箭头示出了初始位置和NP值如何作为因子转化为评估方程。
图7描述了根据本发明的一个实施例的高速缓存访问实现的操作,其中高速缓存的访问被重新定位并布置到针对存储器层级的高速缓存线的大小对齐的新的发出的高速缓存访问中。
如上所述,在许多实现中,元素作为并行请求进来,并且其经历一个或多个处理动作。在一个情形中,两个或更多个请求可被组合、合并或分组,以形成统一/均一的请求或分组。其他情形可以是将请求分割成或分段成两个或更多个请求。
图7实施例描述了存储器/高速缓存体系架构,其中在存在试图访问其他高速缓存线的其他存储器请求的情况下,不同的存储器请求访问相同的高速缓存线。在该情形中,希望合并访问相同高速缓存线的两个或更多个请求。
例如,请求可被重新排序,使得至相同高速缓存线的请求被合并,以便只有一个请求争取该高速缓存线,并且,该高速缓存线恢复。不存在对相同高速缓存线的多个请求和多个返回。非对准的存储器请求(例如,请求跨越两个不同高速缓存线的数据)是分割的示例,其中该请求被分割成针对包括非对准的请求数据的两个不同的高速缓存线的两个请求。
在本实施例中,访问相同的高速缓存线的两个请求被组合成相同的统一的请求(奇数-偶数槽位)。根据上述模2评估函数,初始存储器请求被布置到偶数和奇数位置中。在本实施例中,“NP”指示符当针对初始请求被设置为0时,并且指示这两个请求可被组合或合并在一起,因为它们正访问相同的高速缓存线。当“NP”被设置为1时,则它们不能被组合或合并在一起,因为它们正访问不同的高速缓存线。通过相应地调整取模函数,针对分组多于两个,分组/组合可被促进。
但是,当FB指示符被设置为1时,非对准的存储器请求需要被分割成两个不同的高速缓存线访问。FB可被设置为3,如果访问需要被分割成4个高速缓存线访问,例如要求访问多于一个高速缓存线的特殊的存储器请求(例如,字符串、缓冲器复制、I/O请求等等)。如上所述,评估公式首先计算由气泡所导致的从初始位置的累积布置。然后,通过将初始位置与累积布置的累积和相加来计算新的位置。
应当注意,在本存储器/高速缓存实现(不同于联网情况)中,当两个高速缓存线请求被组合时,它们变为单个请求,并且它们物理上不占据块/桶的奇数/偶数槽位。但是,奇数和偶数槽位代表高速缓存线中的两个不同的地址。
应当注意,在本实现中,每个奇数偶数槽位代表可被独立承载到至高速缓存系统/存储器系统的不同的端口或总线的访问。
另外,应当注意,在本存储器/高速缓存实现中,气泡的概念是无法利用偶数槽位和奇数槽位二者来访问给定的高速缓存线。
在另一实现中,由图7所描述的相同的存储器访问概念可被应用于DRAM控制器,其中多个请求被组合在一起,以访问存储器系统中的相同的开放的DRAM页。在这种实施例中,DRAM页被看作是类似于存储器层级的高速缓存线。该类似特别应用于DRAM页被打开或关闭的方式。在本实现中,至DRAM的请求被重新排序,使得至相同DRAM页的请求被移动到一起,使得当DRAM页打开时,它们可以访问该DRAM页。与当DRAM页关闭时访问DRAM页相比,当该页是打开时,至DRAM的请求更快。打开关闭的DRAM页花费一定量的延迟。因此,请求被重新排序至相同的总线/端口/信道/DRAM存储器条,以获得对相同DRAM条/DRAM页的多个访问的益处。
图8示出了根据本发明的一个实施例的、根据高速缓存端口的重新映射处理的示图。图8的左手边示出了一系列初始高速缓存访问请求,示出为“A”至“F”。本发明的评估处理对初始高速缓存请求执行预分簇/过滤/混排处理。图8中所图示的Mrs作为初始位置,其随后经历了至新位置的映射。这些新位置对应于高速缓存存储器的端口或条。图8示出了上述相同的结构可如何利用NP值来确定访问是否应当被组合(例如,LD(A)和LD(B)),并且可利用FB值来确定访问是否应当被分割(例如,LD(F),其需要访问两个不同的场地(court)/条)。在非对准的访问的情形中,其请求跨越多于一个高速缓存线的数据,访问一般被分割。
应当注意,在一个实施例中,应当实现这样的端口:其中整个高速缓存是一个统一的多端口条,或者高速缓存可被分割,其中高速缓存线被跨越多个条分割,使得每个条具有一个或一些端口,在这种情形中,经配对的访问被检查,以去往高速缓存线的相同条。
图9示出了根据本发明的一个实施例的、根据高速缓存端口的两阶段重新映射处理的示图。例如,虽然图8仅描绘了单个阶段,但是,图9,出于阐释的目的,描绘了根据本发明的一个实施例的两个阶段的处理。如之前对图1的讨论所描述的,通过两个阶段的处理,第一阶段执行对初始输入的预分簇/移位/混排/分组,在该情形中,是对高速缓存的访问。第二阶段执行对高速缓存的访问的最终映射。
在图9的实施例中,为了找到去往相同的高速缓存线的载入请求,使用比较逻辑来扫描进来的载入请求组并找到第一匹配。例如,当LD(A)被检查时,比较逻辑找到去往相同高速缓存线的LD(D)。这导致LD(D)被混排或实质上被关联至靠近LD(A)。相同的事发生在LD(B)上,其中比较逻辑找到LD(E)。如所示,这可被实现为比较并找到第一匹配。
随着载入请求被混排和重新排序,如果不存在将要转移至第二阶段的对应的载入请求,则预分簇阶段中的初始位置和结果位置可被无效。从预分簇阶段到重新映射阶段的载入请求的表示可被称为虚拟请求。
当访问相同的高速缓存线(例如,NP=0)时,重新映射的结果包括多个合并的载入请求。重新映射的不同结果包括非对准的访问分割(例如,FB=3),其中非对准的访问被分割成两个高速缓存线访问。
一旦重新排序的虚拟请求由第二阶段接收,它们被重新映射(例如,根据NP变量或FB变量)成统一合并的发出的载入请求,其中某些虚拟请求已经被组合并且某些虚拟请求已经被分割。
应当注意,对最终映射阶段的实现是与之前的示图中所描述的示例相同的。如所示,无效的虚拟请求被自动删除,或者否则被过滤掉。值得注意的是,在无效请求已经被过滤掉之后,NP位被设置并检查。
图10描述了根据本发明的一个实施例的计算机指令实现的操作,其中计算机指令被重新定位并融合或分成新的发出的计算机指令。图10示出了以上示图中的结构脚本如何被用于计算机指令实现中,其中进来的指令,指令0至指令8,可被融合或分割,以创建新的发出的指令。通过并行将指令融合和分割成最终的指令/微指令,这被在图10中示出。块实现了对指令的并行打包/分割,诸如操作融合或操作分割成微操作。以类似于以上描述的实施例的方式,NP值可确定哪些指令被融合,并且FB值可确定哪些指令被分割。以类似于以上描述的实施例的方式,结果指令具有上半部分和下半部分(例如,或者奇数的/偶数的)。
图11描述了根据本发明的一个实施例的仲裁器实现的操作,其中不同的源针对多个发出的目的地被仲裁。图11示出了一种实现,其中以上实施例中所描述的结构被用于执行去往多个目的地的不同源之间的仲裁。例如,来自多个源的某些请求可被组合至相同的目的地。某些其他请求可被广播至多个目的地。以类似于以上描述的实施例的方式,NP值可确定哪些请求被组合,并且FB值可确定哪些请求被分割。
例如,在一个实施例中,NP=0导致合并操作(组合)。这通常在分解(paring)/唤醒通信(例如,掉电/睡眠,重置)中看到。一个示例是打印机或其他类型的外围设备。FB=1导致分割操作(例如,分割成两个或更多个)。这通常在广播通信中看到。
在图11的实施例中,NP=0导致合并操作(组合)。这通常在分解/唤醒通信中看到。一个示例是到打印机或其他类型的外围设备的请求。在本实施例中,FB=1导致分割操作(例如,分割成两个或更多个)。这通常在广播通信或掉电/睡眠、重置中看到。
图12示出了根据本发明的一个实施例的仲裁器实现的另一示图,其中不同的源针对多个发出的目的地被仲裁。图12示图示出了明确的两个阶段的实现。第一阶段以上述方式进行预分类和预分簇。第二阶段以上述方式执行分割中的最终分类组合。在图12的实施例中,如所示,第一阶段和第二阶段之间所示出的输入是具有不同带宽要求的广播流,这些广播流可被组合成单个高速度输出广播,例如,其实现了更快的时间复用或频率复用输出。
图13示出了根据本发明的一个实施例的仲裁器实现的另一示图,其中不同的源针对多个发出的目的地被仲裁。在图13的示出中,输出被视为不同的更快的接口或总线或信道。图13的左侧的输入可包括更低的频率/更低的带宽输入。如所示,仲裁器通过将这些输入组合或分割成带有更高频率的更高额的输出来工作。例如通过利用时间复用或频率复用,输出可具有更高的带宽。输入包括利用输出带宽的流。仲裁器利用频率和/或时间复用来在输入流中间进行仲裁,以创建结果的输出流。配对暗示着请求被连续排序,使得请求获得最佳的DRAM访问时间。图13的右手边示出了不同的目的地。例如,某些目的地是去往许多不同最终目的地的广播站。其他目的地是单点目的地。
图14示出了根据本发明的一个实施例的对示出了模2评估方程的电子表格的图形描绘。电子表格的上部分示出了串行模式评估处理(例如,串行模式FB/NP)。电子表格的下部分示出了并行模式评估处理(例如,并行模式FB/NP)。应当注意,电子表格示出了图6中所描述的评估处理期间所示出的方程。公式首先计算由气泡所导致的从初始位置的累积布置。然后,通过将初始位置与累积布置的累积和相加来计算新的位置。在串行处理中,如图14的上部分所示,该累积和出现在逐周期的处理中。在并行处理中,如图6的描述中所描述的,累积和被并行计算,如图14的下部分所示。
图15示出了根据本发明的一个实施例的对累积和评估处理的操作。图15示出了模2项方程可以如何通过展开递归项并归零重复项来简化的示例。这利用了模2运算的属性。图14的前三行示出了项M2、M3和M4。图14更加详细地示出了这些项。此处图15示出了从图14复制的取模项。由于取模项被展开,重复项可被归零。这在图15的第四行示出了,其中M4的重复项被归零。该属性导致需要递归求和的项的数量的减少,因此简化了实现该公式的电路的并行化。
图16示出了根据本发明的一个实施例的、描绘了用于并行执行累积和评估的电路的示图。图16示出了如何利用AND门来实现相乘项,以及如何利用XOR门来实现态度项(attitude term)。因此,图16示出了执行模2相加和相乘二者的逻辑电路。
该示图示出了阶段优化高速度重新映射逻辑结构,其被用于解决单个时钟周期中所描绘的取模函数。该重新映射逻辑特别适于任何其中多个一比特输入需要快速相加以产生一比特或两比特输出的应用。重新映射逻辑结构的目的是并行并以线路速度对遇到的分组进行映射或打包或分割。为了这样做,结构利用两个观察的优势。第一观察是当如示图中所示的展开递归和方程时,重复和元素将在模2运算下归零。第二观察是示图中所示的递归和方程中的相加元素和相乘元素如何在模2算数下表现。在这种条件下,相加元素变成XOR函数,并且相乘元素变成AND函数。这允许递归和方程如示图中所示的被映射到逻辑电路。括号内的元素是乘法,并且因此由AND门操作。括号外的元素是加法,并且因此由XOR门操作。现在,方程变为在空间上完全展开,而非被串行化。
为了找到重新映射的新位置,这些逻辑函数的输出被用于馈送并行加法器,并且该并行加法器产生虚拟请求至新位置的最终重新映射。通过这种方式,电路执行上述两个动作,其中两个或更多个那些输入(例如,虚拟请求)可被组合、合并或分组,以形成合并的请求。另一动作可以是将虚拟请求或分组分割或分段成两个或更多个请求。
通过这种方式,电路进行串行化相加处理,其中每个虚拟请求的布置依赖于每个在先的虚拟请求的布置,并且并行实现模2函数,以产生重新映射的输出请求。
图17示出了根据本发明的一个实施例的执行对累积和的评估的电路的示图。图17示出了评估方程项是如何被评估电路的硬件组件所处理的。该示图示出了阶段优化高速度加法器电路(例如,并行加法器1700),其被用来解决单个时钟周期中所描绘的取模函数。该电路特别适于任何其中多个一比特输入需要快速相加以产生一比特或两比特输出的应用。在以下的图21中进一步描述了并行加法器1700的细节。
如上所述,线路速度对这种无法忍受延迟的应用具有重大影响。一个示例来自联网应用,其要求将进来的分组转发至不同的目的地,因此要求非常高速度的电路。以上的示图示出了这种高速度电路的若干实施例,并且示出了这种结构在交换/路由分组的联网环境中的应用,在管理至不同高速缓存线的访问以及至不同打开的DRAM页的访问的处理环境中的应用,以及任何将宏指令合并/融合以及分割/解码成对应的合并和/或分割的微指令的处理环境中的应用。
另外,如上所述,许多实现、输入元素作为并行请求或分组进来,并且它们经历一个或两个通用的动作。两个或更多个那些输入可被组合、合并或分组,以形成统一/均一的请求或分组。另一动作可以是将请求或分组分割或分段成两个或更多个请求或分组。第一示例是可变长度联网分组。相同的概念可被应用于固定大小的分组,其中支持多个固定大小。
执行这种功能的图17电路可被构建成串行化取模和(例如,其示出为模2功能,如所给出的合并2个元素以及分割成2个或4个的示例),但是,应当注意,该功能也可以层级的方式应用,用于在多个步骤中合并多于2个的情形。通过这种方式,图17示出了新颖的惩罚减少机制,其中许多电路组件被减少成并行的AND-XOR门,其具有与其相关联的并行加法器,以获得线路速度。
图18示出了根据本发明的一个实施例的执行对累积和的评估的第二电路的示图。图18与图17类似,但是,图18示出了与并行一比特加法器一起使用的两比特加法器。图18的示图示出了用于采用初始位置并从其计算最终位置的方程是如何并行计算的。如上所述,方程的元素可被分解成相乘项和相加项。如所示,相乘项由AND门解决。如所示,相加项由XOR门解决。图18示出了解决针对初始位置5(例如,n(5))的方程的电路的示例。每个初始位置(例如,在本示例中初始位置1至10)将具有对应的方程,该对应的方程具有类似于图18中所示的对应的电路。这些方程中的每一个的结果是高速度并行加法器的输入,诸如加法器1700。
图19示出了并行加法器实现的示例性体系架构。图19示出了如何利用4:2进位保存加法器来实现并行加法器。
图20示出了根据本发明的一个实施例的、描绘了并行进位保存加法器的示图。如图20中所示,传统的并行4:2进位保存加法器被用于执行对并行输入的求和,诸如处理器调度中的就绪位,其被用于选择分派的指令,或用于将选择用于分派的指令映射到对应的分派端口,或例如被用于对有效位求和,以用于计数有效的稀疏条目并向其指派分配写入端口。
图21示出了根据本发明的一个实施例的阶段优化高速度并行加法器的实施例。图21的实施例可被用于实现图17中所示的并行加法器1700。图21的上部分示出了输入的到达时间,并且还示出了三个4:1加法器和一个2:1加法器。图21的下部分示出了如何实现4:1加法器。图21的中间部分示出了使用两个耦合的3:2进位保存加法器以接收其上的三个4:1加法器和一个2:1加法器的输出。与传统的并行加法器相比,该布置省去了一个4:2进位保存加法器阶段,因此使得图21的实施例更快。该实现利用了并行输入是每个一位输入的事实,这允许电路相应地被优化。
在图21中,加法器可被用于执行对一位输入的求和,诸如处理器调度中的就绪位,其被用于选择分派的指令,或用于将选择用于分派的指令映射到对应的分派端口,或例如被用于对有效位求和,以用于计数有效的稀疏条目并向其指派分配写入端口。
前述描述,出于说明的目的,已经参照具体实施例进行了描述。但是,所示出的以上讨论并不意欲穷尽式的或将发明限制到所公开的确切的形式。鉴于以上教导,许多修改例和变化例是可能的。实施例被选择并描述,以便最好地说明发明的原理及其实际应用,因此使得本领域技术人员能够最好地利用本发明和各种实施例,该实施例带有各种修改例,如可适于所构想的特定使用。

Claims (20)

1.一种计算设备的线路速度输入处理器,所述线路速度输入处理器包括:
用于确定第一输入的划分的数量以适应输出格式的输出大小的装置;
用于确定所述第一输入是否能够与相邻的第二输入组合的装置,其中,所述第一输入和所述第二输入被并行地处理且具有小于所述输出大小的组合大小;
用于计算所述第一输入和所述第二输入在具有所述输出格式的输出集合中的位置的装置;以及
用于以线路速度向目的地传输所述输出集合的装置。
2.如权利要求1所述的线路速度输入处理器,进一步包括:
用于在将被检查以用于组合的、包括所述第一输入和所述第二输入的初始输入集合中间识别候选输入的装置。
3.如权利要求1所述的线路速度输入处理器,进一步包括:
用于将第三输入划分为所述输出集合中的多个输出以适应所述输出格式的装置。
4.如权利要求1所述的线路速度输入处理器,其中,所述计算设备是网络设备,并且其中,所述第一输入和所述第二输入是联网分组。
5.如权利要求1所述的线路速度输入处理器,其中,所述计算设备包括高速缓存,并且其中,所述第一输入和所述第二输入是对所述高速缓存中的高速缓存线的高速缓存访问请求。
6.如权利要求1所述的线路速度输入处理器,其中,所述计算设备包括仲裁器,并且其中,所述第一输入和所述第二输入各自都是利用输出带宽的流,并且其中,所述仲裁器通过与创建结果输出流并行地进行的频率和/或时间复用来管理所述输出格式。
7.如权利要求1所述的线路速度输入处理器,其中,所述计算设备包括计算机指令解码器,并且其中,所述第一输入和所述第二输入是被组合为机器指令的计算机指令。
8.如权利要求1所述的线路速度输入处理器,其中,所述计算设备包括动态随机存取存储器设备(DRAM),并且其中,所述第一输入和所述第二输入是对DRAM页的DRAM访问请求。
9.一种非暂态计算机可读介质,具有计算机可读代码,所述计算机可读代码当由计算设备执行时使所述计算设备执行用于执行线路速度输入处理的操作集,所述操作集包括:
确定第一输入的划分的数量以适应输出格式的输出大小;
确定所述第一输入是否能够与相邻的第二输入组合,其中,所述第一输入和所述第二输入被并行地处理且具有小于所述输出大小的组合大小;
计算所述第一输入和所述第二输入在具有所述输出格式的输出集合中的位置;以及
以线路速度向目的地传输所述输出集合。
10.如权利要求9所述的非暂态计算机可读介质,具有存储在其中的进一步的指令,所述进一步的指令当被执行时使所述计算设备执行包括以下步骤的进一步的操作:
在将被检查以用于组合的、包括所述第一输入和所述第二输入的初始输入集合中间识别候选输入。
11.如权利要求9所述的非暂态计算机可读介质,具有存储在其中的进一步的指令,所述进一步的指令当被执行时使所述计算设备执行包括以下步骤的进一步的操作:
将第三输入划分为所述输出集合中的多个输出以适应所述输出格式。
12.如权利要求9所述的非暂态计算机可读介质,其中,所述计算设备是网络设备,并且其中,所述第一输入和所述第二输入是联网分组。
13.如权利要求9所述的非暂态计算机可读介质,其中,所述计算设备包括高速缓存,并且其中,所述第一输入和所述第二输入是对所述高速缓存中的高速缓存线的高速缓存访问请求。
14.如权利要求9所述的非暂态计算机可读介质,其中,所述计算设备包括仲裁器,并且其中,所述第一输入和所述第二输入各自都是利用输出带宽的流,并且其中,所述仲裁器通过与创建结果输出流并行地进行的频率和/或时间复用来管理所述输出格式。
15.如权利要求9所述的非暂态计算机可读介质,其中,所述计算设备包括计算机指令解码器,并且其中,所述第一输入和所述第二输入是被组合为机器指令的计算机指令。
16.如权利要求9所述的非暂态计算机可读介质,其中,所述计算设备包括动态随机存取存储器设备(DRAM),并且其中,所述第一输入和所述第二输入是对DRAM页的DRAM访问请求。
17.一种计算设备,包括:
存储器设备;以及
处理器单元,耦合到所述存储器设备,其中,所述处理器单元配置成用于:确定第一输入的划分的数量以适应输出格式的输出大小;确定所述第一输入是否能够与相邻的第二输入组合,其中,所述第一输入和所述第二输入被并行地处理且具有小于所述输出大小的组合大小;计算所述第一输入和所述第二输入在具有所述输出格式的输出集合中的位置;以及以线路速度向目的地转发所述输出集合。
18.如权利要求17所述的计算设备,其中,所述处理器单元包括用于计算所述第一输入和所述第二输入在所述输出集合中的位置的逻辑电路。
19.如权利要求18所述的计算设备,其中,所述逻辑电路执行一系列累积求和以确定所述输出集合中的所述位置。
20.如权利要求18所述的计算设备,其中,所述逻辑电路利用高速并行加法器以确定所述输出集合中的所述位置。
CN201810161735.0A 2013-03-15 2014-03-13 一种用于实现线路速度互连结构的方法 Active CN108255521B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361852389P 2013-03-15 2013-03-15
US61/852,389 2013-03-15
CN201480024465.9A CN105190579B (zh) 2013-03-15 2014-03-13 一种用于实现线路速度互连结构的方法
PCT/US2014/026427 WO2014151773A1 (en) 2013-03-15 2014-03-13 A method for implementing a line speed interconnect structure

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480024465.9A Division CN105190579B (zh) 2013-03-15 2014-03-13 一种用于实现线路速度互连结构的方法

Publications (2)

Publication Number Publication Date
CN108255521A true CN108255521A (zh) 2018-07-06
CN108255521B CN108255521B (zh) 2022-05-31

Family

ID=51526868

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480024465.9A Active CN105190579B (zh) 2013-03-15 2014-03-13 一种用于实现线路速度互连结构的方法
CN201810161735.0A Active CN108255521B (zh) 2013-03-15 2014-03-13 一种用于实现线路速度互连结构的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201480024465.9A Active CN105190579B (zh) 2013-03-15 2014-03-13 一种用于实现线路速度互连结构的方法

Country Status (6)

Country Link
US (2) US9740499B2 (zh)
EP (1) EP2972912A4 (zh)
KR (2) KR20170089973A (zh)
CN (2) CN105190579B (zh)
TW (1) TWI617987B (zh)
WO (1) WO2014151773A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817666B2 (en) 2013-03-15 2017-11-14 Intel Corporation Method for a delayed branch implementation by using a front end track table
CN116302114B (zh) * 2023-02-24 2024-01-23 进迭时空(珠海)科技有限公司 一种针对支持指令宏融合cpu的编译器指令调度优化方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0261034A2 (en) * 1986-09-18 1988-03-23 Digital Equipment Corporation Massively parallel array processing system
CN1298144A (zh) * 1999-11-24 2001-06-06 秋山荣治 数据输入方法和装置以及数据输入程序记录媒体
CN1493040A (zh) * 2001-02-24 2004-04-28 �Ҵ���˾ 用于计算结构的全局树形网络
US20040202178A1 (en) * 2000-07-11 2004-10-14 Mitsubishi Denki Kabushiki Kaisha Packet switching apparatus
US20040213291A1 (en) * 2000-12-14 2004-10-28 Beshai Maged E. Compact segmentation of variable-size packet streams
CN1598762A (zh) * 2003-09-18 2005-03-23 国际商业机器公司 具有自我修复能力的多并行管线处理器
US20070101107A1 (en) * 2005-11-01 2007-05-03 Hitachi, Ltd. Reconfigurable processor and apparatus
US7296112B1 (en) * 2002-12-10 2007-11-13 Greenfield Networks, Inc. High bandwidth memory management using multi-bank DRAM devices
US20110047354A1 (en) * 2002-02-19 2011-02-24 Schism Electronics, L.L.C. Processor Cluster Architecture and Associated Parallel Processing Methods
WO2013011653A1 (ja) * 2011-07-15 2013-01-24 国立大学法人 筑波大学 過負荷を回避する超低消費電力化データ駆動ネットワーキング処理装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3859515A (en) * 1972-08-21 1975-01-07 Burroughs Corp Method and apparatus for signal spectrum analysis by hadamard transform
US4644533A (en) * 1985-05-06 1987-02-17 American Telephone & Telegraph Company Packet switch trunk circuit queueing arrangement
US4777587A (en) 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
US5179689A (en) 1987-03-13 1993-01-12 Texas Instruments Incorporated Dataprocessing device with instruction cache
US4899335A (en) * 1988-12-21 1990-02-06 American Telephone And Telegraph Company, At&T Bell Laboratories Self routing packet switching network architecture
JP2550213B2 (ja) 1989-07-07 1996-11-06 株式会社日立製作所 並列処理装置および並列処理方法
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
US5937202A (en) * 1993-02-11 1999-08-10 3-D Computing, Inc. High-speed, parallel, processor architecture for front-end electronics, based on a single type of ASIC, and method use thereof
US6088793A (en) 1996-12-30 2000-07-11 Intel Corporation Method and apparatus for branch execution on a multiple-instruction-set-architecture microprocessor
JP3189727B2 (ja) * 1997-04-15 2001-07-16 日本電気株式会社 コプロセッサ内蔵パケット型メモリlsi、それを用いたメモリシステム及びそれらの制御方法
US6247077B1 (en) * 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
US6980543B1 (en) * 1998-06-19 2005-12-27 Juniper Networks, Inc. Interconnect network for operation within a communication node
US7107434B2 (en) 1999-12-20 2006-09-12 Board Of Regents, The University Of Texas System, method and apparatus for allocating hardware resources using pseudorandom sequences
US6665495B1 (en) * 2000-10-27 2003-12-16 Yotta Networks, Inc. Non-blocking, scalable optical router architecture and method for routing optical traffic
US7200865B1 (en) * 2000-12-01 2007-04-03 Sprint Communications Company L.P. Method and system for communication control in a computing environment
US6782405B1 (en) 2001-06-07 2004-08-24 Southern Methodist University Method and apparatus for performing division and square root functions using a multiplier and a multipartite table
US6791995B1 (en) * 2002-06-13 2004-09-14 Terayon Communications Systems, Inc. Multichannel, multimode DOCSIS headend receiver
US7212523B2 (en) * 2003-03-27 2007-05-01 Applied Micro Circuits Corporation Pipeline architecture for the design of a single-stage cross-connect system
US7609297B2 (en) * 2003-06-25 2009-10-27 Qst Holdings, Inc. Configurable hardware based digital imaging apparatus
US7688815B2 (en) * 2003-08-18 2010-03-30 BarracudaNetworks Inc Method and system for a multi-stage interconnect switch
KR100591996B1 (ko) * 2003-12-22 2006-06-21 한국전자통신연구원 스마트 안테나 기지국 변조 장치
US7404040B2 (en) * 2004-12-30 2008-07-22 Intel Corporation Packet data placement in a processor cache
FR2881590B1 (fr) * 2005-01-31 2007-04-06 Agence Spatiale Europeenne Procede de communication numerique par paquets a travers un canal de transmission partage par une pluralite d'utilisateurs
US7782873B2 (en) * 2005-08-23 2010-08-24 Slt Logic, Llc Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks
US9426092B2 (en) * 2006-02-03 2016-08-23 Level 3 Communications Llc System and method for switching traffic through a network
TWI321016B (en) 2006-08-30 2010-02-21 Vibo Telecom Inc Method for transferring video data and proxy server using the same
US8081588B2 (en) * 2006-12-28 2011-12-20 Research In Motion Limited Methods and apparatus for increasing data throughput by grouping data packets into maximum transmissible units
US7521961B1 (en) * 2007-01-23 2009-04-21 Xilinx, Inc. Method and system for partially reconfigurable switch
TWI482460B (zh) * 2008-05-30 2015-04-21 Marvell Int Ltd 網路處理器單元及其相關方法
CN101656659B (zh) * 2008-08-19 2012-05-23 中兴通讯股份有限公司 一种混合业务流的缓存处理方法、存储转发方法及装置
US8589867B2 (en) * 2010-06-18 2013-11-19 Microsoft Corporation Compiler-generated invocation stubs for data parallel programming model
US9331958B2 (en) * 2012-12-31 2016-05-03 Advanced Micro Devices, Inc. Distributed packet switching in a source routed cluster server

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0261034A2 (en) * 1986-09-18 1988-03-23 Digital Equipment Corporation Massively parallel array processing system
CN1298144A (zh) * 1999-11-24 2001-06-06 秋山荣治 数据输入方法和装置以及数据输入程序记录媒体
US20040202178A1 (en) * 2000-07-11 2004-10-14 Mitsubishi Denki Kabushiki Kaisha Packet switching apparatus
US20040213291A1 (en) * 2000-12-14 2004-10-28 Beshai Maged E. Compact segmentation of variable-size packet streams
CN1493040A (zh) * 2001-02-24 2004-04-28 �Ҵ���˾ 用于计算结构的全局树形网络
US20110047354A1 (en) * 2002-02-19 2011-02-24 Schism Electronics, L.L.C. Processor Cluster Architecture and Associated Parallel Processing Methods
US7296112B1 (en) * 2002-12-10 2007-11-13 Greenfield Networks, Inc. High bandwidth memory management using multi-bank DRAM devices
CN1598762A (zh) * 2003-09-18 2005-03-23 国际商业机器公司 具有自我修复能力的多并行管线处理器
US20070101107A1 (en) * 2005-11-01 2007-05-03 Hitachi, Ltd. Reconfigurable processor and apparatus
WO2013011653A1 (ja) * 2011-07-15 2013-01-24 国立大学法人 筑波大学 過負荷を回避する超低消費電力化データ駆動ネットワーキング処理装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HENDRY, G.等: ""Time-division-multiplexed arbitration in silicon nanophotonic networks-on-chip for high-performance chip multiprocessors"", 《JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING》 *
K. E. BA TCHER等: ""Sorting net w orks and their applications"", 《AMERICAN FEDERATION OF INFORMATION PROCESSING SOCIETIES: AFIPS CONFERENCE PROCEEDINGS: 1968 SPRING JOINT COMPUTER CONFERENCE》 *

Also Published As

Publication number Publication date
US20180129507A1 (en) 2018-05-10
WO2014151773A1 (en) 2014-09-25
KR20150132355A (ko) 2015-11-25
CN108255521B (zh) 2022-05-31
KR20170089973A (ko) 2017-08-04
EP2972912A1 (en) 2016-01-20
TWI617987B (zh) 2018-03-11
EP2972912A4 (en) 2016-11-09
US9740499B2 (en) 2017-08-22
TW201502994A (zh) 2015-01-16
US10303484B2 (en) 2019-05-28
US20140269753A1 (en) 2014-09-18
KR101763731B1 (ko) 2017-08-01
CN105190579A (zh) 2015-12-23
CN105190579B (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
US11132127B2 (en) Interconnect systems and methods using memory links to send packetized data between different data handling devices of different memory domains
US11677662B2 (en) FPGA-efficient directional two-dimensional router
US10740116B2 (en) Three-dimensional chip-based regular expression scanner
EP3298740B1 (en) Directional two-dimensional router and interconnection network for field programmable gate arrays
Scott et al. The blackwidow high-radix clos network
CN106415513B (zh) 用于分组发送的优化的信用返回机制
US10078613B1 (en) Computing in parallel processing environments
US10268392B2 (en) Memory controller architecture with improved memory scheduling efficiency
CN103914399B (zh) 一种并行计算系统中的磁盘缓存方法及装置
US10482934B2 (en) Memory controller architecture with improved memory scheduling efficiency
US20150324285A1 (en) Virtualized physical addresses for reconfigurable memory systems
CN108139882B (zh) 针对网络装置实施阶层分布式链接列表的系统及方法
Charif et al. First-last: a cost-effective adaptive routing solution for TSV-based three-dimensional networks-on-chip
CN107193643A (zh) 一种高可靠分布式数据流实时统计方法及系统
CN106612236A (zh) 众核网络处理器及其微引擎的报文调度方法、系统
CN107729267A (zh) 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
CN105190579B (zh) 一种用于实现线路速度互连结构的方法
Que et al. Exploring network optimizations for large-scale graph analytics
US8683100B1 (en) Method and apparatus for handling data flow in a multi-chip environment using an interchip interface
US11003459B2 (en) Method for implementing a line speed interconnect structure
Tyagi Adaptive routing algorithm for 3D network-on-chip
Chui Congestion aware adaptive routing for network-on-chip communication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant