CN114385237A - 低时延寄存器错误校正 - Google Patents

低时延寄存器错误校正 Download PDF

Info

Publication number
CN114385237A
CN114385237A CN202111213376.7A CN202111213376A CN114385237A CN 114385237 A CN114385237 A CN 114385237A CN 202111213376 A CN202111213376 A CN 202111213376A CN 114385237 A CN114385237 A CN 114385237A
Authority
CN
China
Prior art keywords
instruction
register
processor
data
memory
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
CN202111213376.7A
Other languages
English (en)
Other versions
CN114385237B (zh
Inventor
D·E·沃克尔
C·巴罗内
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN114385237A publication Critical patent/CN114385237A/zh
Application granted granted Critical
Publication of CN114385237B publication Critical patent/CN114385237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • 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/30181Instruction operation extension or modification
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本文中描述用于低时延寄存器错误校正的装置和技术。当指令是处理器中的当前执行的指令时作为所述指令的一部分读取寄存器。可检测由读取所述寄存器产生的数据中的可校正错误。响应于检测到所述可校正错误,所述处理器中的所述当前执行的指令可变成寄存器更新指令,所述寄存器更新指令经执行以用经校正数据覆写所述寄存器中的所述数据。接着,可重新调度原始(例如,未改变的)指令。

Description

低时延寄存器错误校正
技术领域
本申请涉及用于低时延寄存器错误校正的技术。
背景技术
小芯片是一种用于集成各种处理功能性的新兴技术。通常,小芯片系统由离散模块(各自被称为“小芯片”)组成,所述离散模块集成在中介层上,并且在许多实例中视需要经由一或多个已建立的网络互连,以向系统提供所要功能性。中介层和所包含的小芯片可封装在一起,以便于与较大系统的其它组件互连。每一小芯片可包含一或多个个别集成电路(IC)或“芯片”,其可能与离散电路组件组合,且共同耦合到相应的衬底以便于附接到中介层。系统中的大多数或所有小芯片将个别地被配置成用于经由所述一或多个已建立的网络通信。
小芯片作为系统的个别模块的配置不同于此系统在单芯片上实施,所述芯片在一个衬底(例如,单个裸片)上含有不同装置块(例如,知识产权(IP)块),例如芯片上系统(SoC),或集成在印刷电路板(PCB)上的多个离散封装装置。一般来说,小芯片提供比离散封装装置更好的性能(例如,较低的功耗、缩短的时延等),且小芯片提供比单裸片芯片更大的生产效益。这些生产效益可包含较高的良率或减少的开发成本和时间。
小芯片系统可包含例如一或多个应用(或处理器)小芯片和一或多个支持小芯片。此处,应用小芯片与支持小芯片之间的区别只是对小芯片系统可能的设计情境的参考。因此,举例来说,合成视觉小芯片系统可包含(仅借助于实例)用以产生合成视觉输出的应用小芯片,以及例如存储器控制器小芯片、传感器接口小芯片或通信小芯片等支持小芯片。在典型的用例中,合成视觉设计者可设计应用小芯片并从其它方获取支持小芯片。因此,由于避免设计和生产支持小芯片中所体现的功能性,因此减少了设计支出(例如,在时间或复杂性方面)。小芯片还支持原本可能很困难的IP块紧密集成,例如使用不同的处理技术或使用不同的特征大小(或利用不同的接触技术或间距)制造的IP块。因此,可以模块化方式组装具有不同物理、电气或通信特性的多个IC或IC组合件,以提供实现所要功能性的组合件。小芯片系统还可促进调适以适应将并入有小芯片系统的不同较大系统的需求。在一实例中,IC或其它组合件可针对特定功能的功率、速度或发热进行优化,如同传感器可能发生的情况一样,相比于在单个裸片上尝试与其它装置集成,所述IC或其它组件可更容易地与其它装置集成。此外,通过减小裸片的整体大小,小芯片的良率往往高于更复杂的单裸片装置的良率。
发明内容
根据本申请的一方面,提供一种设备。所述设备包括:寄存器,其作为是所述设备中的当前执行的指令的指令的一部分而被读取;错误检测电路,其被配置成检测由读取所述寄存器产生的数据中的可校正错误;错误校正电路,其被配置成:响应于检测到所述可校正错误,将所述设备中的所述当前执行的指令改变为寄存器更新指令;且执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及调度电路,其被配置成重新调度所述指令。
根据本申请的另一方面,提供一种方法。所述方法包括:当指令是处理器中的当前执行的指令时作为所述指令的一部分读取寄存器;检测由读取所述寄存器产生的数据中的可校正错误;响应于检测到所述可校正错误,将所述处理器中的所述当前执行的指令改变为寄存器更新指令;执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及重新调度所述指令。
根据本申请的又一方面,提供一种非暂时性机器可读介质。所述非暂时性机器可读介质包含指令,所述指令当由处理器的电路系统执行时致使所述处理器执行包括以下的操作:当指令是所述处理器中的当前执行的指令时作为所述指令的一部分读取寄存器;检测由读取所述寄存器产生的数据中的可校正错误;响应于检测到所述可校正错误,将所述处理器中的所述当前执行的指令改变为寄存器更新指令;执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及重新调度所述指令。
附图说明
根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限于特定实施例,而是仅用于阐释和理解。
图1A和1B示出根据实施例的小芯片系统的实例。
图2示出根据实施例的存储器控制器小芯片的实例的组件。
图3示出根据实施例的可编程原子单元(PAU)的实例中的组件。
图4A和4B示出根据实施例的用于低时延寄存器错误校正的经由处理器组件的处理流程。
图5是根据实施例的用于低时延寄存器错误校正的方法的实例的流程图。
图6是机器的实例的框图,本公开的实施例可利用所述机器、在所述机器中或通过所述机器进行操作。
具体实施方式
下文所描述的图1提供小芯片系统和在其中操作的组件的实例。所示出的小芯片系统包含存储器控制器。此存储器控制器包含可编程原子单元(PAU)以响应于对可编程原子操作的存储器请求而执行自定义程序,即所述可编程原子操作。下文将相对于图2和3描述关于PAU的额外细节。PAU包含处理器,其具有电路系统以对从处理器的寄存器读取的数据执行错误检查和校正。尽管寄存器数据错误不频繁,但它们可能具有破坏性。因此,许多处理器在寄存器上包含错误校正电路系统。通常,错误校正向每个操作添加时延以确保当调度指令时寄存器数据为有效的。不论错误经检测并校正还是寄存器数据中未检测到错误,所述时延基本上相同。因此,当此些错误不频繁时,处理器中的寄存器校正时延存在问题(例如,归因于寄存器校正时延的损失)。
为了解决寄存器数据校正时延,调度指令,假定寄存器数据无错误。当读取寄存器数据时,检查错误。如果存在错误,则当前指令变成寄存器更新指令,且重新调度当前指令。因此,可在不影响无错误案例时延的情况下校正寄存器文件错误。下文提供额外细节和实例。
图1A和1B示出根据实施例的小芯片系统110的实例。图1A是安装在外围板105上的小芯片系统110的表示,所述外围板105可例如通过外围组件互连高速(PCIe)连接到更广泛的计算机系统。小芯片系统110包含封装衬底115、中介层120和四个小芯片,即应用小芯片125、主机接口小芯片135、存储器控制器小芯片140和存储器装置小芯片150。其它系统可包含许多额外小芯片以提供额外功能性,如将从以下论述中显而易见。小芯片系统110的封装示出有封盖或覆盖件165,但可使用用于小芯片系统的其它封装技术和结构。图1B是为了清楚起见标记小芯片系统中的组件的框图。
应用小芯片125示出为包含芯片上网络(NOC)130以支持用于小芯片间通信的小芯片网络155。在实例实施例中,NOC 130可包含在应用小芯片125上。在实例中,可响应于所选择的支持小芯片(例如,小芯片135、140和150)而限定NOC 130,从而使设计者能够为NOC130选择适当数目或小芯片网络连接或交换机。在实例中,NOC 130可位于单独的小芯片上,乃至位于中介层120内。在如本文中所论述的实例中,NOC 130实施小芯片协议接口(CPI)网络。
CPI是基于包的网络,其支持虚拟信道,以实现小芯片之间灵活的高速交互。CPI实现了从小芯片内网络到小芯片网络155的桥接。举例来说,高级可扩展接口(AXI)是设计芯片内通信的广泛使用的规范。然而,AXI规范涵盖大量的物理设计选项,例如物理信道的数目、信号定时、功率等。在单个芯片内,选择这些选项通常是为了满足例如功耗、速度等设计目标。然而,为了实现小芯片系统的灵活性,使用例如CPI等适配器在可在各种小芯片中实施的各种AXI设计选项之间进行介接。通过实现物理信道到虚拟信道的映射且利用包化协议囊封基于时间的信令,CPI跨小芯片网络155桥接小芯片内网络。
CPI可使用多种不同的物理层来发射包。物理层可包含简单的导电连接,或可包含驱动器以增大电压,或以其它方式促进在较长距离内发射信号。此类物理层的实例可包含高级接口总线(AIB),其在各种实例中可在中介层120中实施。AIB使用具有转发时钟的源同步数据传递来发射和接收数据。以单数据速率(SDR)或双数据速率(DDR)相对于所发射时钟跨AIB传递包。AIB支持各种信道宽度。当在SDR模式下操作时,AIB信道宽度为20位的倍数(20、40、60、……),并且对于DDR模式,AIB信道宽度为40位的倍数:(40、80、120、……)。AIB信道宽度包含发射和接收信号两者。信道可被配置成具有对称数目的发射(TX)和接收(RX)输入/输出(I/O),或者具有非对称数目的发射器和接收器(例如,所有发射器或所有接收器)。信道可取决于哪一个小芯片提供主时钟而充当AIB主体或从属。AIB I/O单元支持三个计时模式:异步(即,非计时)、SDR和DDR。在各种实例中,非计时模式用于时钟和一些控制信号。SDR模式可使用专用的仅SDR I/O单元,或双重用途SDR/DDR I/O单元。
在实例中,CPI包协议(例如,点到点或可路由)可在AIB信道内使用对称的接收和发射I/O单元。CPI串流协议允许更灵活地利用AIB I/O单元。在实例中,用于串流模式的AIB信道可将I/O单元配置为全部为TX、全部为RX,或者一半为TX且一半为RX。CPI包协议可在SDR或DDR操作模式下使用AIB信道。在实例中,AIB信道针对SDR模式以80个I/O单元(即,40个TX和40个RX)的增量配置,并且针对DDR模式以40个I/O单元的增量配置。CPI串流协议可在SDR或DDR操作模式下使用AIB信道。此处,在实例中,AIB信道针对SDR和DDR模式两者以40个I/O单元为增量。在实例中,向每一AIB信道指派唯一的接口识别符。识别符在CPI复位和初始化期间使用以确定跨邻近小芯片的成对AIB信道。在实例中,接口识别符为包括七位小芯片识别符、七位列识别符和六位链路识别符的20位值。AIB物理层使用AIB带外移位寄存器来发射接口识别符。使用移位寄存器的位32-51跨AIB接口在两个方向上传递20位接口识别符。
AIB将堆叠的一组AIB信道限定为AIB信道列。AIB信道列具有一定数目的AIB信道,外加辅助信道。辅助信道含有用于AIB初始化的信号。列内的所有AIB信道(辅助信道除外)具有相同配置(例如,全部为TX、全部为RX,或者一半为TX且一半为RX,以及具有相同数目的数据I/O信号)。在实例中,从邻近于AUX信道的AIB信道开始,以连续递增次序对AIB信道编号。邻近于AUX的AIB信道被限定为AIB信道0。
通常,个别小芯片上的CPI接口可包含串行化-反串行化(SERDES)硬件。SERDES互连非常适用于需要高速信令以及低信号计数的情境。然而,对于多路复用和解复用、错误检测或校正(例如,使用块层级循环冗余校验(CRC))、链路层级重试或前向错误校正,SERDES可能会引起额外的功耗和更长的时延。然而,当低时延或能耗是超短距离小芯片到小芯片互连的主要关注点时,可利用时钟速率允许以最少时延进行数据传递的并行接口。CPI包含用于使这些超短距离小芯片互连的时延和能耗两者最小化的元件。
对于流控制,CPI采用基于信用的技术。例如应用小芯片125等接收方向例如存储器控制器小芯片140等发送方提供表示可用缓冲器的信用。在实例中,CPI接收方包含用于给定发射时间单位的每一虚拟信道的缓冲器。因此,如果CPI接收方在时间上支持五个消息和单个虚拟信道,则接收方具有布置成五行的五个缓冲器(例如,每一单位时间一行)。如果支持四个虚拟信道,则接收方具有布置成五行的二十个缓冲器。每一缓冲器保持一个CPI包的有效负载。
当发送方向接收方发射时,发送方基于发射而使可用信用递减。一旦接收方的所有信用已消耗,发送方就停止向接收方发送包。这确保接收方始终具有可用缓冲器来存储发射。
当接收方处理接收到的包并释放缓冲器时,接收方将可用缓冲空间传送回到发送方。随后,发送方可使用此信用返回以允许发射额外信息。
还示出了小芯片网状网络160,其使用直接小芯片到小芯片技术,而不需要NOC130。小芯片网状网络160可在CPI或另一小芯片到小芯片协议中实施。小芯片网状网络160通常实现小芯片管线,其中一个小芯片充当到管线的接口,而管线中的其它小芯片仅与自身介接。
另外,专用装置接口,例如一或多个工业标准存储器接口145(例如,同步存储器接口,比如DDR5、DDR 6),也可用于互连小芯片。小芯片系统或个别小芯片到外部装置的连接(例如,较大系统可经由所要接口(例如,PCIE接口)。在实例中,例如,可经由主机接口小芯片135实施外部接口,在所描绘的实例中,所述主机接口小芯片提供小芯片系统110外部的PCIE接口。在行业中的惯例或标准已汇聚在此类专用接口145上时,通常采用此类接口。将存储器控制器小芯片140连接到动态随机存取存储器(DRAM)存储器装置150的双数据速率(DDR)接口145的所示出的实例就是此行业惯例。
在多种可能的支持小芯片中,存储器控制器小芯片140很可能存在于小芯片系统110中,这是因为几乎无所不在地使用存储装置来进行计算机处理以及存储器装置的复杂的当前技术发展水平。因此,使用由其它设计者产生的存储器装置小芯片150和存储器控制器小芯片140使小芯片系统设计者能够获得由成熟生产商生产的稳健的产品。通常,存储器控制器小芯片140提供存储器装置特定接口来读取、写入或擦除数据。通常,存储器控制器小芯片140可提供额外特征,例如错误检测、错误校正、维护操作或原子操作执行。对于一些类型的存储器,维护操作往往特定针对存储器装置150,例如NAND快闪或存储类存储器中的垃圾收集、NAND快闪存储器中的温度调整(例如,交叉温度管理)。在实例中,维护操作可包含逻辑到物理(L2P)映射或管理,以在数据的物理与逻辑表示之间提供间接层级。在例如DRAM等其它类型的存储器中,例如刷新等一些存储器操作可在某些时间由主机处理器或存储器控制器控制,并且在其它时间由DRAM存储器装置或与一或多个DRAM装置相关联的逻辑控制,所述逻辑例如接口芯片(在实例中,缓冲器)。
原子操作是例如可由存储器控制器小芯片140执行的数据操纵。在其它小芯片系统中,可由其它小芯片执行原子操作。举例来说,可由应用小芯片125在命令中指定“增量”的原子操作,所述命令包含存储器地址并且可能包含增量值。在接收到命令后,存储器控制器小芯片140从指定存储器地址检索数字,使所述数字递增命令中所指定的量,并存储结果。在成功完成后,存储器控制器小芯片140向应用小芯片125提供命令成功的指示。原子操作避免了跨小芯片网络160发射数据,从而缩短执行此些命令的时延。
原子操作可被分类为内置原子或可编程(例如,自定义)原子。内置原子是在硬件中不变地实施的一组有限的操作。可编程原子是可在存储器控制器小芯片140的可编程原子单元(PAU)(例如,自定义原子单元(CAU))上执行的小程序。图1示出论述PAU的存储器控制器小芯片的实例。
存储器装置小芯片150可以是或包含易失性存储器装置或非易失性存储器的任何组合。易失性存储器装置的实例包含(但不限于)随机存取存储器(RAM)-例如DRAM、同步DRAM(SDRAM)、图形双数据速率类型6SDRAM(GDDR6 SDRAM)等等。非易失性存储器装置的实例包含(但不限于)与非(NAND)型快闪存储器、存储类存储器(例如,相变存储器或基于忆阻器的技术)、铁电RAM(FeRAM)等等。所说明的实例包含作为小芯片的存储器装置150,然而,存储器装置150可驻留在其它地方,例如在外围板105上的不同封装中。对于许多应用,可提供多个存储器装置小芯片。在实例中,这些存储器装置小芯片可各自实施一或多种存储技术。在实例中,存储器小芯片可包含不同技术的多个堆叠存储器裸片,例如一或多个静态随机存取存储器(SRAM)装置与一或多个动态随机存取存储器(DRAM)装置堆叠或以其它方式通信。存储器控制器140还可用于协调小芯片系统110中的多个存储器小芯片之间的操作;例如,在一或多个层级的高速缓冲存储装置中利用一或多个存储器小芯片,并使用一或多个额外存储器小芯片作为主存储器。小芯片系统110还可包含多个存储器控制器140,如可用于为单独的处理器、传感器、网络等提供存储器控制功能性。例如小芯片系统110等小芯片架构在允许适应不同的存储器存储技术方面提供优点;并且通过更新的小芯片配置提供不同的存储器接口,而无需重新设计系统结构的其余部分。
图2示出根据实施例的存储器控制器小芯片205的实例的组件。存储器控制器小芯片205包含高速缓存210、高速缓存控制器215、裸片外存储器控制器220(例如,用于与裸片外存储器275通信)、网络通信接口225(例如,用于与小芯片网络285介接且与其它小芯片通信),以及一组原子和合并单元250。此组的成员可包含例如写入合并单元255、存储器危险单元260、内置原子单元265或PAU 270。各种组件是按逻辑说明的,且未必是它们将会被实施的方式。举例来说,内置原子单元265有可能包括沿着到裸片外存储器的路径的不同装置。举例来说,内置原子单元265可在存储器小芯片上的接口装置/缓冲器中,如上文所论述。相比之下,可编程原子单元270可在存储器控制器小芯片205上的单独处理器中实施(但在各种实例中,可在其它位置中实施,例如在存储器小芯片上实施)。
裸片外存储器控制器220直接耦合到裸片外存储器275(例如,经由总线或其它通信连接),以提供到以及从例如裸片外存储器275和裸片外存储器280等一或多个裸片外存储器的写入操作和读取操作。在所描绘的实例中,裸片外存储器控制器220还经耦合以供输出到原子和合并单元250,以及输入到高速缓存控制器215(例如,存储器侧高速缓存控制器)。
在实例配置中,高速缓存控制器215直接耦合到高速缓存210,且可耦合到网络通信接口225以供输入(例如,传入的读取或写入请求),且经耦合以供输出到裸片外存储器控制器220。
网络通信接口225包含包解码器230、网络输入队列235、包编码器240和网络输出队列245以支持基于包的小芯片网络285,例如CPI。小芯片网络285可提供处理器、存储器控制器、混合线程处理器、可配置处理电路或通信接口之间和当中的包路由。在此基于包的通信系统中,每一包通常包含目的地和源寻址,以及任何数据有效负载或指令。在实例中,取决于配置,小芯片网络285可实施为具有折叠Clos配置的交叉开关的集合,或提供额外连接的网状网络。
在各种实例中,小芯片网络285可以是异步交换结构的一部分。此处,数据包可沿着各种路径中的任一个路由,使得任何所选择的数据包可在多个不同时间中的任何时间到达寻址的目的地,这取决于路由。此外,小芯片网络285可至少部分地实施为同步通信网络,例如同步网状通信网络。经审慎考虑,例如根据本公开使用通信网络的两种配置。
存储器控制器小芯片205可接收具有例如源地址、读取请求和物理地址的包。作为响应,裸片外存储器控制器220或高速缓存控制器215将从指定的物理地址(其可在裸片外存储器275中或高速缓存210中)读取数据,且汇编含有所请求数据的针对源地址的响应包。类似地,存储器控制器小芯片205可接收具有源地址、写入请求和物理地址的包。作为响应,存储器控制器小芯片205将数据写入到指定的物理地址(其可在高速缓存210中或裸片外存储器275或280中),且汇编含有所述数据被存储到存储器的确认的针对源地址的响应包。
因此,在可能的情况下,存储器控制器小芯片205可经由小芯片网络285接收读取和写入请求,且使用与高速缓存210介接的高速缓存控制器215来处理所述请求。如果高速缓存控制器215无法处置所述请求,则裸片外存储器控制器220通过与裸片外存储器275或280、原子和合并单元250或两者通信来处置所述请求。如上所述,一或多个层级的高速缓存还可在裸片外存储器275或280中实施;且在一些此类实例中可由高速缓存控制器215直接存取。由裸片外存储器控制器220读取的数据可由高速缓存控制器215高速缓存在高速缓存210中以供稍后使用。
原子和合并单元250经耦合以接收(作为输入)裸片外存储器控制器220的输出,并且向高速缓存210、网络通信接口225或直接向小芯片网络285提供输出。存储器危险单元260、写入合并单元255和内置(例如,预定)原子单元265可各自被实施为具有其它组合逻辑电路系统(例如,加法器、移位器、比较器、AND门、OR门、XOR门或其任何合适的组合)或其它逻辑电路系统的状态机。这些组件还可包含一或多个寄存器或缓冲器以存储操作数或其它数据。PAU 270可实施为一或多个处理器核心或控制电路系统,以及具有其它组合逻辑电路系统或其它逻辑电路系统的各种状态机,且还可包含一或多个寄存器、缓冲器或存储器以存储地址、可执行指令、操作数和其它数据,或可实施为处理器。
写入合并单元255接收读取数据和请求数据,并且合并请求数据和读取数据以创建具有读取数据和将在响应或返回数据包中使用的源地址的单个单元。写入合并单元255将合并的数据提供到高速缓存210的写入端口(或等效地,提供到高速缓存控制器215以写入到高速缓存210)。任选地,写入合并单元255将合并的数据提供到网络通信接口225以编码且准备响应或返回数据包以供在小芯片网络285上发射。
当请求数据是针对内置原子操作时,内置原子单元265从写入合并单元255或直接从裸片外存储器控制器220接收请求且读取数据。执行原子操作,且使用写入合并单元255将所得数据写入到高速缓存210,或提供到网络通信接口225以编码且准备响应或返回数据包以供在小芯片网络285上发射。
内置原子单元265处置预定义原子操作,例如提取和递增或者比较和交换。在实例中,这些操作对大小为32字节或更小的单个存储器位置执行简单的读取-修改-写入操作。从经由小芯片网络285发射的请求包起始原子存储器操作。请求包具有物理地址、原子操作类型、操作数大小,并且任选地具有至多32字节的数据。原子操作对高速缓存210的高速缓冲存储器行执行读取-修改-写入,从而在必要时填充高速缓冲存储器。原子操作响应可以是简单的完成响应,或具有至多32字节的数据的响应。实例原子存储器操作包含提取并与、提取并或、提取并异或、提取并加、提取并减、提取并递增、提取并递减、提取并最小、提取并最大、提取并交换和比较并交换。在各种实例实施例中,支持32位和64位操作以及对16或32字节的数据的操作。本文中所公开的方法还与支持较大或较小操作和较多或较少数据的硬件兼容。
内置原子操作还可涉及对关于所请求数据的“标准”原子操作的请求,例如相对简单的单循环整数原子,例如提取并递增或比较并交换,其吞吐量将与不涉及原子操作的常规存储器读取或写入操作相同。对于这些操作,高速缓存控制器215通常可通过(在硬件中)设定危险位来保留高速缓存210中的高速缓存行,使得高速缓存行在处于过渡时无法被另一进程读取。从裸片外存储器275或高速缓存210获得数据,且将所述数据提供到内置原子单元265以执行所请求的原子操作。在原子操作之后,除了将所得数据提供到包编码器240以对传出数据包进行编码从而在小芯片网络285上发射之外,内置原子单元265还将所得数据提供到写入合并单元255,所述写入合并单元还将所得数据写入到高速缓存210。在将所得数据写入到高速缓存210之后,存储器危险单元260将清除所设定的任何相应危险位。
PAU 270实现了可编程原子操作(也称为“自定义原子交易”或“自定义原子操作”)的高性能(高吞吐量和低时延),其与内置原子操作的性能相当。代替执行多个存储器存取,响应于原子操作请求指定可编程原子操作和存储器地址,存储器控制器小芯片205中的电路系统将原子操作请求传递到PAU 270,并设定存储在存储器危险寄存器中的对应于原子操作中所使用的存储器行的存储器地址的危险位,以确保不对所述存储器行执行其它操作(读取、写入或原子),然后在原子操作完成后清除所述危险位。为执行可编程原子操作的PAU 270提供的额外直接数据路径允许额外的写入操作,而不会受到由通信网络的带宽施加的任何限制,且不会增加通信网络的任何拥塞。
PAU 270包含例如基于RISC-V ISA的多线程处理器等多线程处理器,其具有一或多个处理器核心,且进一步具有用于执行可编程原子操作的扩展指令集。当具备用于执行可编程原子操作的扩展指令集时,PAU 270可体现为一或多个混合线程处理器。在一些实例实施例中,PAU 270提供桶式轮循瞬时线程切换以维持较高的每时钟指令速率。
可编程原子操作可由PAU 270执行,其涉及对关于所请求数据的可编程原子操作的请求。用户可准备编程代码以提供此些可编程原子操作。举例来说,可编程原子操作可以是相对简单的多循环操作,例如浮点加法,或可以是相对复杂的多指令操作,例如布隆过滤器插入(Bloom filter insert)。可编程原子操作可与预定原子操作相同或不同,只要它们是由用户而不是系统供应商限定的。对于这些操作,高速缓存控制器215可通过(在硬件中)设定危险位来保留高速缓存210中的高速缓存行,使得高速缓存行在处于过渡时无法被另一进程读取。从高速缓存210或裸片外存储器275或280获得数据,且将所述数据提供到PAU270以执行所请求的可编程原子操作。在原子操作之后,PAU 270将把所得数据提供到网络通信接口225以直接对具有所得数据的传出数据包进行编码以供在小芯片网络285上发射。此外,PAU 270将把所得数据提供到高速缓存控制器215,所述高速缓存控制器还将把所得数据写入到高速缓存210。在将所得数据写入到高速缓存210之后,高速缓存控制电路215将清除所设定的任何相应危险位。
在所选择的实例中,针对可编程原子操作所采用的方式是提供多个通用的自定义原子请求类型,其可经由小芯片网络285从例如处理器或其它系统组件等发起源发送到存储器控制器小芯片205。高速缓存控制器215或裸片外存储器控制器220将请求识别为自定义原子且将所述请求转发到PAU 270。在代表性实施例中,PAU 270:(1)是能够有效地执行用户限定的原子操作的可编程处理元件,(2)可对存储器、算术和逻辑操作以及控制流决策执行加载和存储;并且(3)利用具有新的专用指令集的RISC-V ISA来促进与此些控制器215、220的交互,从而以原子方式执行用户限定的操作。在合乎需要的实例中,RISC-V ISA含有支持高级语言操作和数据类型的完整指令集。PAU 270可利用RISC-V ISA,但通常将支持更有限的指令集和有限的寄存器文件大小,以在包含在存储器控制器小芯片205内时减小单元的裸片大小。
如上文所提及,在将读取数据写入到高速缓存210之前,存储器危险清除单元260将清除所保留高速缓存行的所设定的危险位。因此,当写入合并单元255接收到请求和读取数据时,存储器危险清除单元260可将复位或清除信号发射到高速缓存210以复位所保留高速缓存行的所设定的存储器危险位。并且,复位此危险位还将释放涉及所指定(或所保留)的高速缓存行的未决读取或写入请求,从而将未决读取或写入请求提供到入埠请求多路复用器以供选择和处理。
图3示出根据实施例的可编程原子单元300(PAU)的实例中的组件,例如上文关于图1(例如,在存储器控制器140中)和图2(例如,PAU 270)所提到的组件。如所示出,PAU300包含处理器305、本地存储器310(例如,SRAM)和用于本地存储器310的控制器315。
在实例中,处理器305为管线化的,使得多级不同指令在每一时钟循环一起执行。处理器305还为桶式多线程处理器,具有在处理器305的每一时钟循环后在不同寄存器文件(例如,含有当前处理状态的寄存器组)之间切换的电路系统。这实现了当前执行线程之间的高效上下文切换。在实例中,处理器305支持八个线程,从而产生八个寄存器文件。在实例中,寄存器文件中的一些或全部未集成到处理器305中,而是驻留在本地存储器310中(寄存器320)。这通过消除用于这些寄存器320的传统触发器来降低处理器305中的电路复杂性。
本地存储器310还可容纳高速缓存330和用于原子操作的指令325。原子指令325包括支持各种应用加载的原子操作的指令集。当例如应用小芯片125请求原子操作时,处理器305执行对应于原子操作的指令集。在实例中,对原子指令325进行分割以建立指令集。在此实例中,由请求进程请求的特定可编程原子操作可通过分区号识别可编程原子操作。当利用PAU 300注册可编程原子操作(例如,将其加载到所述PAU上)时,可建立分区号。可编程原子指令325的例如分区表等额外元数据也可存储在本地存储器310中。
原子操作操纵高速缓存330,当原子操作的线程完成时,所述高速缓存330通常被同步(例如,刷新)。因此,除了从例如裸片外存储器275或280等外部存储器初始加载之外,对于大多数存储器操作,在可编程原子操作线程的执行期间,时延缩短。
为了提供低时延寄存器错误校正,处理器305被配置成当指令是处理器中当前执行的指令时作为所述指令的一部分读取寄存器(例如,从本地存储器310中的寄存器320或从触发器)。
处理器305被配置成检测由读取寄存器产生的数据中的可校正错误。此处,为了检测可校正错误,处理器305可包含错误校正码(ECC)-或其它错误检测或校正技术-组件(例如,电路系统)来检测错误。此组件可拆分成处理器305中的不同电路系统块,例如检测组件和校正组件。在一实例中,ECC组件是本地存储器310的一部分。此实例可利用与本地存储器310设计集成的ECC电路系统。
处理器305被配置成当检测到可校正错误时将处理器中的当前执行的指令改变为寄存器更新指令。因此,直至检测到错误才调度当前指令,且所述当前指令继续穿过管线,假定寄存器数据无错误。一旦读取寄存器且检测到错误,所述指令不再沿着管线继续,而是执行新的指令代替当前指令。此新的指令是寄存器更新指令。这具有将寄存器更新指令添加到线程中的效应,而无调度寄存器更新指令的时延。在一实例中,寄存器更新指令是存储器装置(例如,本地存储器310)写入指令,其使用经校正数据作为输入以及来自指令的寄存器地址(例如,寄存器读取地址或读取操作数地址)作为写入地址。可使用ECC或其它技术实现错误校正。在一实例中,本地存储器310的ECC设施产生经校正数据。
在一实例中,作为将当前执行的指令改变为寄存器更新指令的一部分,处理器305被配置成针对当前执行的指令产生空操作(no-operation,NOP),或表现为NOP。举例来说,NOP防止其它处理器组件作用于不良数据,而不校正寄存器存储器内容。
处理器305被配置成执行寄存器更新指令代替当前指令,以用经校正数据覆写寄存器中的数据。因此,下一次执行当前指令时,寄存器数据将是正确的(例如,无错误)。
处理器305被配置成重新调度当前指令。因为当前指令未曾完成,而是变换成寄存器更新指令,所以当前指令将需要最终执行。因此,重新调度所述指令将为完成当前指令的执行作准备。在一实例中,当当前执行的指令改变为寄存器更新指令时,触发指令重新调度。在一实例中,指令被重新调度为指令的线程中的下一指令。
图4A和4B示出根据实施例的用于低时延寄存器错误校正的经由处理器组件的处理流程。如所示出,存在两个寄存器群组(偶数和奇数)以避免保持寄存器的有限接口(例如,双线)SRAM(例如,本地存储器310)之间的争用,但可以在其它硬件配置中使用单个寄存器文件。为了简化所示出的实例,阐述穿过一个寄存器405的路径。
在管线中,从寄存器文件405读取寄存器数据且将其例如提供到ECC检测RS1420(例如,错误检测电路)和ALU 410。当ECC检测RS1 420未检测到错误时,ALU结果提供到ECC生成组件415以供作为ALU结果的一部分存储在寄存器405中。
然而,如果ECC校正RS1组件420检测到错误,则通过由ECC校正RS1组件425(例如,错误校正电路)生成经校正的寄存器数据,将当前指令改变为寄存器更新指令,且写回到偶数寄存器405(虚线)。如所示出,通过多路复用器430选择经校正RS1结果作为到寄存器405的输入,而非ALU结果,来实现写回。多路复用器可基于输入的存在(例如,如果存在经校正RS1或RS2数据,则其被选择,否则选择ALU结果。)或基于来自例如ECC检测RS1组件420等另一组件的信号而选择正确的输入。
ECC检测RS1组件420所进行的错误检测还触发重新调度组件435(例如,调度电路)来经由长重新调度队列440重新调度失败的指令。此流程通过与正常执行并行地执行错误检测而使用于寄存器数据错误校正的时延最小化。因为寄存器错误不频繁,所以大部分情况下不存在时延损失。然而,当检测到错误时,在其发生的执行循环内寻址寄存器错误,所述时延限于指令的重新调度。
图5是根据实施例的用于低时延寄存器错误校正的方法500的实例的流程图。方法500的操作由计算机硬件(例如,处理电路系统)执行。
在一实例中,方法由存储器控制器(例如,存储器控制器140或存储器控制器205)中的PAU(例如,PAU 300或PAU 270)中的处理器(例如,处理器305)执行。在一实例中,存储器控制器为小芯片(例如,存储器控制器140)。在一实例中,存储器控制器小芯片集成到小芯片系统(例如,小芯片系统110)中。
在操作505处,当指令是处理器中的当前执行的指令时,作为所述指令的一部分读取寄存器。
在操作510处,检测由读取寄存器产生的数据中的可校正错误。在一实例中,在处理器的存储器装置中实施寄存器。在一实例中,存储器装置是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)中的一个。在一实例中,检测可校正错误包含针对存储器装置使用错误校正码(ECC)设施。
在操作515处,响应于检测到可校正错误,将处理器中的当前执行的指令变成寄存器更新指令。在一实例中,寄存器更新指令是存储器装置写入指令,其使用经校正数据作为输入以及来自指令的寄存器地址作为写入地址。
在操作520处,执行寄存器更新指令以用经校正数据覆写寄存器中的数据。在一实例中,ECC设施产生经校正数据。
在操作525处,重新调度指令。在一实例中,改变当前执行的指令产生指令的空操作(NOP)。在一实例中,由NOP触发指令重新调度。在一实例中,处理器为多线程的,且指令被重新调度为指令的线程中的下一指令。
图6示出实例机器600的框图,可利用所述机器、在所述机器中或通过所述机器实施本文所论述的任一或多种技术(例如,方法)。如本文中所描述,实例可包含机器600中的逻辑或若干组件或机构,或可由其操作。电路系统(例如,处理电路系统)是在包含硬件的机器600的有形实体中实施的电路集合(例如,简单电路、门、逻辑等)。电路系统成员资格可随时间推移为灵活的。电路系统包含可在操作时单独或以组合方式执行指定操作的部件。在实例中,可以不变地设计电路系统的硬件以实行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变连接的物理组件(例如,执行单元、晶体管、简单电路等),包含以物理方式修改(例如,不变的大量粒子的磁、电、可移动放置等)以编码特定操作的指令的机器可读介质。在连接物理组件时,硬件构成的基础电性质例如从绝缘体改变成导体,或反之亦然。指令使嵌入式硬件(例如,执行单元或加载机构)能够经由可变连接以硬件创建电路系统的部件以在操作中时实行特定操作的部分。因此,在实例中,机器可读介质元件是电路系统的一部分或在装置操作时以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可在一个以上电路系统的一个以上部件中使用。举例来说,在操作下,执行单元可在一个时间点用于第一电路系统的第一电路中,并且在不同时间由第一电路系统中的第二电路或由第二电路系统中的第三电路再使用。相对于机器600的这些组件的额外实例如下。
在替代实施例中,机器600可以充当独立装置或可以连接(例如,联网)到其它机器。在联网部署中,机器600可在服务器-客户端网络环境中以服务器机器、客户端机器或这两者的容量操作。在实例中,机器600可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器600可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”也应被视为包含个别地或共同地执行指令集(或多个指令集)以执行本文中所论述的方法中的任一或多个(例如,云计算、软件即服务(SaaS)、其它计算机丛集配置)的任何机器集合。
机器(例如,计算机系统)600可包含硬件处理器602(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器604、静态存储器(例如,用于固件、微码、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)等的存储器或存储装置)606,以及大容量存储装置608(例如,硬盘驱动器、磁带机、快闪存储装置或其它块装置),其中的一些或全部可经由互联件(例如,总线)630彼此通信。机器600可进一步包含显示单元610、文数字输入装置612(例如,键盘)和用户界面(UI)导航装置614(例如,鼠标)。在一实例中,显示单元610、输入装置612和UI导航装置614可为触摸屏显示器。机器600可另外包含存储装置(例如,驱动单元)608、信号生成装置618(例如,扬声器)、网络接口装置620,以及一或多个传感器616,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器600可包含输出控制器628,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
处理器602、主存储器604、静态存储器606或大容量存储装置608的寄存器可为或包含机器可读介质622,在其上存储体现本文中所描述的技术或功能中的任何一或多个或被其利用的数据结构或指令624(例如,软件)的一或多个集合。指令624还可在其由机器600执行期间完全或至少部分驻留在处理器602、主存储器604、静态存储器606或大容量存储装置608的寄存器中的任一个内。在实例中,硬件处理器602、主存储器604、静态存储器606或大容量存储装置608中的一个或任何组合可构成机器可读介质622。虽然机器可读介质622示出为单个介质,但术语“机器可读介质”可包含被配置成存储所述一或多个指令624的单个介质或多个介质(例如,集中式或分布式数据库,或相关联高速缓存及服务器)。
术语“机器可读介质”可包含能够存储、编码或携载供机器600执行的指令且致使机器600执行本公开的技术中的任何一或多种或能够存储、编码或携载由此些指令使用或与此些指令相关联的数据结构的任何介质。非限制性机器可读介质实例可包含固态存储器、光学介质、磁性介质和信号(例如,射频信号、其它基于光子的信号、声音信号等)。在实例中,非暂时性机器可读介质包括具有多个粒子的机器可读介质,所述粒子具有不变(例如,静止)质量,且因此为物质组成。因此,非暂时性机器可读介质是不包含暂时性传播信号的机器可读介质。非暂时性机器可读介质的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可移式盘;磁光盘;以及CD-ROM和DVD-ROM盘。
在实例中,存储或以其它方式提供在机器可读介质622上的信息可表示指令624,例如指令624本身或可从其导出指令624的格式。可从其导出指令624的此格式可包含源代码、已编码指令(例如,呈压缩或加密形式)、已封装指令(例如,拆分成多个封装)等。表示机器可读介质622中的指令624的信息可由处理电路系统处理到指令中以实施本文中所论述的操作中的任一个。举例来说,从信息(例如,由处理电路系统处理)导出指令624可包含:编译(例如,从源代码、目标代码等)、解译、加载、组织(例如,动态地或静态地链接)、编码、解码、加密、解密、封包、解封包或以其它方式将信息操纵到指令624中。
在实例中,指令624的导出可包含对信息的汇编、编译或解译(例如,由处理电路系统)以从由机器可读介质622提供的一些中间或预处理格式创建指令624。当以多个部分提供信息时,可组合、解封装和修改所述信息以创建指令624。举例来说,信息可在一个或数个远程服务器上的多个压缩源代码封装(或目标代码,或二进制可执行代码等)中。源代码封装可在经由网络传输时被加密,并且在必要时被解密、解压缩、汇编(例如,链接),并且在本地机器处被编译或解译(例如,为库、独立的可执行程序等),并且由本地机器执行。
指令624可使用发射介质经由网络接口装置620利用若干传递协议(例如,帧中继、因特网协议(IP)、发射控制协议(TCP)、用户数据报协议(UDP)、超文本传递协议(HTTP)等)中的任一个在通信网络626上进一步发射或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝式网络)、普通老式电话(POTS)网络和无线数据网络(例如,被称为
Figure BDA0003309684490000161
的电气电子工程师学会(IEEE)802.11标准系列、被称为
Figure BDA0003309684490000162
的IEEE 802.16标准系列)、IEEE 802.15.4标准系列、对等(P2P)网络等等。在实例中,网络接口装置620可以包含一或多个物理插口(例如,以太网、同轴或电话插口)或者一或多个天线以连接到通信网络626。在实例中,网络接口装置620可以包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一种进行无线通信。术语“发射介质”应被认为包含能够存储、编码或携载指令以供由机器600执行的任何无形介质,且包含数字或模拟通信信号或其它无形介质以有助于此类软件的通信。发射介质是机器可读介质。为了更好地说明本文中所描述的方法和设备,一组非限制性实例实施例在下文阐述为带编号的实例。
实例1是一种处理器,所述处理器包括:寄存器,其作为是所述处理器中的当前执行的指令的指令的一部分而被读取;错误检测电路,其被配置成检测由读取所述寄存器产生的数据中的可校正错误;错误校正电路,其被配置成:响应于检测到所述可校正错误,将所述处理器中的所述当前执行的指令改变为寄存器更新指令;且执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及调度电路,其被配置成重新调度所述指令。
在实例2中,根据实例1的主题,其中所述处理器为多线程的,且其中,为了重新调度所述指令,所述调度电路被配置成将所述指令调度为所述指令的线程中的下一指令。
在实例3中,根据实例1-2中任一项的主题,其中所述寄存器实施于所述处理器的存储器装置中。
在实例4中,根据实例3的主题,其中所述存储器装置是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)中的一个。
在实例5中,根据实例4的主题,其中,为了检测所述可校正错误,所述错误检测电路被配置成针对所述存储器装置使用错误校正码(ECC)设施。
在实例6中,根据实例5的主题,其中所述ECC设施产生所述经校正数据。
在实例7中,根据实例3-6中任一项的主题,其中所述寄存器更新指令是存储器装置写入指令,所述存储器装置写入指令使用所述经校正数据作为输入以及来自所述指令的寄存器读取地址作为写入地址。
在实例8中,根据实例1-7中任一项的主题,其中,为了改变所述当前执行的指令,所述错误校正电路被配置成产生空操作(NOP)。
在实例9中,根据实例8的主题,其中所述调度电路被配置成响应于所述NOP重新调度所述指令。
实例10是一种方法,其包括:当指令是处理器中的当前执行的指令时作为所述指令的一部分读取寄存器;检测由读取所述寄存器产生的数据中的可校正错误;响应于检测到所述可校正错误,将所述处理器中的所述当前执行的指令改变为寄存器更新指令;执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及重新调度所述指令。
在实例11中,根据实例10的主题,其中所述处理器为多线程的,且其中重新调度所述指令包含将所述指令调度为所述指令的线程中的下一指令。
在实例12中,根据实例10-11中任一项的主题,其中所述寄存器实施于所述处理器的存储器装置中。
在实例13中,根据实例12的主题,其中所述存储器装置是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)中的一个。
在实例14中,根据实例13的主题,其中所述检测所述可校正错误包含针对所述存储器装置使用错误校正码(ECC)设施。
在实例15中,根据实例14的主题,其中所述ECC设施产生所述经校正数据。
在实例16中,根据实例12-15中任一项的主题,其中所述寄存器更新指令是存储器装置写入指令,所述存储器装置写入指令使用所述经校正数据作为输入以及来自所述指令的寄存器读取地址作为写入地址。
在实例17中,根据实例10-16中任一项的主题,其中改变所述当前执行的指令产生空操作(NOP)。
在实例18中,根据实例17的主题,其中重新调度所述指令由所述NOP触发。
实例19是一种包含指令的机器可读介质,所述指令当由处理器的电路系统执行时致使所述处理器执行包括以下的操作:当指令是所述处理器中的当前执行的指令时作为所述指令的一部分读取寄存器;检测由读取所述寄存器产生的数据中的可校正错误;响应于检测到所述可校正错误,将所述处理器中的所述当前执行的指令改变为寄存器更新指令;执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及重新调度所述指令。
在实例20中,根据实例19的主题,其中所述处理器为多线程的,且其中重新调度所述指令包含将所述指令调度为所述指令的线程中的下一指令。
在实例21中,根据实例19-20中任一项的主题,其中所述寄存器实施于所述处理器的存储器装置中。
在实例22中,根据实例21的主题,其中所述存储器装置是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)中的一个。
在实例23中,根据实例22的主题,其中所述检测所述可校正错误包含针对所述存储器装置使用错误校正码(ECC)设施。
在实例24中,根据实例23的主题,其中所述ECC设施产生所述经校正数据。
在实例25中,根据实例21-24中任一项的主题,其中所述寄存器更新指令是存储器装置写入指令,所述存储器装置写入指令使用所述经校正数据作为输入以及来自所述指令的寄存器读取地址作为写入地址。
在实例26中,根据实例19-25中任一项的主题,其中改变所述当前执行的指令产生空操作(NOP)。
在实例27中,根据实例26的主题,其中重新调度所述指令由所述NOP触发。
实例28是一种系统,其包括:用于当指令是处理器中的当前执行的指令时作为所述指令的一部分读取寄存器的构件;用于检测由读取所述寄存器产生的数据中的可校正错误的构件;用于响应于检测到所述可校正错误将所述处理器中的所述当前执行的指令改变为寄存器更新指令的构件;用于执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据的构件;以及用于重新调度所述指令的构件。
在实例29中,根据实例28的主题,其中所述处理器为多线程的,且其中所述用于重新调度所述指令的构件包含用于将所述指令调度为所述指令的线程中的下一指令的构件。
在实例30中,根据实例28-29中任一项的主题,其中所述寄存器实施于所述处理器的存储器装置中。
在实例31中,根据实例30的主题,其中所述存储器装置是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)中的一个。
在实例32中,根据实例31的主题,其中所述用于检测所述可校正错误的构件包含用于针对所述存储器装置使用错误校正码(ECC)设施的构件。
在实例33中,根据实例32的主题,其中所述ECC设施产生所述经校正数据。
在实例34中,根据实例30-33中任一项的主题,其中所述寄存器更新指令是存储器装置写入指令,所述存储器装置写入指令使用所述经校正数据作为输入以及来自所述指令的寄存器读取地址作为写入地址。
在实例35中,根据实例28-34中任一项的主题,其中所述用于改变所述当前执行的指令的构件产生空操作(NOP)。
在实例36中,根据实例35的主题,其中所述用于重新调度所述指令的构件由所述NOP触发。
实例37是包含指令的至少一个机器可读介质,所述指令在由处理电路系统执行时致使所述处理电路系统执行操作以实施实例1-36中的任一个。
实例38是一种设备,其包括用以实施实例1-36中的任一个的构件。
实例39是一种用以实施实例1-36中的任一个的系统。
实例40是一种用以实施实例1-36中的任一个的方法。
以上详细描述包含对附图的参考,附图形成详细描述的部分。图式借助于图示展示其中可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此些实例可包含除了所展示或所描述的那些元件之外的元件。然而,本发明人还审慎考虑其中仅提供所展示或所描述的那些元件的实例。此外,本发明人还审慎考虑使用关于特定实例(或其一或多个方面)或关于本文所展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在本文中,如专利文献中所常见而使用术语“一”以包含一个或一个以上,其独立于“至少一个”或“一或多个”的任何其它例项或使用。在本文中,术语“或”用于指代非排它性或,使得除非另有指示,否则“A或B”可包含“A而非B”、“B而非A”以及“A和B”。在所附权利要求书中,术语“包含”和“在其中”用作相应术语“包括”和“其中”的简明等效用语。此外,在所附权利要求书中,术语“包含”和“包括”为开放式的,也就是说,包含除权利要求中在此术语之后列出的那些要素之外的要素的系统、装置、物件或过程仍被视为落在该权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且并不希望对其对象强加数值要求。
以上描述希望是说明性的而非限制性的。举例来说,上述实例((或其一或多个方面)可彼此组合使用。例如所属领域的一般技术人员在查阅以上描述后可使用其它实施例。应遵守以下理解:它将不会用于解释或限制权利要求书的范围或含义。另外,在以上具体实施方式中,可将各种特征分组在一起以简化本公开。不应将此解释为希望未主张的所公开特征对于任何权利要求来说是必需的。实际上,本发明主题可在于特定所公开实施例的不到全部特征。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为单独的实施例而独立存在,且经审慎考虑,此些实施例可以各种组合或排列彼此组合。本发明的范围应通过参考所附权利要求书以及此权利要求书所授予的等效物的完整范围来确定。

Claims (27)

1.一种设备,其包括:
寄存器,其作为是所述设备中的当前执行的指令的指令的一部分而被读取;
错误检测电路,其被配置成检测由读取所述寄存器产生的数据中的可校正错误;错误校正电路,其被配置成:
响应于检测到所述可校正错误,将所述设备中的所述当前执行的指令改变为寄存器更新指令;且
执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及调度电路,其被配置成重新调度所述指令。
2.根据权利要求1所述的设备,其中所述设备是多线程处理器,且其中,为了重新调度所述指令,所述调度电路被配置成将所述指令调度为所述指令的线程中的下一指令。
3.根据权利要求1所述的设备,其中所述寄存器实施于所述设备的存储器装置中。
4.根据权利要求3所述的设备,其中所述存储器装置是静态随机存取存储器SRAM或动态随机存取存储器DRAM中的一个。
5.根据权利要求4所述的设备,其中,为了检测所述可校正错误,所述错误检测电路被配置成针对所述存储器装置使用错误校正码ECC设施。
6.根据权利要求5所述的设备,其中所述ECC设施产生所述经校正数据。
7.根据权利要求3所述的设备,其中所述寄存器更新指令是存储器装置写入指令,所述存储器装置写入指令使用所述经校正数据作为输入以及来自所述指令的寄存器读取地址作为写入地址。
8.根据权利要求1所述的设备,其中,为了改变所述当前执行的指令,所述错误校正电路被配置成产生空操作NOP。
9.根据权利要求8所述的设备,其中所述调度电路被配置成响应于所述NOP重新调度所述指令。
10.一种方法,其包括:
当指令是处理器中的当前执行的指令时作为所述指令的一部分读取寄存器;
检测由读取所述寄存器产生的数据中的可校正错误;
响应于检测到所述可校正错误,将所述处理器中的所述当前执行的指令改变为寄存器更新指令;
执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及
重新调度所述指令。
11.根据权利要求10所述的方法,其中所述处理器为多线程的,且其中重新调度所述指令包含将所述指令调度为所述指令的线程中的下一指令。
12.根据权利要求10所述的方法,其中所述寄存器实施于所述处理器的存储器装置中。
13.根据权利要求12所述的方法,其中所述存储器装置是静态随机存取存储器SRAM或动态随机存取存储器DRAM中的一个。
14.根据权利要求13所述的方法,其中所述检测所述可校正错误包含针对所述存储器装置使用错误校正码ECC设施。
15.根据权利要求14所述的方法,其中所述ECC设施产生所述经校正数据。
16.根据权利要求12所述的方法,其中所述寄存器更新指令是存储器装置写入指令,所述存储器装置写入指令使用所述经校正数据作为输入以及来自所述指令的寄存器读取地址作为写入地址。
17.根据权利要求10所述的方法,其中改变所述当前执行的指令产生空操作NOP。
18.根据权利要求17所述的方法,其中重新调度所述指令由所述NOP触发。
19.一种包含指令的非暂时性机器可读介质,所述指令当由处理器的电路系统执行时致使所述处理器执行包括以下的操作:
当指令是所述处理器中的当前执行的指令时作为所述指令的一部分读取寄存器;
检测由读取所述寄存器产生的数据中的可校正错误;
响应于检测到所述可校正错误,将所述处理器中的所述当前执行的指令改变为寄存器更新指令;
执行所述寄存器更新指令以用经校正数据覆写所述寄存器中的所述数据;以及
重新调度所述指令。
20.根据权利要求19所述的机器可读介质,其中所述处理器为多线程的,且其中重新调度所述指令包含将所述指令调度为所述指令的线程中的下一指令。
21.根据权利要求19所述的机器可读介质,其中所述寄存器实施于所述处理器的存储器装置中。
22.根据权利要求21所述的机器可读介质,其中所述存储器装置是静态随机存取存储器SRAM或动态随机存取存储器DRAM中的一个。
23.根据权利要求22所述的机器可读介质,其中所述检测所述可校正错误包含针对所述存储器装置使用错误校正码ECC设施。
24.根据权利要求23所述的机器可读介质,其中所述ECC设施产生所述经校正数据。
25.根据权利要求21所述的机器可读介质,其中所述寄存器更新指令是存储器装置写入指令,所述存储器装置写入指令使用所述经校正数据作为输入以及来自所述指令的寄存器读取地址作为写入地址。
26.根据权利要求19所述的机器可读介质,其中改变所述当前执行的指令产生空操作NOP。
27.根据权利要求26所述的机器可读介质,其中重新调度所述指令由所述NOP触发。
CN202111213376.7A 2020-10-20 2021-10-19 用于低时延寄存器错误校正的方法和设备及机器可读介质 Active CN114385237B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/074,958 US11507453B2 (en) 2020-10-20 2020-10-20 Low-latency register error correction
US17/074,958 2020-10-20

Publications (2)

Publication Number Publication Date
CN114385237A true CN114385237A (zh) 2022-04-22
CN114385237B CN114385237B (zh) 2023-11-21

Family

ID=81186445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111213376.7A Active CN114385237B (zh) 2020-10-20 2021-10-19 用于低时延寄存器错误校正的方法和设备及机器可读介质

Country Status (2)

Country Link
US (2) US11507453B2 (zh)
CN (1) CN114385237B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11953989B2 (en) 2020-10-20 2024-04-09 Micron Technology, Inc. Low-latency register error correction

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210151120A1 (en) * 2020-12-24 2021-05-20 Intel Corporation Modular error correction code circuitry

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370243B1 (en) * 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US20090063899A1 (en) * 2007-09-04 2009-03-05 Jordan Paul J Register Error Correction of Speculative Data in an Out-of-Order Processor
US20140189472A1 (en) * 2012-12-28 2014-07-03 Alexander Gendler Efficient cache search and error detection
CN104428756A (zh) * 2012-06-07 2015-03-18 美光科技公司 改善地址总线的完整性
US20170024268A1 (en) * 2015-07-22 2017-01-26 Fujitsu Limited Arithmetic processing device and method of controlling arithmetic processing device

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7278083B2 (en) * 2003-06-27 2007-10-02 International Business Machines Corporation Method and system for optimized instruction fetch to protect against soft and hard errors
US20080270708A1 (en) 2007-04-30 2008-10-30 Craig Warner System and Method for Achieving Cache Coherency Within Multiprocessor Computer System
US8156307B2 (en) 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8561037B2 (en) 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8122229B2 (en) 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US8972958B1 (en) 2012-10-23 2015-03-03 Convey Computer Multistage development workflow for generating a custom instruction set reconfigurable processor
US8205066B2 (en) 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US20100115233A1 (en) 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US11093251B2 (en) 2017-10-31 2021-08-17 Micron Technology, Inc. System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network
US10956086B2 (en) 2018-01-29 2021-03-23 Micron Technology, Inc. Memory controller
US11461527B2 (en) 2018-02-02 2022-10-04 Micron Technology, Inc. Interface for data communication between chiplets or other integrated circuits on an interposer
US11288074B2 (en) 2018-03-31 2022-03-29 Micron Technology, Inc. Loop execution control for a multi-threaded, self-scheduling reconfigurable computing fabric using a reenter queue
WO2019191742A1 (en) 2018-03-31 2019-10-03 Micron Technology, Inc. Loop thread order execution control of a multi-threaded, self-scheduling reconfigurable computing fabric
CN111971652A (zh) 2018-03-31 2020-11-20 美光科技公司 多线程自调度可重新配置计算架构的条件分支控制
WO2019191739A1 (en) 2018-03-31 2019-10-03 Micron Technology, Inc. Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric
US11010161B2 (en) 2018-03-31 2021-05-18 Micron Technology, Inc. Multiple types of thread identifiers for a multi-threaded, self-scheduling reconfigurable computing fabric
CN111919206A (zh) 2018-03-31 2020-11-10 美光科技公司 将停止信号用于多线程自调度可重新配置计算架构的背压控制
US11119972B2 (en) 2018-05-07 2021-09-14 Micron Technology, Inc. Multi-threaded, self-scheduling processor
US11513837B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Thread commencement and completion using work descriptor packets in a system having a self-scheduling processor and a hybrid threading fabric
US11119782B2 (en) 2018-05-07 2021-09-14 Micron Technology, Inc. Thread commencement using a work descriptor packet in a self-scheduling processor
US11126587B2 (en) 2018-05-07 2021-09-21 Micron Technology, Inc. Event messaging in a system having a self-scheduling processor and a hybrid threading fabric
US11074078B2 (en) 2018-05-07 2021-07-27 Micron Technology, Inc. Adjustment of load access size by a multi-threaded, self-scheduling processor to manage network congestion
US11513838B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Thread state monitoring in a system having a multi-threaded, self-scheduling processor
US11068305B2 (en) 2018-05-07 2021-07-20 Micron Technology, Inc. System call management in a user-mode, multi-threaded, self-scheduling processor
US11513839B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Memory request size management in a multi-threaded, self-scheduling processor
US11132233B2 (en) 2018-05-07 2021-09-28 Micron Technology, Inc. Thread priority management in a multi-threaded, self-scheduling processor
US11513840B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Thread creation on local or remote compute elements by a multi-threaded, self-scheduling processor
US11573834B2 (en) 2019-08-22 2023-02-07 Micron Technology, Inc. Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric
US11150900B2 (en) 2019-08-28 2021-10-19 Micron Technology, Inc. Execution or write mask generation for data selection in a multi-threaded, self-scheduling reconfigurable computing fabric
US11836524B2 (en) 2019-08-29 2023-12-05 Micron Technology, Inc. Memory interface for a multi-threaded, self-scheduling reconfigurable computing fabric
US11507453B2 (en) 2020-10-20 2022-11-22 Micron Technology, Inc. Low-latency register error correction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370243B1 (en) * 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US20090063899A1 (en) * 2007-09-04 2009-03-05 Jordan Paul J Register Error Correction of Speculative Data in an Out-of-Order Processor
CN104428756A (zh) * 2012-06-07 2015-03-18 美光科技公司 改善地址总线的完整性
US20140189472A1 (en) * 2012-12-28 2014-07-03 Alexander Gendler Efficient cache search and error detection
US20170024268A1 (en) * 2015-07-22 2017-01-26 Fujitsu Limited Arithmetic processing device and method of controlling arithmetic processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11953989B2 (en) 2020-10-20 2024-04-09 Micron Technology, Inc. Low-latency register error correction

Also Published As

Publication number Publication date
US11507453B2 (en) 2022-11-22
US20220121516A1 (en) 2022-04-21
US11953989B2 (en) 2024-04-09
US20230101219A1 (en) 2023-03-30
CN114385237B (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
US11954055B2 (en) Mapping high-speed, point-to-point interface channels to packet virtual channels
US11966345B2 (en) Network credit return mechanisms
US11669486B2 (en) Initialization sequencing of chiplet I/O channels within a chiplet system
US11953989B2 (en) Low-latency register error correction
US11403023B2 (en) Method of organizing a programmable atomic unit instruction memory
US11868300B2 (en) Deferred communications over a synchronous interface
CN114385236A (zh) 传递可编程原子操作符到存储器控制器
CN116636189A (zh) 用于网络装置中的缓冲包的包仲裁
CN114385545B (zh) 针对可编程原子操作的存储器存取边界检查
CN114385538B (zh) 电路中的管线合并
US11614942B2 (en) Reuse in-flight register data in a processor
CN114385326A (zh) 桶式处理器中的线程重放到保留状态
US20220121612A1 (en) Static identifiers for a synchronous interface
CN114385246A (zh) 桶式多线程处理器中的可变流水线长度
CN116529721A (zh) 按需可编程原子内核加载
CN116569156A (zh) 同步接口的有效负载奇偶校验保护
US20220121486A1 (en) Rescheduling a failed memory request in a processor
US20220121483A1 (en) Thread execution control in a barrel processor
WO2022086763A1 (en) Thread scheduling control and memory splitting in a barrel processor
CN114385238A (zh) 减小存储器控制器中的存储器操作的时延

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