CN117255987A - 增加合成孔径雷达的高速缓存命中 - Google Patents

增加合成孔径雷达的高速缓存命中 Download PDF

Info

Publication number
CN117255987A
CN117255987A CN202280032139.7A CN202280032139A CN117255987A CN 117255987 A CN117255987 A CN 117255987A CN 202280032139 A CN202280032139 A CN 202280032139A CN 117255987 A CN117255987 A CN 117255987A
Authority
CN
China
Prior art keywords
work
computing
unit
pulse data
computing processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280032139.7A
Other languages
English (en)
Inventor
P·埃斯特普
T·M·布鲁尔
B·霍尔农
D·瓦内斯科
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 CN117255987A publication Critical patent/CN117255987A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/89Radar or analogous systems specially adapted for specific applications for mapping or imaging
    • G01S13/90Radar or analogous systems specially adapted for specific applications for mapping or imaging using synthetic aperture techniques, e.g. synthetic aperture radar [SAR] techniques
    • G01S13/9004SAR image acquisition techniques
    • G01S13/9017SAR image acquisition techniques with time domain processing of the SAR signals in azimuth
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/89Radar or analogous systems specially adapted for specific applications for mapping or imaging
    • G01S13/90Radar or analogous systems specially adapted for specific applications for mapping or imaging using synthetic aperture techniques, e.g. synthetic aperture radar [SAR] techniques
    • G01S13/9021SAR image post-processing techniques
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/89Radar or analogous systems specially adapted for specific applications for mapping or imaging
    • G01S13/90Radar or analogous systems specially adapted for specific applications for mapping or imaging using synthetic aperture techniques, e.g. synthetic aperture radar [SAR] techniques
    • G01S13/9004SAR image acquisition techniques
    • G01S13/9005SAR image acquisition techniques with optical processing of the SAR signals
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/89Radar or analogous systems specially adapted for specific applications for mapping or imaging
    • G01S13/90Radar or analogous systems specially adapted for specific applications for mapping or imaging using synthetic aperture techniques, e.g. synthetic aperture radar [SAR] techniques
    • G01S13/904SAR modes
    • G01S13/9056Scan SAR mode
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Electromagnetism (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Abstract

一种合成孔径雷达(SAR)天线发射雷达脉冲且接收其反射。SAR通常用在移动平台上,例如飞机、无人机或航天器。由于所述天线的位置在发射雷达脉冲的时间与接收所述脉冲的所述反射的时间之间改变,因此增大所述雷达的所述合成孔径,从而与常规波束扫描雷达相比,给予相同(物理)大小的雷达更高的准确度。使用反投影算法来处理所述脉冲数据,以产生能够用于导航的二维图像。处理所述SAR数据的顺序能够影响存取所述数据时高速缓存命中的可能性。由于从高速缓存而不是存储器存储装置存取数据减少了存取时间及功耗两者,因此从高速缓存存取更多数据的装置具有更大电池寿命及范围。

Description

增加合成孔径雷达的高速缓存命中
优先权申请
本申请案主张2021年4月26日申请的序列号为17/240,548的美国申请案的优先权的权益,所述申请案主张2021年3月30日申请的序列号为63/168,102的美国临时申请案的优先权的权益,全部所述申请案的全部内容以引用的方式并入本文中。
关于政府支持的声明
本发明是在政府的支持下根据DARPA授予的第HR0011-19-3-0002号协定进行的。政府对本发明拥有某些权利。
技术领域
本公开的实施例大体上涉及处理器存储器接口,且更具体来说,涉及在使用反投影算法为合成孔径雷达(SAR)制定图像时增加高速缓存命中率。
背景技术
各种计算机架构(例如冯·诺依曼架构)常规地使用用于数据的共享存储器、用于存取共享存储器的总线、算术单元及程序控制单元。然而,在处理器与存储器之间移动数据可能需要大量的时间及能量,这又可能约束计算机系统的性能及容量。鉴于这些限制,需要新的计算架构及装置来提高计算性能使其超越晶体管缩放的实践(即,摩尔定律)。
附图说明
将从下面给出的详细描述及从本公开的各种实施例的附图中更充分地理解本公开。然而,图式不应被视为将本公开限定于特定实施例,而仅用于解释及理解。
为了容易地识别对任何特定元件或动作的论述,参考数字中的最高有效数字是指其中首先引入所述元件的图号。
图1大体上说明根据实施例的在存储器计算系统的上下文中的第一存储器计算装置的第一实例。
图2大体上说明根据实施例的存储器计算装置的存储器子系统的实例。
图3大体上说明根据实施例的用于存储器控制器的可编程原子单元的实例。
图4说明根据实施例的存储器计算装置的混合线程处理器(HTP)加速器的实例。
图5说明根据实施例的存储器计算装置的混合线程组构(HTF)的表示的实例。
图6A大体上说明根据实施例的小芯片系统的实例。
图6B大体上说明展示来自图6A的实例的小芯片系统中的各种组件的框图。
图7大体上说明根据实施例的用于存储器计算装置的基于小芯片的实施方案的实例。
图8说明根据实施例的存储器计算装置小芯片的实例平铺。
图9是适于在存储器系统内执行内插的实例存储器系统的框图。
图10是展示在一些实例实施例中的包括在由单个计算单元处理的一组合成雷达孔径雷达(SAR)脉冲上方的数个图像像素的支柱的框图。
图11是展示在一些实例实施例中的被指派到不同计算单元用于同时处理的工作单元的框图。
图12说明根据一些实例实施例的用于在数据的两个维度上迭代的蛇形路径。
图13说明根据一些实例实施例的用于在数据的两个维度上迭代的蛇形路径。
图14说明根据一些实例实施例的用于在数据的三个维度上迭代的蛇形路径。
图15是展示根据本公开的一些实施例的由电路在控制系统时执行的方法的操作的流程图。
图16说明实例自主交通工具的框图,可借助于实例自主交通工具、在实例自主交通工具中或通过实例自主交通工具来实施本文论述的技术(例如,方法)中的任一或多者。
图17说明实例机器的框图,可借助于实例机器、在实例机器中或通过实例机器来实施本文论述的技术(例如,方法)中的任一或多者。
具体实施方式
可利用材料、装置及集成技术的最新进展来提供以存储器为中心的计算拓扑。例如,对于受大小、重量或功率要求约束的应用程序,此类拓扑可实现计算效率及工作负载处理量的进步。拓扑可用于促进存储器或其它数据存储元件附近或内部的低延时计算。所述方法可特别适合于具有稀疏查找的各种计算密集型操作,例如在变换计算(例如,快速傅里叶变换计算(FFT))中,或在例如神经网络或人工智能(AI)、金融分析或模拟或建模(例如用于计算流体动力学(CFD)、工程师增强声学模拟器(EASE)、集成电路通用模拟程序(SPICE)等)等的应用中。
本文论述的系统、装置及方法可包含或使用具有处理器或处理能力的存储器计算系统,所述处理器或处理能力提供在存储器或数据存储组件中、附近或与存储器或数据存储器组件集成。此类系统在本文中通常称为近存储器计算(CNM)系统。CNM系统可为基于节点的系统,其中系统中的个别节点使用系统缩放组构耦合。每一节点可包含或使用专用或通用处理器及用户可存取加速器(具有定制计算组构以促进密集型操作),特别是在预期高高速缓存未命中率的环境中。
在实例中,CNM系统中的每一节点可具有一主机处理器或若干主机处理器。在每一节点内,专用混合线程处理器可占用芯片上网络的离散端点。混合线程处理器可存取系统的特定节点中的存储器中的一些或全部,或者混合线程处理器可经由系统缩放组构跨越多个节点的网络存取存储器。每一节点处的定制计算组构或混合线程组构可具有其自身的处理器或加速器,且可以比混合线程处理器更高的带宽操作。近存储器计算系统中的不同节点可不同地配置,例如具有不同计算能力、不同类型的存储器、不同接口或其它差异。然而,节点可共同耦合以在定义地址空间内共享数据及计算资源。
在实例中,近存储器计算系统或系统内的节点可由用户配置用于定制操作。用户可使用高级编程语言(例如C/C++)提供指令,所述高级编程语言可被编译为且直接映射为系统的数据流架构或CNM系统中的一或多个节点的数据流架构。也就是说,系统中的节点可包含硬件块(例如,存储器控制器、原子单元、其它客户加速器等),其可经配置以直接实施或支持用户指令,借此增强系统性能且减少延时。
在实例中,近存储器计算系统可特别适合于实施指令及嵌套循环(例如,两个、三个或更多个深度循环或多维循环)的层次结构。标准编译器可用于接受高级语言指令,且又直接编译为节点中的一或多者的数据流架构。例如,系统中的节点可包含混合线程组构加速器。混合线程组构加速器可在CNM系统的用户空间中执行,且可启动其自身的线程或子线程,其可并行操作。每一线程可映射到不同循环迭代以借此支持多维循环。凭借启动此类嵌套循环的能力以及其它能力,CNM系统可为计算密集型操作实现显著时间节省及延时改进。
近存储器计算系统或近存储器计算系统的节点或组件可包含或使用各种存储器装置、控制器及互连件等。在实例中,系统可包括各种互连节点,且可使用小芯片来实施节点或节点的群组。小芯片是一种用于集成各种处理功能性的新兴技术。一般来说,小芯片系统由集成在中介层上且封装在一起的离散芯片(例如,不同衬底或裸片上的集成电路(IC))组成。此布置相异于在一个衬底(例如,单个裸片)上含有相异装置块(例如,知识产权(IP)块)的单个芯片(例如,IC),例如芯片上系统(SoC),或集成在板上的离散封装装置。一般来说,与单裸片芯片相比,小芯片提供生产益处,包含更高的良率或降低的开发成本。下文论述的图6A及图6B大体上说明小芯片系统的实例,其例如可包括近存储器计算系统。
线性内插在一组离散的已知数据点的范围内构造新数据点。例如,可以规则的时间单位(例如,每秒、每.01秒或类似者)测量值,以及通过对测量之间的时间值使用线性内插来估计值的连续函数。为了执行线性内插,检索待估计的中间点的两个邻近测量值。使用加权平均来组合两个邻近测量值以产生中间点的内插值。
线性内插的一个用途是处理由合成孔径雷达(SAR)产生的数据。雷达天线发射雷达脉冲且接收其反射。SAR通常用在移动平台上,例如飞机、无人机或航天器。由于天线的位置在发射雷达脉冲的时间与接收脉冲反射的时间之间改变,因此增大雷达的合成孔径,从而与常规波束扫描雷达相比,给予相同(物理)大小的雷达更高的准确度。SAR的波长可在1到1000mm的范围内。
与SAR一样,合成孔径激光雷达(SAL)依赖于使用多个电磁回声来模拟更大天线孔径。然而,SAL使用比SAR的雷达波长短得多的光学波长,通常在900-1600nm范围内。尽管本文关于SAR描述各种实例实施例,但所描述的方法及系统同样适用于SAL。
使用反投影算法处理脉冲数据以产生二维图像,其中图像的每一像素的值指示对应扫描点与SAR的距离。因此,飞行装置可使用SAR来产生正被飞过的区域的地形图像。此图像可用于导航。例如,可在图像中识别地标,且将其与预先规划路线的地标进行比较。作为另一例子,图像辨识可识别要攻击、要跟随或要避开的目标。
为了从脉冲反射数据产生图像数据,定义体积元素(“体素”)的三维阵列。每一体素表示反射表面在空间中位于所述位置的概率。对于每一脉冲反射,对每一体素执行计算以确定个别反射由体素内的表面引起的概率。在迭代所有脉冲反射后,确定每一体素含有反射表面的总概率。因此,更高脉冲数目(例如,通过使用更高频率雷达或更长的时间段)导致更准确估计。将每一体素的概率与截止阈值进行比较。满足或超过阈值的体素在所产生图像中展示为实的,且其它体素展示为空的。可通过使用颜色(或灰度值)来指示每一二维位置(例如,(x,y)位置值)的最顶部的占用的体素(例如,z轴值)的高度来创建二维图像。
可使用傅里叶变换(例如,FFT)来扩展由SAR收集的离散脉冲数据以产生中间值。所收集数据、所产生数据或两者可用于线性内插,从而为脉冲范围内的任何索引提供近似脉冲值。例如,如果发送1000个脉冲,且获得1000个脉冲中的每一者的数据,那么可使用FFT将数据扩展10倍,使得0.0到999.0的索引以0.1单元的增量变得有效。使用线性内插,0.0到999.0范围内的任何浮点索引给出有效值。
当使用存储在存储器装置上的数据在处理器上执行线性内插时,处理器确定要检索的测量值,检索其中的两者,且执行内插计算。相比之下,当检索测量值时,处理器仅检索单个测量值。因此,从存储器传送到处理器的用于内插值的数据是为测量值传送的数据的两倍。
如本文所论述,在存储器系统内执行线性内插。处理器将浮点点索引提供到整数索引存储器阵列中。存储器系统存取两个邻近整数索引的两个值,执行线性内插,且将所得内插值提供到处理器。因此,根据一些实例实施例,从存储器传送到处理器的用于内插值的数据与为测量值传送的数据相同。
一些实例实施例使用每脉冲P个雷达脉冲及N个复值样本的二维情况。在通过反投影内核进行处理之前,每脉冲N个样本将被上采样为每脉冲NBP个样本。每脉冲样本通常称为距离单元或距离仓(range bin),因为其以距离(或时间)间隔采样。SAR处理的输出将是维度为Nx×Ny的复值图像。反投影内核直接产生输出图像。反投影的伪代码如下。
当上文功能完成时,y[]阵列将含有每一像素k的复数高度值。
在许多系统架构中,系统性能的关键限制是存储器与处理器之间的数据传送速率。因此,减少传送的数据量可改进整体系统性能。另外,将数据从存储器系统传送到处理器所消耗的电力不是微不足道的,特别是在例如无人机、自主电动交通工具、智能手机、平板计算机及膝上型计算机的电池供电装置中。因此,可通过使用本文描述的系统及方法来延长电池寿命。
图1大体上说明近存储器计算系统或CNM系统102的第一实例。CNM系统102的实例包含多个不同存储器计算节点,且各自可包含各种近存储器计算装置。系统102中的每一节点可在其自身的操作系统(OS)域(例如,Linux等)中操作。在实例中,节点可共同存在于CNM系统102的公共OS域中。
图1的实例包含CNM系统102的第一存储器计算节点104的实例。CNM系统102可具有多个节点,例如包含使用缩放组构106耦合的第一存储器计算节点104的不同例子。在实例中,CNM系统102的架构可使用缩放组构106支持最多n个不同存储器计算节点(例如,n=4096)的缩放。如下文进一步论述,CNM系统102中的每一节点可为多个装置的组合件。
CNM系统102可包含用于系统中的各个节点的全局控制器,或者系统中的特定存储器计算节点可任选地用作同一系统中的一个或多个其它存储器计算节点的主机或控制器。因此,CNM系统102中的各个节点可类似地或不同地配置。
在实例中,CNM系统102中的每一节点可包括使用指定操作系统的主机系统。在CNM系统102中的各个节点当中,操作系统可为共同的或不同的。在图1的实例中,第一存储器计算节点104包括主机系统108、第一交换机110及第一存储器计算装置112。主机系统108可包括处理器,其例如可包含X86、ARM、RISC-V或其它类型的处理器。第一交换机110可经配置以促进第一存储器计算节点104或CNM系统102的装置之间或当中的通信,例如使用专用或其它通信协议,其在本文中统称为芯片对芯片协议接口(CTCPI)。也就是说,CTCPI可包含CNM系统102特有的专用接口,或者可包含或使用其它接口,例如计算快速链路(CXL)接口、外围组件互连快速(PCIe)接口或小芯片协议接口(CPI)等。第一交换机110可包含经配置以使用CTCPI的交换机。例如,第一交换机110可包含CXL交换机、PCIe交换机、CPI交换机或其它类型的交换机。在实例中,第一交换机110可经配置以耦合不同配置的端点。例如,第一交换机110可经配置以例如在PCIe与CPI格式等之间转换分组格式。
本文描述呈各种实例配置(例如包括节点系统)的CNM系统102,且每一节点可包括各种芯片(例如,处理器、交换机、存储器装置等)。在实例中,CNM系统102中的第一存储器计算节点104可包含使用小芯片实施的各种芯片。在下文论述的CNM系统102的基于小芯片的配置中,小芯片间通信以及系统内的额外通信可使用CPI网络。本文描述的CPI网络是CTCPI的实例,即作为CTCPI的特定于小芯片的实施方案。因此,下文描述的CPI的结构、操作及功能性可同样适用于原本可使用非基于小芯片的CTCPI实施方案实施的结构、操作及功能。除非另有明确说明,否则本文对CPI的任何论述同样适用于CTCPI。
CPI接口包含基于分组的网络,其支持虚拟通道以实现小芯片之间的灵活且高速交互,所述小芯片例如可包括第一存储器计算节点104或CNM系统102的部分。CPI可实现从小芯片内网络到更广泛小芯片内网络的桥接。例如,高级可扩展接口(AXI)是小芯片内通信的规范。然而,AXI规范涵盖各种物理设计选项,例如物理通道的数目、信号时序、功率等。在单个小芯片内,通常选择这些选项来满足设计目标,例如功耗、速度等。然而,为了实现基于小芯片的存储器计算系统的灵活性,适配器,例如使用CPI,可在可在各种小芯片中实施的各种AXI设计选项之间进行介接。通过启用物理通道到虚拟通道映射且用分组化协议封装基于时间的信令,CPI可用于跨越更广泛小芯片网络(例如跨越第一存储器计算节点104或跨越CNM系统102)桥接小芯片内网络(例如在特定存储器计算节点内)。
CNM系统102可缩放以包含多节点配置。也就是说,可使用缩放组构106来耦合第一存储器计算节点104或其它以不同方式配置的存储器计算节点的多个不同例子,以提供缩放系统。存储器计算节点中的每一者可运行其自身的操作系统,且可经配置以联合协调系统范围的资源使用。
在图1的实例中,第一存储器计算节点104的第一交换机110耦合到缩放组构106。缩放组构106可提供交换机(例如,CTCPI交换机、PCIe交换机、CPI交换机或其它交换机),其可促进不同存储器计算节点当中及之间的通信。在实例中,缩放组构106可帮助各个节点在分区全局地址空间(PGAS)中通信。
在实例中,来自第一存储器计算节点104的第一交换机110耦合到一个或多个不同存储器计算装置,例如包含第一存储器计算装置112。第一存储器计算装置112可包括基于小芯片的架构,其在本文称为近存储器计算(CNM)小芯片。第一存储器计算装置112的封装版本可包含例如一个或多个CNM小芯片。小芯片可使用CTCPI通信地耦合以实现高带宽及低延时。
在图1的实例中,第一存储器计算装置112可包含芯片上网络(NOC)或第一NOC118。一般来说,NOC是装置内的互连网络,其连接特定一组端点。在图1中,第一NOC 118可在第一存储器计算装置112的各种存储器、计算资源及端口之间提供通信及连接性。
在实例中,第一NOC 118可包括折叠Clos拓扑,例如在存储器计算装置的每一例子内,或者作为耦合一节点中的多个存储器计算装置的网格。Clos拓扑(例如可使用多个较小基数交叉开关来提供与较高基数交叉开关拓扑相关联的功能性)提供各种益处。例如,Clos拓扑可跨越NOC展现一致延时及平分带宽。
第一NOC 118可包含各种相异交换机类型,包含中心交换机、边缘交换机及端点交换机。交换机中的每一者可被构造为交叉开关,其在输入与输出节点之间提供大体上均匀延时及带宽。在实例中,端点交换机及边缘交换机可包含两个单独交叉开关,一个用于朝向中心交换机的业务,且另一个用于远离中心交换机的业务。中心交换机可被构造为将所有输入切换到所有输出的单个交叉开关。
在实例中,中心交换机可各自具有多个端口(例如,各自具有四个或六个端口),这例如取决于特定中心交换机是否参与芯片间通信。可通过芯片间带宽要求来设置参与芯片间通信的数个中心交换机。
第一NOC 118可支持计算元件与存储器之间的各种有效负载(例如,从8到64字节有效负载;可类似地使用其它有效负载大小)。在实例中,第一NOC 118可针对相对较小有效负载(例如,8到16字节)进行优化,以高效地处置对稀疏数据结构的存取。
在实例中,第一NOC 118可经由第一物理层接口114、PCIe从属模块116或端点以及PCIe主导模块126或根端口耦合到外部主机。也就是说,第一物理层接口114可包含允许外部主机处理器耦合到第一存储器计算装置112的接口。外部主机处理器可任选地耦合到一个或多个不同存储器计算装置,例如使用PCIe交换机或其它本机协议交换机。通过基于PCIe的交换机的与外部主机处理器的通信可将装置到装置通信限于由交换机支持的那些装置。相比之下,通过存储器计算装置-本机协议交换机例如使用CTCPI的通信可允许不同存储器计算装置之间或当中的更全面通信,包含对分区全局地址空间的支持,例如用于创建工作线程及发送事件。
在实例中,CTCPI协议可由第一存储器计算装置112中的第一NOC 118使用,且第一交换机110可包含CTCPI交换机。CTCPI交换机可允许CTCPI分组例如在不被转换为另一分组格式的情况下从源存储器计算装置(例如第一存储器计算装置112)被传送到不同的目的地存储器计算装置(例如,在相同或其它节点上)。
在实例中,第一存储器计算装置112可包含内部主机处理器122。内部主机处理器112可经配置以例如使用内部PCIe主导模块126与第一NOC 118或第一存储器计算装置112的其它组件或模块通信,这可有助于消除将消耗时间及能量的物理层。在实例中,内部主机处理器122可基于RISC-V ISA处理器,且可使用第一物理层接口114在第一存储器计算装置112外部通信,例如与其它存储装置、联网或第一存储器计算装置112的其它外围装置通信。内部主机处理器122可控制第一存储器计算装置112,且可充当操作系统相关功能性的代理。内部主机处理器122可包含相对较少数目个处理核心(例如,2到4个核心)及主机存储器装置124(例如,包括DRAM模块)。
在实例中,内部主机处理器122可包含PCI根端口。当内部主机处理器122在使用中时,其根端口中的一者可连接到PCIe从属模块116。内部主机处理器112的根端口中的另一者可连接到第一物理层接口114,例如以提供与外部PCI外围装置的通信。当内部主机处理器122被停用时,PCIe从属模块116可耦合到第一物理层接口114,以允许外部主机处理器与第一NOC 118通信。在具有多个存储器计算装置的系统的实例中,第一存储器计算装置112可经配置以充当系统主机或控制器。在此实例中,内部主机处理器122可在使用中,且相应其它存储器计算装置中的内部主机处理器的其它例子可被停用。
内部主机处理器122可在第一存储器计算装置112的通电时经配置例如以允许主机初始化。在实例中,内部主机处理器122及其相关联数据路径(例如,包含第一物理层接口114、PCIe从属模块116等)可从输入引脚到第一存储器计算装置112进行配置。引脚中的一或多者可用于启用或停用内部主机处理器122,且相应地配置PCI(或其它)数据路径。
在实例中,第一NOC 118可经由缩放组构接口模块136及第二物理层接口138耦合到缩放组构106。缩放组构接口模块136或SIF可促进第一存储器计算装置112与装置空间(例如分区全局地址空间(PGAS))之间的通信。PGAS可经配置使得例如第一存储器计算装置112的特定存储器计算装置可例如使用加载/存储范例存取不同存储器计算装置上(例如,在相同或不同节点上)的存储器或其它资源。可使用各种可缩放组构技术,包含CTCPI、CPI、Gen-Z、PCI或通过CXL桥接的以太网。缩放组构106可经配置以支持各种分组格式。在实例中,缩放组构106支持无序分组通信,或支持有序分组,例如可使用路径标识符来跨越多个等效路径扩展带宽。缩放组构106通常可支持远程操作,例如远程存储器读取、写入及其它内置原子、远程存储器原子、远程存储器计算装置发送事件以及远程存储器计算装置调用及返回操作。
在实例中,第一NOC 118可耦合到一个或多个不同存储器模块,例如包含第一存储器装置128。第一存储器装置128可包含各种类型的存储器装置,例如LPDDR5或GDDR6等。在图1的实例中,第一NOC 118可经由可专用于特定存储器模块的存储器控制器130来协调与第一存储器装置128的通信。在实例中,存储器控制器130可包含存储器模块高速缓存及原子操作模块。原子操作模块可经配置以提供相对高处理量的原子运算符,例如包含整数及浮点运算符。原子操作模块可经配置以将其运算符应用于存储器模块高速缓存(例如,包括SRAM存储器侧高速缓存)内的数据,借此允许使用相同存储器位置的背靠背原子操作,且处理量降级最小。
存储器模块高速缓存可为频繁存取的存储器位置提供存储,例如不必重新存取第一存储器装置128。在实例中,存储器模块高速缓存可经配置以仅高速缓存存储器控制器130的特定例子的数据。在实例中,存储器控制器130包含经配置以与第一存储器装置128(例如包含DRAM装置)介接的DRAM控制器。存储器控制器130可提供存取调度及位错误管理等其它功能。
在实例中,第一NOC 118可耦合到混合线程处理器(HTP 140)、混合线程组构(HTF142)及主机接口及分派模块(HIF 120)。HIF 120可经配置以促进存取基于主机的命令请求队列及响应队列。在实例中,HIF 120可在HTP 140或HTF 142的处理器或计算元件上分派新的执行线程。在实例中,HIF 120可经配置以跨越HTP 140模块及HTF 142模块维持工作负载平衡。
混合线程处理器或HTP 140可包含加速器,其例如可基于RISC-V指令集。HTP 140可包含高线程、事件驱动处理器,其中线程可在单个指令旋转中执行,例如以维持高指令处理量。HTP 140包括相对较少的定制指令以支持低开销线程能力、事件发送/接收及共享存储器原子运算符。
混合线程组构或HTF 142可包含加速器,其例如可包含非冯·诺依曼的粗粒度、可重新配置处理器。HTF 142可针对高级语言操作及数据类型(例如,整数或浮点)进行优化。在实例中,HTF 142可支持数据流计算。HTF 142可经配置以例如在执行存储器绑定计算内核时使用第一存储器计算装置112上可用的大体上所有存储器带宽。
CNM系统102的HTP及HTF加速器可使用各种高级结构化编程语言来编程。例如,HTP及HTF加速器可使用C/C++来编程,例如使用LLVM编译器框架。HTP加速器可利用例如具有各种添加的定制指令集的开源编译器环境,所述定制指令集经配置以改进存储器存取效率、提供消息传递机制及管理事件等。在实例中,HTF加速器可经设计以使用高级编程语言来实现HTF 142的编程,且编译器可产生在HTF 142硬件上运行的模拟器配置文件或二进制文件。HTF 142可提供用于精确且简洁地表述算法的中级语言,同时隐藏HTF加速器自身的配置细节。在实例中,HTF加速器工具链可使用LLVM前端编译器及LLVM中间表示(IR)来与HTF加速器后端介接。
图2大体上说明根据实施例的存储器计算装置的存储器子系统200的实例。存储子系统200的实例包含控制器202、可编程原子单元208及第二NOC 206。控制器202可包含或使用可编程原子单元208来使用存储器装置204中的信息来实行操作。在实例中,存储子系统200包括来自图1的实例的第一存储器计算装置112的一部分,例如包含第一NOC 118或存储器控制器130的部分。
在图2的实例中,第二NOC 206耦合到控制器202,且控制器202可包含存储器控制模块210、本地高速缓存模块212及内置原子模块214。在实例中,内置原子模块214可经配置以处置相对简单的单循环整数原子。内置原子模块214可以与例如正常存储器读取或写入操作相同的处理量来执行原子。在实例中,原子存储器操作可包含将数据存储到存储器、执行原子存储器操作,且接着用来自存储器的加载数据进行响应的组合。
可提供本地高速缓存模块212(例如可包含SRAM高速缓存)以帮助减少重复存取的存储器位置的延时。在实例中,本地高速缓存模块212可为子存储器线存取提供读取缓冲器。本地高速缓存模块212对于具有相对较小或没有数据高速缓存的计算元件特别有益。在一些实例实施例中,本地高速缓存模块212是2千字节只读高速缓存。
存储器控制模块210(例如可包含DRAM控制器),可提供低级请求缓冲及调度,例如以提供对存储器装置204(例如可包含DRAM装置)的高效存取。在实例中,存储器装置204可包含或使用例如具有16Gb密度及64Gb/sec峰值带宽的GDDR6 DRAM装置。可类似地使用其它装置。
在实例中,可编程原子单元208可包括单循环或多循环运算符,其例如可经配置以执行整数加法或更复杂的多指令操作,例如布隆过滤器插入。在实例中,可编程原子单元208可经配置以执行加载及存储到存储器操作。可编程原子单元208可经配置以利用具有一组专用指令的RISC-V ISA,以促进与控制器202的交互以原子地执行用户定义的操作。
例如从节点上或节点外主机接收的可编程原子请求可经由第二NOC 206及控制器202路由到可编程原子单元208。在实例中,定制原子操作(例如,由可编程原子单元208实行)可与内置原子操作等同(例如,通过内置原子模块214实行),区别仅在于可编程原子操作可由用户而不是系统架构师定义或编程。在实例中,可编程原子请求分组可通过第二NOC206发送到控制器202,且控制器202可将请求识别为定制原子。然后,控制器202可将所识别请求转发到可编程原子单元208。
图3大体上说明根据实施例的用于与存储器控制器一起使用的可编程原子单元302的实例。在实例中,可编程原子单元302可包括或对应于来自图2的实例的可编程原子单元208。也就是说,图3说明可编程原子单元302(PAU)的实例中的组件,例如上文关于图2所述的组件(例如,在可编程原子单元208中),或关于图1所述的组件(例如,在存储器控制器130的原子操作模块中)。如在图3中所说明,可编程原子单元302包含PAU处理器或PAU核心306、PAU线程控制件304、指令SRAM 308、数据高速缓存310及用于与存储器控制器314介接的存储器接口312。在实例中,存储器控制器314包括来自图2的实例的控制器202的实例。
在实例中,PAU核心306是流水线式处理器,使得每时钟循环一起执行不同指令的多个阶段。PAU核心306可包含桶形多线程处理器,其具有线程控制件304电路系统,以在每一时钟循环中在不同寄存器堆(例如,含有当前处理状态的若干组寄存器)之间切换。这使得能够在当前执行的线程之间进行有效上下文切换。在实例中,PAU核心306支持八个线程,从而产生八个寄存器堆。在实例中,寄存器堆中的一些或全部未集成到PAU核心306中,而是驻留在本地数据高速缓存310或指令SRAM 308中。这通过消除用于此类存储器中的寄存器的传统触发器来降低PAU核心306中的电路复杂度。
本地PAU存储器可包含指令SRAM 308,其例如可包含用于各种原子的指令。指令包括支持各种应用程序加载的原子运算符的指令集。当原子运算符例如由应用小芯片请求时,对应于原子运算符的一组指令由PAU核心306执行。在实例中,指令SRAM 308可被分区以建立指令集。在此实例中,由请求过程请求的特定可编程原子运算符可通过分区号来识别可编程原子运算符。当可编程原子运算符向可编程原子单元302注册(例如,加载到可编程原子单元302)时,可建立分区号。用于可编程指令的其它元数据可存储于在可编程原子单元302本地的存储器中的存储器中(例如,在分区表中)。
在实例中,原子运算符操纵数据高速缓存310,当原子运算符的线程完成时,数据高速缓存310是大体上同步的(例如,经刷新)。因此,除从外部存储器(例如从存储器控制器314)进行初始加载之外,在可编程原子运算符线程的执行期间可减少大多数存储器操作的延时。
当执行线程试图发出存储器请求时,如果底层危险条件将阻止此请求,那么流水线式处理器(例如PAU核心306)可经历某种问题。此处,存储器请求是从存储器控制器314检索数据,无论是从存储器控制器314上的高速缓存还是从裸片外存储器。为了解决此问题,PAU核心306经配置以拒绝对线程的存储器请求。一般来说,PAU核心306或线程控制件304可包含用以启用流水线中的一或多个线程重新调度点的电路系统。此处,拒绝发生在流水线中超出这些线程重新调度点(例如,在这些线程重新调度点之后)的点处。在实例中,危险在超出重新调度点之处发生。此处,在存储器请求指令通过其中可进行存储器请求的流水线阶段之前的最后一个线程重新调度点之后,线程中的前一指令造成所述危险。
在实例中,为了拒绝存储器请求,PAU核心306经配置以确定(例如,检测)在存储器请求中指示的存储器上存在危险。此处,危险表示使得允许(例如,执行)存储器请求将导致线程状态不一致的任何条件。在实例中,危险是飞行中存储器请求。此处,无论数据高速缓存310是否包含用于所请求存储器地址的数据,飞行中存储器请求的存在都使所述地址处的数据高速缓存310中的数据应该是什么不确定。因此,线程必须等待飞行中存储器请求完成以对当前数据进行操作。当存储器请求完成时,危险被清除。
在实例中,危险是数据高速缓存310中针对所请求存储器地址的脏高速缓存行。尽管脏高速缓存行通常指示高速缓存中的数据是当前的且此数据的存储器控制器版本不是当前的,但在不从高速缓存操作的线程指令上可能出现问题。此指令的实例使用存储器控制器314的内置原子运算符或其它单独硬件块。在存储器控制器的上下文中,内置原子运算符可与可编程原子单元302分离,且不能存取PAU内部的数据高速缓存310或指令SRAM 308。如果高速缓存行脏,那么在刷新数据高速缓存310以同步高速缓存及其它或裸片外存储器之前,内置原子运算符将不对最当前数据进行操作。存储器控制器的其它硬件块(例如加密块、编码器等)可发生此相同情况。
图4说明混合线程处理器(HTP)加速器或HTP加速器400的实例。根据实施例,HTP加速器400可包括存储器计算装置的一部分。在实例中,HTP加速器400可包含或包括来自图1的实例的HTP 140。HTP加速器400包含例如HTP核心402、指令高速缓存404、数据高速缓存406、转译块408、存储器接口410及线程控制器412。HTP加速器400可进一步包含分派接口414及NOC接口416,例如用于与NOC介接,例如来自图1的实例中的第一NOC 118、来自图2的实例的第二NOC 206或其它NOC。
在实例中,HTP加速器400包含基于RISC-V指令集的模块,且可包含相对较少数目个其它或额外定制指令,以支持低开销、能够线程化的混合线程(HT)语言。HTP加速器400可包含高线程化处理器核心、HTP核心402,在其中或借助于其,线程可在单个指令旋转中执行,例如以维持高指令处理量。在实例中,当线程等待其它挂起事件完成时,可暂停线程。这可允许在相关工作上高效地使用计算资源,而不是进行轮询。在实例中,多线程屏障同步可使用高效HTP到HTP及HTP到/来自主机发消息,其例如可允许数千个线程初始化或唤醒,例如,几十个时钟循环。
在实例中,分派接口414可包括HTP加速器400的功能块以用于处置基于硬件的线程管理。也就是说,分派接口414可管理向HTP核心402或其它加速器分派工作。然而,非HTP加速器通常无法分派工作。在实例中,从主机分派的工作可使用驻留在例如主机主存储器(例如,基于DRAM的存储器)中的分派队列。另一方面,从HTP加速器400分派的工作可使用驻留于SRAM中的分派队列,例如在特定节点内的目标HTP加速器400的分派内。
在实例中,HTP核心402可包括一或多个核心,其代表线程执行指令。也就是说,HTP核心402可包含指令处理块。HTP核心402可进一步包含或可耦合到线程控制器412。线程控制器412可为HTP核心402内的每一活动线程提供线程控制及状态。数据高速缓存406可包含用于主机处理器(例如,用于本地及远程存储器计算装置,包含用于HTP核心402)的高速缓存,且指令高速缓存404可包含用于由HTP核心402使用的高速缓存。在实例中,数据高速缓存406可经配置用于读取及写入操作,且指令高速缓存404可经配置用于只读操作。
在实例中,数据高速缓存406是每硬件线程提供的小高速缓存。数据高速缓存406可临时存储数据用于由所属线程使用。数据高速缓存406可由HTP加速器400中的硬件或软件管理。例如,硬件可经配置以根据需要自动分配或逐出行,这是因为加载及存储操作由HTP核心402执行。软件(例如使用RISC-V指令)可确定应高速缓存哪些存储器存取,以及何时应使行无效或将其写回到其它存储器位置。
HTP加速器400上的数据高速缓存具有各种益处,包含使更大存取对存储器控制器更高效,从而允许执行线程避免停滞。然而,存在使用高速缓存导致低效率的情况。实例包含其中数据仅被存取一次且导致高速缓存行的抖动的存取。为了帮助解决此问题,HTP加速器400可使用一组定制加载指令来强制加载指令检查高速缓存命中,且在高速缓存未命中时为所请求操作数发出存储器请求,且不将所获得数据放在数据高速缓存406中。HTP加速器400因此包含各种不同类型的加载指令,包含非高速缓存及高速缓存行加载。如果高速缓存中存在脏数据,那么非高速缓存加载指令使用高速缓存数据。非高速缓存加载指令忽略高速缓存中的干净数据,且不将所存取数据写入到数据高速缓存。对于高速缓存行加载指令,完整数据高速缓存行(例如,包括64个字节)可从存储器加载到数据高速缓存406中,且可将被寻址存储器加载到指定寄存器中。如果干净或脏数据在数据高速缓存406中,那么这些加载可使用高速缓存数据。如果所参考存储器位置不在数据高速缓存406中,那么可从存储器存取整个高速缓存行。当正在参考循序存储器位置(例如存储器复制操作)时,使用高速缓存行加载指令可减少高速缓存未命中,但如果不使用所参考存储器数据,那么也可在NOC接口416处浪费存储器及带宽。
在实例中,HTP加速器400包含非高速缓存的定制存储指令。非高速缓存的存储指令可帮助避免用未循序写入存储器的写入数据来抖动数据高速缓存406。
在实例中,HTP加速器400进一步包含转译块408。转译块408可包含用于存储器计算装置的本地存储器的虚拟到物理转译块。例如,例如在HTP核心402中的主机处理器可执行加载或存储指令,且所述指令可产生虚拟地址。虚拟地址可例如使用来自转译块408的转译表被转译为主机处理器的物理地址。例如,存储器接口410可包含HTP核心402与NOC接口416之间的接口。
图5说明根据实施例的存储器计算装置的混合线程组构(HTF)或HTF 500的表示的实例。在实例中,HTF 500可包含或包括来自图1的实例的HTF 142。HTF 500是粗粒度、可重新配置的计算组构,其可针对高级语言操作数类型及运算符进行优化(例如,使用C/C++或其它高级语言)。在实例中,HTF 500可包含可配置的n位宽(例如,512位宽)数据路径,其互连强化的单指令多数据(SIMD)算术单元。
在实例中,HTF 500包括HTF集群502,其包含多个HTF片块,包含实例片块504或片块N。每一HTF片块可包含具有本地存储器及算术函数的一或多个计算元件。例如,每一片块可包含支持整数及浮点运算的计算流水线。在实例中,数据路径、计算元件及其它基础设施可实施为强化IP以提供最大性能,同时最小化功耗及重新配置时间。
在图5的实例中,包括HTF集群502的片块被线性布置,且集群中的每一片块可耦合到HTF集群502中的一个或多个其它片块。在图5的实例中,实例片块504或片块N经由标记为SF IN N-2的端口耦合到四个其它片块,包含耦合到基本片块510(例如,片块N-2),经由标记为SF IN N-1的端口耦合到邻近片块512(例如,片块N-1),且经由标记为SF IN N+1的端口耦合到片块N+1,且经由标记为SF IN N+2的端口耦合到片块N+2。实例片块504可经由相应输出端口耦合到相同或其它片块,所述输出端口例如标记为SF OUT N-1、SF OUT N-2、SFOUT N+1及SF OUT N+2的输出端口。在此实例中,各种片块的名称的有序列表是片块位置的概念性指示。在其它实例中,包括HTF集群502的片块可以栅格或其它配置进行布置,其中每一片块类似地耦合到其在栅格中的最近邻居中的一或若干者。在集群的边缘处提供的片块可任选地具有到相邻片块的较少连接。例如,图5的实例中的片块N-2或基本片块510可仅耦合到邻近片块512(片块N-1)及实例片块504(片块N)。可类似地使用较少或额外片块间连接。
HTF集群502可进一步包含存储器接口模块,包含第一存储器接口模块506。存储器接口模块可将HTF集群502耦合到NOC,例如第一NOC 118。在实例中,存储器接口模块可允许集群内的片块向例如在系统中的相同或不同节点中的存储器计算系统中的其它位置进行请求。也就是说,HTF 500的表示可包括可跨越多个节点分布的较大组构的一部分,例如在节点中的每一者处具有一或多个HTF片块或HTF集群。可在较大组构的上下文内的片块或节点之间进行请求。
在图5的实例中,使用同步组构(SF)耦合HTF集群502中的片块。同步组构可在HTF集群502中的特定片块与其相邻片块之间提供通信,如上文论述。每一HTF集群502可进一步包含异步组构(AF),其可在例如集群中的片块、集群中的存储器接口及集群中的分派接口508当中提供通信。
在实例中,同步组构可交换包含数据及控制信息的消息。控制信息可尤其包含指令RAM地址信息或线程标识符。控制信息可用于设置数据路径,且可选择数据消息字段作为路径的源。一般来说,可更早地提供或接收控制字段,使得其可用于配置数据路径。例如,为了帮助最小化通过片块中的同步域流水线的任何延迟,控制信息可比数据字段早几个时钟循环到达片块。可提供各种寄存器来帮助协调流水线中的数据流时序。
在实例中,HTF集群502中的每一片块可包含多个存储器。每一存储器可具有与数据路径相同的宽度(例如,512位),且可具有指定深度,例如在512到1024个元素的范围内。片块存储器可用于存储支持数据路径操作的数据。例如,所存储数据可包含作为内核的集群配置的部分加载的常量,或者可包含作为数据流的部分计算的变量。在实例中,片块存储器可作为来自另一同步域的数据传送从异步组构写入,或者可包含例如由另一同步域启动的加载操作的结果。可经由同步域中的同步数据路径指令执行来读取片块存储器。
在实例中,HTF集群502中的每一片块可具有专用指令RAM(INST RAM)。在具有十六个片块的HTF群集502及具有六十四个条目的指令RAM例子的实例中,集群可允许用多达1024个乘法移位及/或ALU操作来映射算法。各种片块可任选性地例如使用同步组构一起流水线化,以允许以最小存储器存取进行数据流计算,借此最小化延时且降低功耗。在实例中,异步组构可允许存储器参考与计算并行进行,借此提供更高效的流式内核。在实例中,各种片块可包含对基于循环的构造的内置支持,且可支持嵌套循环内核。
同步组构可允许多个片块被流水线化,例如而不需要数据排队。例如,参与同步域的片块可例如充当单个流水线化数据路径。同步域的第一或基本片块(例如,图5的实例中的片块N-2)可通过流水线化片块启动工作的线程。基本片块可负责以预定义节奏开始工作,所述预定义节奏在本文中称为轮辐计数。例如,如果轮辐计数为3,那么基本片块可每隔三个时钟循环启动工作。
在实例中,同步域包括HTF集群502中的一组连接片块。线程的执行可从域的基本片块开始,且可经由同步组构从基本片块进展到同一域中的其它片块。基本片块可提供待为第一片块执行的指令。在默认情况下,第一片块可为其它连接片块提供相同指令以供执行。然而,在一些实例中,基本片块或后续片块可有条件地指定或使用替代指令。替代指令可通过使片块的数据路径产生布尔条件值来选择,且接着可使用布尔值在当前片块的指令集与替代指令之间进行选择。
异步组构可用于执行相对于同步域异步发生的操作。HTF集群502中的每一片块可包含到异步组构的接口。入站接口可包含例如FIFO缓冲器或队列(例如,AF IN QUEUE)以为不能立即处理的消息提供存储。类似地,异步组构的出站接口可包含FIFO缓冲器或队列(例如,AF OUT QUEUE)以为不能立即发送出的消息提供存储。
在实例中,异步组构中的消息可分类为数据消息或控制消息。数据消息可包含写入到片块存储器0(MEM_0)或存储器1(MEM_1)的SIMD宽度数据值。控制消息可经配置以控制线程创建、释放资源或发出外部存储器参考。
HTF集群502中的片块可为HTF执行各种计算操作。计算操作可通过配置片块内的数据路径来执行。在实例中,片块包含执行片块的计算操作的两个功能块:乘法及移位操作块(MS OP)及算术、逻辑及位操作块(ALB OP)。两个块可经配置以执行流水线化操作,例如乘法及加法或移位及加法等。
在实例中,系统中的存储器计算装置的每一例子可具有其运算符块(例如,MS OP及ALB OP)的完整支持指令集。在此情况下,可跨越系统中的所有装置实现二进制兼容性。然而,在一些实例中,维持一组基本功能性及任选指令集类可能是有帮助的,例如以满足各种设计折中,例如裸片大小。所述方法可类似于RISC-V指令集如何具有基本集及多个任选指令子集。
在实例中,实例块504可包含轮辐RAM。轮辐RAM可用于指定哪个输入(例如,来自四个SF片块输入及基本片块输入当中)是每一时钟循环的主输入。轮辐RAM读取地址输入可源自从零到轮辐计数减一计数的计数器。在实例中,可在不同片块上(例如在同一HTF集群502内)使用不同轮辐计数,以允许由内部循环使用的数个片或唯一片块例子确定特定应用程序或指令集的性能。在实例中,轮辐RAM可指定何时将同步输入写入到片块存储器,例如,何时使用特定片块指令的多个输入及何时输入中的一者先于其它输入到达。提前到达的输入可写入到片块存储器,且可在所有输入都可用时稍后被读取。在此实例中,片块存储器可作为FIFO存储器来存取,且FIFO读取及写入指针可存储在片块存储器中基于寄存器的存储器区或结构中。
图6A及图6B大体上说明可用于实施CNM系统102的一或多个方面的小芯片系统的实例。如上文类似提及,CNM系统102中的节点或CNM系统102中节点内的装置可包含基于小芯片的架构或近存储器计算(CNM)小芯片。封装存储器计算装置可包含例如一个、两个或四个CNM小芯片。小芯片可使用高带宽、低延时互连件来互连,例如使用CPI接口。一般来说,小芯片系统由集成在中介层上且在许多实例中通过一或多个所建立网络根据需要互连以提供具有所需功能性的系统的离散模块(每一“小芯片”)组成。中介层及所包含小芯片可封装在一起以促进与较大系统的其它组件的互连。每一小芯片可包含潜在地与离散电路组件组合的一或多个个别集成电路(IC)或“芯片”,且可耦合到相应衬底以促进附接到中介层。系统中的大多数或所有小芯片可个别地经配置用于通过所建立网络进行通信。
小芯片作为系统的个别模块的配置相异于在单个芯片上实施的此系统,所述单个芯片在一个衬底(例如,单个裸片)上含有相异装置块(例如,知识产权(IP)块),例如芯片上系统(SoC),或集成在印刷电路板(PCB)上的多个离散封装装置。一般来说,与离散封装装置相比,小芯片提供更好性能(例如,更低功耗、降低的延时等),且小芯片提供比单个裸片芯片更大的生产益处。这些生产益处可包含更高良率或减少的开发成本及时间。
小芯片系统可包含例如一或多个应用(或处理器)小芯片及一或多个支持小芯片。此处,应用程序与支持小芯片之间的区别只是参考小芯片系统的可能设计场景。因此,例如,仅通过实例的方式,合成视觉小芯片系统可包含用于产生合成视觉输出的应用小芯片以及支持小芯片,例如存储器控制器小芯片、传感器接口小芯片或通信小芯片。在典型用例中,合成视觉设计师可设计应用程序小芯片,且从其它方获得支持小芯片。因此,通过避免设计及生产体现在支持小芯片中的功能性来减少设计支出(例如,在时间或复杂性方面)。
小芯片还支持原本可能困难的IP块的紧密集成,例如使用不同处理技术或使用不同特征大小(或利用不同接触技术或间距)制造的IP块。因此,具有不同物理、电气或通信特性的多个IC或IC组合件,可以模块化方式组装以提供具有各种所需功能性的组合件。小芯片系统还可促进进行调适以适应小芯片系统将并入到其中的不同较大系统的需求。在实例中,IC或其它组合件可针对特定功能的功率、速度或热量发热进行优化—就像传感器可能发生那样—且可比尝试在单个裸片上如此做更容易地与其它装置集成。另外,通过减小裸片的总体大小,小芯片的良率往往高于更复杂的单裸片装置的良率。
图6A及图6B大体上说明根据实施例的小芯片系统的实例。图6A是安装在外围板604上的小芯片系统602的表示,外围板604可例如通过外围组件互连高速(PCIe)连接到更广泛的计算机系统。小芯片系统602包含封装衬底606、中介层608及四个小芯片、应用小芯片610、主机接口小芯片612、存储器控制器小芯片614及存储器装置小芯片616。其它系统可包含许多额外小芯片来提供额外功能性,如将从以下论述明白。小芯片系统602的封装说明为具有盖子或盖618,但可使用用于小芯片系统的其它封装技术及结构。图6B是为清晰起见标记小芯片系统中的组件的框图。
应用小芯片610被说明为包含小芯片系统NOC 620以支持用于小芯片间通信的小芯片网络622。在实例实施例中,小芯片系统NOC 620可包含在应用小芯片610上。在实例中,来自图1的实例的第一NOC 118可响应于所选择支持小芯片(例如,主机接口小芯片612、存储器控制器小芯片614及存储器装置小芯片616)来定义,借此使设计者能够为小芯片系统NOC 620选择适当数目个小芯片网络连接或交换机。在实例中,小芯片系统NOC 620可位于单独小芯片上,或位于中介层608内。在如本文论述的实例中,小芯片系统NOC 620实施小芯片协议接口(CPI)网络。
在实例中,小芯片系统602可包含或包括第一存储器计算节点104或第一存储器计算装置112的一部分。也就是说,第一存储器计算装置112的各种块或组件可包含可安装在外围板604、封装衬底606及中介层608上的小芯片。第一存储器计算装置112的接口组件通常可包括主机接口小芯片612,第一存储器计算装置112的存储器及存储器控制相关组件通常可包括存储器控制器小芯片614,第一存储器计算装置112的各种加速器及处理器组件通常可包括应用小芯片610或其例子,以此类推。
CPI接口(例如,可用于系统中的小芯片之间或当中的通信)是基于分组的网络,其支持虚拟通道以实现小芯片之间的灵活且高速交互。CPI实现从小芯片内网络到小芯片网络622的桥接。例如,高级可扩展接口(AXI)是用以设计芯片内通信的广泛使用的规范。然而,AXI规范涵盖各种物理设计选项,例如物理通道的数目、信号时序、功率等。在单个芯片中,通常选择这些选项来满足设计目标,例如功耗、速度等。然而,为了实现小芯片系统的灵活性,使用适配器(例如CPI)在可在各种小芯片中实施的各种AXI设计选项之间进行介接。通过启用物理通道到虚拟通道映射且用分组化协议封装基于时间的信令,CPI跨越小芯片网络622对小芯片内网络进行桥接。
CPI可使用各种不同的物理层来传输分组。物理层可包含简单的导电连接,或可包含驱动器以增大电压,或以其它方式促进在更长距离上传输信号。一个这样的物理层的实例可包含高级接口总线(AIB),其在各种实例中可在中介层608中实施。AIB使用具有转发时钟的源同步数据传送来传输及接收数据。分组关于所传输时钟以单数据速率(SDR)或双数据速率(DDR)跨越AIB传送。各种通道宽度由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通道以80个I/O单元(即,40个TX及40个RX)的增量经配置用于SDR模式,且以40个I/O单元的增量经配置用于DDR模式。CPI流式传输协议可在SDR或DDR操作模式中使用AIB通道。此处,在实例中,对于SDR及DDR模式两者,AIB通道以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信号)。在实例中,AIB通道从邻近于AUX通道的AIB通道开始以连续增加的顺序编号。邻近于AUX的AIB通道被定义为AIB通道零。
一般来说,个别小芯片上的CPI接口可包含序列化-反序列化(SERDES)硬件。SERDES互连件在需要具有低信号计数的高速信令的情况下表现良好。然而,SERDES可导致额外功耗及多路复用及解多路复用、错误检测或校正(例如,使用块级循环冗余校验(CRC))、链路级重试或前向纠错的更长延时。然而,当低延时或能耗是超短距离小芯片到小芯片互连件的主要关注点时,可利用具有允许以最小延时进行数据传送的时钟速率的并行接口。CPI包含将这些超短距离小芯片互连件中的延时及能耗两者最小化的元件。
对于流量控制,CPI采用基于信用的技术。接收方(例如应用小芯片610)向发送方(例如存储器控制器小芯片614)提供表示可用缓冲器的信用。在实例中,CPI接收方包含用于给定时间单位的传输的每一虚拟通道的缓冲器。因此,如果CPI接收方在时间上支持五个消息及单个虚拟通道,那么接收方具有布置在五个行中的五个缓冲器(例如,每一单位时间一行)。如果支持四个虚拟通道,那么接收方具有布置在五个行中的二十个缓冲器。每一缓冲器保持一个CPI分组的有效负载。
当发送方向接收方传输时,发送方基于传输使可用信用递减。一旦消耗接收方的所有信用,发送方就停止向接收方发送分组。这确保接收方始终具有可用缓冲器来存储传输。
在接收方处理所接收分组且释放缓冲器时,接收方将可用缓冲器空间传达回发送方。然后,此信用返回可由发送方使用来允许传输额外信息。
图6A的实例包含小芯片网格网络624,其使用直接小芯片到小芯片技术,而无需小芯片系统NOC 620。小芯片网状网络624可以CPI或另一小芯片到小芯片协议实施。小芯片网状网络624通常实现小芯片的流水线,其中一个小芯片用作流水线的接口,而流水线中的其它小芯片仅与其自身介接。
另外,专用装置接口,例如一或多个行业标准存储器接口(例如(举例来说)同步存储器接口,例如DDR5、DDR6),可用于将装置连接到小芯片。可通过所需接口(例如,PCIe接口)将小芯片系统或个别小芯片连接到外部装置(例如较大系统)。在实例中,此外部接口可通过主机接口小芯片612来实施,在所描绘实例中,主机接口小芯片612提供小芯片系统外部的PCIe接口。当行业中的惯例或标准已经集中于此类专用小芯片接口626时,通常采用此类接口。将存储器控制器小芯片614连接到动态随机存取存储器(DRAM)存储器装置小芯片616的双数据速率(DDR)接口的所说明实例就是这样的一个行业惯例。
在各种可能的支持小芯片中,存储器控制器小芯片614很可能存在于小芯片系统中,这是归因于存储几乎无处不在地用于计算机处理以及存储器装置的尖端技术。因此,使用其它厂商生产的存储器装置小芯片616及存储器控制器小芯片614使小芯片系统设计者能够得到由富有经验的生产商生产的稳健产品。一般来说,存储器控制器小芯片614提供用于读取、写入或擦除数据的存储器装置特定接口。通常,存储器控制器小芯片614可提供额外功能,例如错误检测、错误校正、维护操作或原子运算符执行。对于一些类型的存储器,维护操作往往特定于存储器装置小芯片616,例如NAND快闪或存储类存储器中的废弃项目收集、NAND快闪存储器中的温度调整(例如,交叉温度管理)。在实例中,维护操作可包含逻辑到物理(L2P)映射或管理,以在数据的物理表示与逻辑表示之间提供间接级别。在其它类型的存储器(例如DRAM)中,一些存储器操作(例如刷新)可在某些时间由主机处理器或存储器控制器控制,且在其它时间由DRAM存储器装置或由与一或多个DRAM装置相关联的逻辑(例如接口芯片(在实例中,缓冲器))来控制。
原子运算符是例如可由存储器控制器小芯片614执行的数据操纵。在其它小芯片系统中,原子运算符可由其它小芯片执行。例如,“增量”的原子运算符可由应用小芯片610在命令中指定,所述命令包含存储器地址且可能包含增量值。在接收到命令时,存储器控制器小芯片614从所指定存储器地址检索数字,按命令中指定的量递增所述数字,且存储结果。在成功完成后,存储器控制器小芯片614向应用小芯片610提供命令成功的指示。原子运算符避免跨越小芯片网状网络624传输数据,从而实现降低此类命令的延时执行。
原子运算符可分类为内置原子或可编程(例如,定制)原子。内置原子是在硬件中不变地实施的有限操作集。可编程原子是可在存储器控制器小芯片614的可编程原子单元(PAU)(例如,定制原子单元(CAU))上执行的小程序。
存储器装置小芯片616可为或包含易失性存储器装置或非易失性存储器的任一组合。易失性存储器装置的实例包含(但不限于)随机存取存储器(RAM)-例如DRAM)同步DRAM(SDRAM)、图形双数据速率类型6SDRAM(GDDR6 SDRAM)等。非易失性存储器装置的实例包含(但不限于)与非(NAND)型快闪存储器、存储类存储器(例如,相变存储器或基于忆阻器的技术)、铁电RAM(FeRAM)等。所说明实例包含作为小芯片的存储器装置小芯片616;然而,装置可驻留在别处,例如在外围板604上的不同封装中。对于许多应用,可提供多个存储器装置小芯片。在实例中,这些存储器装置小芯片可各自实施一种或多种存储技术,且可包含集成计算主机。在实例中,存储器小芯片可包含不同技术的多个堆叠存储器裸片,例如,与一或多个动态随机存取存储器(DRAM)装置一起堆叠或以其它方式与其连通的一或多个静态随机存取存储器(SRAM)装置。在实例中,存储器控制器小芯片614可用于协调小芯片系统602中的多个存储器小芯片之间的操作,例如,在一或多个级别的高速缓存存储装置中使用一或多个存储器小芯片,且使用一或多个额外存储器小芯片作为主存储器。小芯片系统602可包含多个存储器控制器小芯片614例子,其可用于为单独主机、处理器、传感器、网络等提供存储器控制功能性。例如在所说明系统中的小芯片架构通过更新的小芯片配置,在允许适应不同存储器存储技术及不同存储器接口方面提供益处,例如而不需要重新设计系统结构的其余部分。
图7大体上说明根据实施例的用于存储器计算装置的基于小芯片的实施方案的实例。实例包含具有四个近存储器计算或CNM、小芯片的实施方案,且CNM小芯片中的每一者可包含或包括来自图1的实例的第一存储器计算装置112或第一存储器计算节点104的部分。各个部分自身可包含或包括相应小芯片。基于小芯片的实施方案可包含或使用基于CPI的系统内通信,如上文在来自图6A及图6B的实例小芯片系统602中类似地论述那样。
图7的实例包含包括多个小芯片的第一CNM封装700。第一CNM封装700包含耦合到CNM NOC集线器710的第一小芯片702、第二小芯片704、第三小芯片706及第四小芯片708。第一到第四小芯片中的每一者可包括相同或大体上相同的组件或模块的例子。例如,小芯片可各自包含HTP加速器、HTF加速器及用于存取内部或外部存储器的存储器控制器的相应例子。
在图7的实例中,第一小芯片702包含耦合到CNM NOC集线器710的第一NOC集线器边缘714。第一CNM封装700中的其它小芯片类似地包含NOC集线器边缘或端点。NOC集线器边缘中的交换机促进经由CNM NOC集线器710进行小芯片内或小芯片内系统通信。
第一小芯片702可进一步包含一个或多个存储器控制器716。存储器控制器716可对应于与第一NOC集线器边缘714介接的相应不同NOC端点交换机。在实例中,存储器控制器716包括存储器控制器小芯片614或包括存储器控制器130,或包括存储器子系统200,或其它存储器计算实施方案。存储器控制器716可耦合到相应不同存储器装置,例如包含第一外部存储器模块712a或第二外部存储器模块712b。外部存储器模块可包含例如GDDR6存储器,其可由系统中的相应不同小芯片选择性地存取。
第一小芯片702可进一步包含第一HTP小芯片718及第二HTP小芯片720,其例如经由相应不同NOC端点交换机耦合到第一NOC集线器边缘714。HTP小芯片可对应于HTP加速器,例如来自图1的实例的HTP 140,或来自图4的实例的HTP加速器400。HTP小芯片可与HTF小芯片722通信。HTF小芯片722可对应于HTF加速器,例如来自图1的实例的HTF 142,或来自图5的实例的HTF 500。
CNM NOC集线器710可通过各种接口及交换机耦合到其它小芯片或其它CNM封装中的NOC集线器例子。例如,CNM NOC集线器710可通过第一CNM封装700上的多个不同NOC端点耦合到CPI接口。例如,多个不同NOC端点中的每一者可耦合到第一CNM封装700外部的不同节点。在实例中,CNM NOC集线器710可使用CTCPI或其它非CPI协议耦合到其它外围装置、节点或装置。例如,第一CNM封装700可包含PCIe缩放组构接口(PCIE/SFI)或CXL接口(CXL),其经配置以将第一CNM封装700与其它装置介接。在实例中,第一CNM封装700使用各种CPI、PCIe、CXL或其它组构耦合到的装置可构成公共全局地址空间。
在图7的实例中,第一CNM封装700包含主机接口724(HIF)及主机处理器(R5)。主机接口724可对应于例如来自图1的实例的HIF 120。主机处理器或R5,可对应于来自图1的实例的内部主机处理器122。主机接口724可包含用于将第一CNM封装700耦合到其它外部装置或系统的PCI接口。在实例中,可通过主机接口724在第一CNM封装700上或第一CNM封装700内的片块集群上启动工作。例如,主机接口724可经配置以命令个别HTF片块集群(例如,在第一CNM封装700中的各种小芯片当中)进入及退出电源/时钟门模式。
图8说明根据实施例的存储器计算装置的实例平铺。在图8中,经平铺小芯片实例800包含小芯片的不同近存储器计算集群的四个例子,其中集群耦合在一起。近存储器计算小芯片的每一例子自身可包含一或多个组成小芯片(例如,主机处理器小芯片、存储器装置小芯片、接口小芯片等等)。
经平铺小芯片实例800包含来自图7的实例的第一CNM封装700的例子作为其近存储器计算(CNM)集群中的一者或多者。例如,经平铺小芯片实例800可包含第一CNM集群802,其包含第一小芯片810(例如,对应于第一小芯片702)、第二小芯片812(例如,对应于第二小芯片704)、第三小芯片814(例如,对应于第三小芯片706)及第四小芯片816(例如,对应于第四小芯片708)。第一CNM集群802中的小芯片可耦合到公共NOC集线器,其又可耦合到邻近集群或若干集群中(例如,在第二CNM集群804或第四CNM集群808中)的NOC集线器。
在图8的实例中,经平铺小芯片实例800包含第一CNM集群802、第二CNM集群804、第三CNM集群806及第四CNM集群808。可在公共地址空间中配置各种不同CNM小芯片,使得小芯片可跨越不同片块分配及共享资源。在实例中,集群中的小芯片可彼此通信。例如,第一CNM集群802可经由小芯片间CPI接口818通信地耦合到第二CNM集群804,且第一CNM集群802可经由另一或相同CPI接口通信地耦合至第四CNM集群808。第二CNM集群804可经由相同或其它CPI接口等通信地耦合到第三CNM集群806,以此类推。
在实例中,经平铺小芯片实例800中的近存储器计算小芯片中的一者可包含主机接口(例如,对应于来自图7的实例的主机接口724),其负责跨越经平铺小芯片实例800的工作负载平衡。主机接口可促进例如从经平铺小芯片实例800的外部对基于主机的命令请求队列及响应队列的存取。主机接口可使用混合线程处理器及经平铺小芯片实例800中的近存储器计算小芯片中的一或多者中的混合线程组构来分派新的执行线程。
图9是适于在存储器系统内执行内插的实例存储器系统910的框图900。存储器系统910包含存储器控制器130及存储器装置128,所述两者也在图1中展示。存储器控制器130经配置以处理经由总线从主机920接收的主机命令925。处理主机命令925可包含对存储器地址进行内插(操作950)、从高速缓存存取数据(操作960)及对样本进行内插(操作970)。如果数据在高速缓存(例如,图2的本地高速缓存模块212)中不可用,那么可从存储器装置128加载数据。
主机命令可为内插存取初始化命令。内插存取初始化命令识别存储在存储器装置128中的整数索引存储器阵列。例如,存储器阵列的第一元件的地址及存储器阵列中的数个元素可包含在经内插存取初始化指令中。元素的地址及数目可存储在本地高速缓存模块212中,或者存储在存储器控制器130中的另一存储器元件(例如,寄存器堆)中。
主机命令可为存取经内插数据的请求,包括到整数索引存储器阵列中的浮点索引。例如,数据阵列(例如,整数数据、浮点单精度实数数据、浮点双精度复数数据、向量数据或其任一合适组合)可具有十个元素,用整数值0到9进行索引。请求可为范围0到9中的浮点索引的值。为了说明,可接收1.7的浮点索引。
在操作950中,存储器控制器130确定存储器装置128内的待存取以处置请求的地址或若干地址。如果索引不等于用于存储阵列的索引中的一者,那么标识两个邻近索引(及其对应地址)。例如,如果阵列的基地址是0x1000,每一元素的大小是8个字节,且索引是1.7,那么两个邻近地址是0x1008及0x1010。如本文所使用,前缀0x指示后面的数字是以十六进制表示法。
从本地高速缓存模块212检索来自所识别地址的数据值(操作960)。在本地高速缓存模块212尚未存储所述值的情况下(例如,在高速缓存未命中的情况下),从图1的存储器装置128或图2的存储器装置204读取来自两个地址的数据,且将其存储在本地高速缓存模块212中。
在操作970中,存储器控制器130对所请求样本进行内插。例如,如果索引1的值为20,且索引2的值为30,那么索引1.7的内插值为27。可使用下文的伪代码找到内插值:
在上文实例中,numElements及dataP0参数由初始化命令定义,bin是与经内插读取请求一起提供的索引,且sample是内插的输出结果。linearInterpolateFloat函数确定双值阵列的经内插浮动输出值,分别由样本及dataP0的类型指示。使用内插产生的值可能不如存储在阵列中的所测量值准确。因此,降低输出值的精度可在计算准确几乎没有降低的情况下节省存储器带宽及存储空间。linearInterpolateFloat函数对浮点索引执行边界检查(在将其转换为整数bin_floor之后),以避免存取阵列外部的数据值。如果边界检查失败,那么提供零值。因此,调用存储器控制器130上的线性内插函数的处理元件在调用线性内插函数之前不需要执行其自身的边界检查,以避免无效存储器存取的可能性。
通过确定第一值(dataP0[bin_floor])的第一权重(w)及第二值(dataP0[bin_floor+1])的第二权重(1.0f-w,其中“f”后缀指示1.0被视为单精度浮点值)来执行线性内插。将两个值乘以其相应权重,且将结果相加以给出线性内插值。
还可使用下文的伪代码对复值执行线性内插:
linearInterpolateComplex函数类似于linearInterpolateReal函数,但阵列及输出值是复数数据类型而不是实数。由于复数可被认为是长度为二的向量,因此可看出,上文方法可经扩展以提供任意长度的向量(例如,三维、四维、十维或一百维)的线性内插。complex_float数据类型是单精度复数(例如,包括各自使用32位存储的两个浮点数)。complex_double数据类型是双精度复数(例如,包括各自使用64位存储的两个双精度浮点数)。
在一些实例实施例中,经内插的数据存储在二维阵列中。对经内插数据的请求可包含两个维度中的一者(或对N维阵列的N-1维度)的整数索引及到剩余维度中的浮点索引。下文给出此情况的伪代码。
在一些实例实施例中,提供pIdx作为初始化命令的部分。在其它实例实施例中,提供pIdx作为内插请求的部分。二维数据存储在sConsts2中(作为初始化命令的部分提供)。被内插的维度的大小存储在sConts1->numElements中。在一些实例实施例中,输入索引(bin,在上文的实例中)使用与到阵列中的整数索引不同的范围。在这些实施例中,可在计算权重之后及存取两个数据值之前转换索引。例如,如果输入索引在范围0到1中,那么行
bin_floor*=sConsts1->dataElements–1;
可被添加,将bin_floor转换为数据元素的数目的范围。作为另一实例,如果输入索引在范围-size/2到size/2中,那么行
bin_floor+=sConsts1->dataElements>>2;
可被添加,将bin_floor向上移位内插阵列中数据元素的数目的一半,从而导致范围为从0到大小。还考虑输入索引的其它变换。
图10是展示在一些实例实施例中的包括在由单个计算单元处理的一组SAR脉冲上方的数个图像像素的支柱1020的框图1000。体积1010包括针对一区域中的每一像素的数个脉冲。区域的大小及脉冲的数目在不同的实施方案中不同,但在图10的实例中,发射一千个SAR脉冲。在400×400像素的二维区域中,针对160,000个数据点中的每一者处理来自这些SAR脉冲的反射。为了从SAR数据产生二维图像,根据SAR脉冲反射计算每一像素的值。
如本文所使用,术语“支柱”是指由所得图像及数个脉冲的区域界定的SAR数据的一部分。在图10的实例中,支柱1020由一百个像素见方及一千个脉冲高的区域界定。体积1010可被分为十六个支柱,其各自与支柱1020具有相同大小。
框图1000展示经执行以产生单个图像的计算:1000个脉冲反射数据点中的每一者针对所得图像的160,000个像素中的每一者进行处理。相对于在其上安装SAR天线的移动平台的位置测量所得图像的x、y范围。运动方向上的范围可能不同于垂直维度上的范围。可使用连续或重叠脉冲反射数据来产生连续图像。例如,第一组1000个脉冲可用于产生第一图像。在收集额外200个脉冲的反射数据之后,新的脉冲反射数据可与第一组反射数据的最后800个脉冲组合,以创建第二组重叠的1000个脉冲以产生第二图像。
在一些实例实施例中,组合多个图像以产生单个较大图像。例如,如果移动平台在y方向上移动,那么可将邻近图像缝合在一起,以创建在x维度中具有预定大小且在y维度中具有取决于移动平台的速度及产生图像的持续时间的大小的图像。
图11是展示在一些实例实施例中的被指派到不同计算单元用于同时处理的工作单元1130A、1130D、1130E及1130F的框图1100。框图1100包含图10的体积1010及六个支柱1120A、1120B、1120C、1120D、1120E及1120F。不同计算单元可在图5的HTF 500的相同或不同片块510、512上。不同计算单元可为图7的HTP 720、图4的HTP核心402、HTP 140或其任一合适组合的不同例子。
如本文所使用,术语“工作单元”是指被指派到计算单元用于处理的一组计算。多个计算单元可并行操作,每一计算单元处理不同工作单元。在计算单元完成工作单元之后,另一工作单元可被指派到计算单元。工作单元1130A到1130F各自包括对脉冲数据的相同子集(例如,1000个脉冲反射中的脉冲反射600到800)及正在产生的图像的不同区的计算。为了完成图像的产生,处理图11中所展示的整个体积。工作单元的大小取决于计算单元的速度、计算单元可用的高速缓冲存储器、与计算单元的通信的延时及速度,以及其它因素。较大工作单元允许计算单元在没有来自控制计算单元的指令的情况下工作更长时间,但需要更大高速缓存来减少昂贵的存储器存取请求。较小工作单元被更频繁地指派,但充分利用较小量的高速缓冲存储器。
在具有六个计算单元的系统中,支柱1120A到1120F中的每一者可指派到不同计算单元。计算单元被周期性地同步。例如,每一计算单元可被指派工作单元1130A到1130F中的一者。如果所有工作单元未同时完成,那么较早完成的计算单元等待,直到所有工作单元完成。在已完成所有工作单元之后,将新的工作单元指派到所有计算单元用于并行执行。用于较早完成的计算单元的另外工作单元的延迟可通过控制处理器(例如,图1的HIF 120或图9的主机920)或通过(例如,经由图1的NOC 118)在计算单元当中传递的同步消息来实施。
在图11的实例中,每一工作单元包括支柱的整个区域及200个SAR脉冲反射。通过指派空间上连续的每一计算单元像素,当处理一个像素的脉冲时加载的数据值很可能在处理附近像素的脉冲时重复。因此,如果使用间接级别来存储脉冲数据,那么稍后对相同脉冲值的存取很可能导致高速缓存命中,从而减少从存储器发送到计算单元的数据。类似地,通过为每一计算单元指派一组时间上连续脉冲的工作单元,当处理像素的脉冲时加载的数据值很可能在处理相同(或附近)像素的附近脉冲时重复。
由于每一支柱1120A到1120F被指派到单个计算单元(如关于图10论述),在工作单元1130A到1130F完成之后,将第二工作单元指派到每一计算单元,每一计算单元的第二工作单元对应于同一支柱的不同部分。使用图10到11中所展示的垂直定向支柱,计算单元的第二工作单元将对应于与计算单元的第一工作单元相同的图像区域及多个脉冲的不同子集。通过选择邻近工作单元(例如,向上或向下移动支柱)而不是非邻近工作单元(例如,通过在支柱内随机选择脉冲范围),增加跨越工作单元的重复数据值(及因此高速缓存命中)的可能性。
图12说明根据一些实例实施例的用于在数据的两个维度上迭代的蛇形路径1200。典型二维迭代器从左到右及从上到下迭代数据。因此,就像在读取页面上的文本一样,正被存取的当前数据邻近于行内的先前数据,但在行之间存在大的不连续性。通过改用蛇形路径1200,避免不连续性。
上文的C样式伪代码展示实例,其中偶数行从左到右沿x轴迭代,而奇数行从右到左沿x轴迭代。因此,对process()函数的每一调用都是针对邻近于先前调用的像素的像素。在许多图像处理应用中,存在一定程度空间局部性,使得与两个非邻近像素相比较,两个邻近像素具有相同值的可能性更大。因此,通过使用蛇形路径1200而不是典型迭代路径,增加在连续process()调用中具有高速缓存命中的可能性,从而改进系统的性能。
尽管图12在两个空间维度中展示蛇形路径1200,但可以不同单位(例如,时间或频率)定义一个或两个维度。因此,虽然图10到11的支柱及工作单元经定向使得计算单元在移动到下一脉冲之前迭代脉冲的所有像素(例如,使用蛇形路径1200),但可更改定向,使得“支柱”水平放置,且在一个空间维度及多数个脉冲上执行蛇形迭代。
蛇形路径1200可在三个维度上方延伸。继续阅读文本的类比,每次完成一个页面时,读者从一个页面的右下角跳到下一页的左上角。为了避免空间不连续性,下一层的第一数据点应邻近于当前层的最后一个数据点。例如,在完成脉冲的蛇形路径1200之后,可从左下角开始处理邻近脉冲的数据。
/>
在上文C样式伪代码中,在每一行完成之后,沿x轴的迭代方向改变,且在每一区域完成后,沿y轴的迭代的方向改变,同时线性地移动通过体积。如可通过检验所见,此方法可扩展到四个或更多维度,且不限于二维或三维处理。
图13说明根据一些实例实施例的用于在数据的两个维度上迭代的蛇形路径1300。在SIMD系统中,可使用蛇形路径1300来代替蛇形路径1200。SIMD指令用单个指令来处理多个数据值。在图13的实例中,在单个SIMD指令中处理四个数据值,如在像素群组1310、1320、1330及1340中所展示。由于实例图像是每侧十个像素,因此使用两个SIMD指令来处理每一行的八个像素。在处理所有行之后,剩余像素被打包到SIMD命令中用于处理,虽然这些剩余像素可能不遵循蛇形图案。例如,图13中的二十个剩余像素可在各自四个数据值的五个SIMD命令中处理。尽管图12及13出于说明目的展示十乘十图像,但图像通常较大。当图像尺寸显著大于SIMD大小(例如,至少十倍大或至少一百倍大)时,减少未包含在蛇形图案中的像素的影响。
替代地,SIMD命令中的数据可跨越行打包。例如,在处理像素群组1320之后及在处理像素群组1330之前,可将前两行末尾处的四个像素放在单个SIMD命令中。尽管图13使用每SIMD命令四个值的实例,但可使用另一数目个值,例如每SIMD命令八个、十二个、十六个或三十二个值。
图14说明根据一些实例实施例的用于在数据的三个维度上迭代的蛇形路径。图14展示体积1410及两个支柱组1420A及1420B。支柱组1420A到1420B各自包括指派到六个不同计算单元的六个支柱。在每一支柱内,每次由每一计算单元执行一个工作单元。在所有计算单元已完成其被指派的工作单元之后,由每一计算单元开始下一工作单元。在支柱组1420A内展示工作单元组1430A及1440A。在支柱组1420B内展示工作单元组1430B及1440B。工作单元组1430A到1430B用于同一组脉冲,但用于图像的不同(及邻近)部分。工作单元组1440A到1440B用于彼此相同的一组脉冲,但用于与工作单元组1430A到1430B不同的脉冲。
为了增加在体积1410的支柱组之间转变时存取相同脉冲值的概率,遵循蛇形路径。因此,支柱组1420A的工作组在竖直方向上循序执行,在移动到下一支柱组(例如,支柱组1420B)之前处理支柱组1420A中每一支柱的所有脉冲数据。当支柱组1420B开始时,工作从支柱的底部开始,使得在新支柱的第一工作单元中处理的脉冲是在旧支柱的最后一个工作单元中所处理的相同脉冲。在每一支柱内,连续工作单元对应于图像的相同区域及若干组邻近脉冲数据。当在支柱组之间转变时,连续工作单元组(例如,工作单元组1440A到1440B)对应于图像的邻近区域及若干组相同脉冲数据。
可维持指派到在连续支柱组中的特定工作单元的支柱的相对位置。例如,如果由支柱组1420A中的图像的左下角界定的支柱被指派到第一计算单元,那么由支柱组1420B中的图像左下角界定的支柱也可被指派到所述第一计算单元。在这些实例实施例中,如果支柱组是矩形的,且在x及y维度上的大小都大于一个支柱,那么用于特定计算单元的连续支柱将不邻近。然而,下一支柱组中的计算单元中的一者的支柱(及组件工作单元)中的至少一者将邻近于上一支柱组中的计算单元中的另一者的支柱(及组件工作单元)中的至少一者。通过与从相同脉冲数据开始(例如,始终从每一支柱的顶部或底部开始)处理每一柱的方法相比,蛇形图案增加高速缓存命中且改进性能。
图15说明实例自主交通工具1500的框图,可借助于实例自主交通工具1500、在实例自主交通工具1500中或通过实例自主交通工具1500来实施本文论述的技术(例如,方法)中的任一或多者。自主交通工具1500(例如,自主汽车、自主卡车、无人机、飞机或航天器)包含控制器处理器1510、雷达天线1520、存储器1530、交通工具控制件1570及计算处理器1580。存储器1530存储脉冲数据1540、指令1550及图像数据1560。计算处理器1580包含或具有对高速缓冲存储器1590的高速存取。在此上下文中,“高速存取”是相对于计算处理器1580对存储器1530的存取速度来测量的,所述速度至少慢两倍。在一些实例实施例中,对高速缓冲存储器1590的存取时间少于对存储器1530存取时间的十分之一或少于对存储器1530存取时间的百分之一。高速缓冲存储器1590可为单独用于计算处理器1580中的每一者的每处理器高速缓冲存储器,或者是可由所有计算处理器1580存取的共享高速缓冲存储器。
自主交通工具1500使用雷达天线1520来收集脉冲数据1540。基于脉冲数据1540,计算处理器1580产生图像数据1560。基于图像数据1560,控制器处理器1510使用交通工具控制件1570来控制自主交通工具1500。控制器处理器1510及计算处理器1580执行指令1550来控制雷达天线1520,以处理脉冲数据1540以产生图像数据1560,且使用交通工具控制件1570来控制自主交通工具1500。
在一些实例实施例中,控制器处理器1510、计算处理器1580或两者都实施为组织在图5的HTF集群502中的图1的HIF 120或HTP 140的例子。同样地,存储器1530可实施为图1的存储器128,可存取图1的存储器控制器130或图5的存储器接口506。
图16是展示根据本公开的一些实施例的由电路在控制交通工具(例如,交通工具1500)时执行的方法的操作的流程图。通过实例但非限制的方式,方法1600可由包括图1到9中的一或多者的存储器系统的飞行无人机(也称为无人驾驶飞行器(UAV))或自主陆地交通工具(例如,汽车、坦克或牵引车拖车装备)执行。方法1600包含操作1610、1620、1630、1640及1650。
在操作1610中,交通工具使用SAR(例如,自主交通工具1500的雷达天线1520)来收集脉冲数据。例如,飞行无人机可携载布置在无人机主体下方的天线子系统。天线子系统产生雷达脉冲及所接收雷达反射(脉冲数据)。在一些实例实施例中,交通工具使用傅里叶变换来产生中间数据点。每一脉冲产生离散数据点。为了增加通过反投影产生的图像的分辨率,使用额外中间数据点。FFT为此目的产生合适准确度的中间数据点。在一些实例实施例中,CNM系统102的HTP 140执行操作1220。作为另一实例,图7的CNM封装700的HTP小芯片718及720(任选地组织为图8的经平铺小芯片实例800)执行操作1220。可对每一脉冲数据序列或单个脉冲数据序列的不同部分并行地执行中间数据点的产生。
所收集及所产生数据点存储在存储器中。例如,数据可存储在图1及9的存储器装置128、图7的存储器模块712a及712b、图8的小芯片集群802中的小芯片的存储器装置或其任一合适组合中。使用FFT内插而不是使用更多雷达脉冲允许使用更简单雷达天线,减少产生脉冲及/或检测反射及两者所耗费的能量。
在操作1620中,交通工具识别用于由多个计算处理器(例如,计算处理器1580)同时处理的一群组脉冲数据。在一些实例实施例中,计算处理器是包括图5的HTF集群502的片块。例如,图11展示被选择用于由六个计算处理器同时处理的脉冲数据600到800。
所述一群组脉冲数据的识别可为识别用于多个计算处理器中的每一计算处理器的工作单元的部分,每一工作单元对应于图像的不同区域,每一工作单元对应于多个脉冲的相同子集。在图11中展示实例工作单元1130A到1130F。
交通工具致使计算处理器通过并行处理工作单元产生用于图像的像素数据(操作1630)。在操作1640中,交通工具通过执行反投影来产生图像。可使用存储器控制器内的线性内插来产生额外中间数据点。使用线性内插而不是更高分辨率的FFT来产生额外中间数据点节省计算及存储器存储空间,这节省了能量及重量(由于不需要更大存储器装置)。在存储器控制器内而不是在不同处理元件中执行线性内插节省了能量及存储器带宽。
在操作1650中,基于图像来控制系统。例如,交通工具可提供所产生图像作为到训练机器学习模型或其它控制算法的输入。在一些实例实施例中,可在标记图像的训练集上训练机器学习模型学习如何控制交通工具。所得模型被加载到交通工具中,且用于产生交通工具的控制信号。例如,可训练模型避开障碍物,同时维持朝向预先编程目的地前进。因此,当检测到前方的障碍物时,模型(在控制器处理器1510、计算处理器1580或两者上执行)产生到交通工具控制器1570的信号,以向左、向右、向上或向下转向以避开障碍物,即使到目的地的路径长度增加也如此。
图17说明实例机器1700的框图,可借助于实例机器1700、在实例机器1700中或通过实例机器1700来实施本文论述的技术(例如,方法)中的任一或多者。如本文所描述,实例可包含机器1700中的逻辑或数个组件或机构或可由其操作。电路系统(例如,处理电路系统)是在包含硬件(例如,简单电路、门、逻辑等)的机器1700的有形实体中实施的电路的集合。电路系统成员资格可随着时间的推移而为灵活的。电路系统包含可在操作时单独或组合执行特定操作的成员。在实例中,电路系统的硬件可经不变地设计以实行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变连接物理组件(例如,执行单元、晶体管、简单电路等),其包含物理地修改(例如,磁性地、电性地、可移动地放置不变质量的粒子等)以对特定操作的指令进行编码的机器可读媒体。举例来说,在连接物理组件时,硬件组成的底层电性质可从绝缘体改变为导体,反之亦然。指令使嵌入式硬件(例如,执行单元或加载机制)能够经由可变连接在硬件中创建电路系统的成员,以在操作中时实行特定操作的部分。因此,在实例中,机器可读媒体元件是电路系统的部分,或者在装置操作时可通信地耦合到电路系统的其它组件。在实例中,物理组件中的任何者可在一个以上电路系统的一个以上成员中使用。举例来说,在操作时,执行单元可在一个时间点在第一电路系统的第一电路中使用,并且可在不同时间由第一电路系统中的第二电路或第二电路系统中的第三电路重新使用。这些组件关于机器1700的额外实例。
在替代实施例中,机器1700可作为独立装置操作,或者可连接(例如,联网)到其它机器。在联网部署中,机器1700可在服务器-客户端网络环境中以服务器机器、客户端机器或两者的身份进行操作。在实例中,机器1700可在对等(P2P)(或其它分布式)网络环境中充当对等机器。机器1700可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器械、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的指令(循序或以其它方式)的任何机器。此外,虽然仅说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文论述的方法中的一或多者,例如云计算、软件即服务(SaaS)、其它计算机集群配置。
机器1700(例如,计算机系统)可包含硬件处理器1702(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核或其任一组合)、主存储器1704、静态存储器1706(例如,用于固件、微码、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)等的存储器或存储装置)及大容量存储装置1708(例如,硬盘驱动器、磁带驱动器、快闪存储装置或其它块装置),其中的一些或全部可通过互联1730(例如总线)彼此通信。机器1700可进一步包含显示装置1710、字母数字输入装置1712(例如,键盘)及用户接口(UI)导航装置1714(例如,鼠标)。在实例中,显示装置1710、输入装置1712及UI导航装置1714可为触摸屏显示器。机器1700可额外地包含大容量存储装置1708(例如,驱动单元)、信号产生装置1718(例如,扬声器)、网络接口装置1720以及一或多个传感器1716,例如全球定位系统(GPS)、传感器、指南针、加速度计、SAR或其它传感器。机器1700可包含输出控制器1728,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以传达或控制一或多个外围装置(例如,打印机、读卡器等)。
硬件处理器1702、主存储器1704、静态存储器1706或大容量存储装置1708的寄存器可为或包含机器可读媒体1722,在机器可读媒体1722上存储一或多组数据结构或指令1724(例如,软件),其体现本文描述的技术或功能中的任一或多者或由其使用。指令1724还可在由机器1700对其执行期间完全或至少部分地驻留在硬件处理器1702、主存储器1704、静态存储器1706或大容量存储装置1708的寄存器中的任一者内。在实例中,硬件处理器1702、主存储器1704、静态存储器1706或大容量存储装置1708中的一者或任一组合可构成机器可读媒体1722。尽管机器可读存储媒体1722被说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令1724的单个媒体或多个媒体(例如,集中式或分布式数据库或相关联高速缓存及服务器)。
术语“机器可读媒体”可包含能够存储、编码或携载由机器1700执行并且致使机器1700执行本公开的技术中的任一或多者的指令或能够存储、编码或携载由此类指令使用或与此类指令相关联的数据结构的任一媒体。非限制性机器可读媒体实例可包含固态存储器、光学媒体、磁性媒体及信号(例如,射频信号、其它基于光子的信号、声音信号等)。在实例中,非暂时性机器可读媒体包括带有具有不变(例如,静止)质量的多个粒子的机器可读媒体,且因此是物质的组成。因此,非暂时性机器可读媒体是不包含暂时性传播信号的机器可读媒体。非暂时性机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))及闪存装置;磁盘,例如内部硬盘及可卸除磁盘;磁光盘;以及CD-ROM及DVD-ROM盘。
在实例中,存储在或以其它方式提供在机器可读媒体1722上的信息可代表指令1724,例如指令1724自身或可从其导出指令1724的格式。指令1724可从其导出的此格式可包含源代码、编码指令(例如,以压缩或加密的形式)、封装指令(例如拆分为多个封装)或类似者。机器可读媒体1722中代表指令1724的信息可通过将电路系统处理为指令来实施本文论述的操作中的任何者来处理。例如,从信息导出指令1724(例如,由处理电路处理)可包含:编译(例如,从源代码、目标代码等)、解译、加载、组织(例如,动态或静态链接)、编码、解码、加密、解密、打包、解包,或以其它方式将信息操纵到指令1724中。
在实例中,指令1724的导出可包含信息的汇编、编译或解译(例如,通过处理电路系统),以从由机器可读媒体1722提供的某种中间或预处理格式创建指令1724。当以多个部分提供时,可组合、解包及修改信息以创建指令1724。例如,信息可在一或若干远程服务器上的多个压缩源代码包(或目标代码或二进制可执行代码等)中。源代码包可在通过网络转接时加密,且在必要时解密、解压缩、组装(例如,链接),以及在本地机器处编译或解译(例如,编译或解译成库、独立可执行文件等),且由本地机器执行。
指令1724可进一步利用数种传送协议(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)中的任一种经由网络接口装置1720使用传输媒体通过通信网络1726传输或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络以及无线数据网络(例如,电气及电子工程师协会(IEEE)802.11系列标准,称为IEEE 802.15系列标准,称为/>)、IEEE 802.15.4系列标准、对等(P2P)网络等。在实例中,网络接口装置1720可包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线以连接到网络1726。在实例中,网络接口装置1720可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者进行无线通信。术语“传输媒体”应被认为包含能够存储、编码或携载由机器1700执行的指令的任何无形媒体,并且包含数字或模拟通信信号或其它无形媒体以促进此类软件的通信。传输媒体是机器可读媒体。
为更好地说明本文所描述的方法及设备,实例实施例的非限制性组作为数字识别的实例来阐述。
实例1是一种系统,其包括:天线,其从多个脉冲产生脉冲数据;存储器,其存储所述所产生脉冲数据;一或多个控制器处理器;多个计算处理器;及存储器,其存储指令,所述指令在由所述一或多个控制器处理器执行时致使所述一或多个控制器处理器执行包括以下的操作:在所述脉冲数据内,识别用于由所述多个计算处理器同时处理的一群组脉冲数据;致使所述计算处理器通过并行处理所述一群组脉冲数据产生用于图像的像素数据;从所述像素数据产生所述图像;以及使用所述所产生图像来控制所述系统。
在实例2中,实例1的标的物包含,其中用于由所述多个计算处理器同时处理的所述一群组脉冲数据的所述识别是识别用于所述多个计算处理器中的每一计算处理器的工作单元的部分,每一工作单元对应于所述一群组脉冲数据及所述图像的不同区域。
在实例3中,实例2的标的物包含,其中:用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;用于每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且所述操作进一步包括:确定所述计算处理器对所述第一工作单元的所述处理是完整的;在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及第二群组脉冲数据的所述第一工作单元相同的所述图像的区域,所述第二群组脉冲数据不同于所述第一群组脉冲数据;以及致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
在实例4中,实例3的标的物包含,其中:所述第二工作单元的所述第二群组脉冲数据邻近于所述第一工作单元的所述第一群组脉冲数据。
在实例5中,实例3到4的标的物包含,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据覆盖所述图像的蛇形图案。
在实例6中,实例2到5的标的物包含,其中:用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;用于每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且所述操作进一步包括:确定所述计算处理器对所述第一工作单元的所述处理是完整的;在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及所述第一群组脉冲数据的所述第一工作单元不同的所述图像的区域;以及致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
在实例7中,实例6的标的物包含,其中:对应于用于第一计算处理器的所述第一工作单元的所述区域邻近于对应于用于第二计算处理器的所述第二工作单元的所述区域。
在实例8中,实例6到7的标的物包含,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据在第一维度中由所述脉冲且在第二维度由所述图像的轴界定的二维平面中的蛇形图案。
在实例9中,实例1到8的标的物包含,其中所述天线是合成孔径雷达(SAR)天线。
在实例10中,实例1到9的标的物包含,其中所述天线是合成孔径激光雷达(SAL)天线。
在实例11中,实例1到10的标的物包含,其中所述多个计算处理器中的每一处理器与计算组构的相应节点相关联。
在实例12中,实例1到11的标的物包含,高速缓冲存储器,其具有比存储所述所产生脉冲数据的所述存储器更低的延时,所述高速缓冲存储器存储最近存取的脉冲数据,所述高速缓冲存储器可由所有所述计算处理器存取。
在实例13中,实例1到12的标的物包含,其中所述操作进一步包括:确定第一计算处理器已完成用于所述第一计算处理器的所述工作单元;确定第二计算处理器尚未完成用于所述第二计算处理器的所述工作单元;以及延迟用于所述第一计算处理器的另外工作单元,直到所述第二计算处理器已完成用于所述第二计算处理器的所述工作单元。
在实例14中,实例1到13的标的物包含,其中所述使用所述图像来控制所述系统包括提供所述图像作为到经训练机器学习模型的输入。
在实例15中,实例1到14的标的物包含,其中所述使用所述图像来控制所述系统包括使用所述图像来控制自主交通工具的移动。
在实例16中,实例15的标的物包含,其中所述自主交通工具是无人机。
实例17是一种存储指令的非暂时性机器可读媒体,所述指令在由系统执行时致使所述系统执行包括以下的操作:在脉冲数据内,识别用于由多个计算处理器同时处理的一群组脉冲数据;致使所述计算处理器通过并行处理所述一群组脉冲数据产生用于图像的像素数据;从所述像素数据产生所述图像;以及使用所述所产生图像来控制所述系统。
在实例18中,实例17的标的物包含,其中用于由所述多个计算处理器同时处理的所述一群组脉冲数据的所述识别是识别用于所述多个计算处理器中的每一计算处理器的工作单元的部分,每一工作单元对应于所述图像的不同区域及所述一群组脉冲数据。
在实例19中,实例18的标的物包含,其中:用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;用于每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且所述操作进一步包括:确定所述计算处理器对所述第一工作单元的所述处理是完整的;在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及第二群组脉冲数据的所述第一工作单元相同的所述图像的区域,所述第二群组脉冲数据不同于所述第一群组脉冲数据;以及致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
在实例20中,实例19的标的物包含,其中:所述第二工作单元的所述第二群组脉冲数据邻近于所述第一工作单元的所述第一群组脉冲数据。
在实例21中,实例19到20的标的物包含,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据覆盖所述图像的蛇形图案。
在实例22中,实例18到21的标的物包含,其中:用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;用于每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且所述操作进一步包括:确定所述计算处理器对所述第一工作单元的所述处理是完整的;在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及所述第一群组脉冲数据的所述第一工作单元不同的所述图像的区域;以及致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
在实例23中,实例22的标的物包含,其中:对应于用于第一计算处理器的所述第一工作单元的所述区域邻近于对应于用于第二计算处理器的所述第二工作单元的所述区域。
在实例24中,实例22到23的标的物包含,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据在第一维度中由所述脉冲数据且在第二维度由所述图像的轴界定的二维平面中的蛇形图案。
在实例25中,实例17到24的标的物包含,其中所述操作进一步包括:使用合成孔径雷达(SAR)天线来产生所述脉冲数据。
在实例26中,实例17到25的标的物包含,其中所述操作进一步包括:使用合成孔径激光雷达(SAL)天线来产生所述脉冲数据。
在实例27中,实例17到26的标的物包含,其中所述操作进一步包括:确定第一计算处理器已完成用于所述第一计算处理器的所述工作单元;确定第二计算处理器尚未完成用于所述第二计算处理器的所述工作单元;以及延迟用于所述第一计算处理器的另外工作单元,直到所述第二计算处理器已完成用于所述第二计算处理器的所述工作单元。
在实例28中,实例17到27的标的物包含,其中所述使用所述图像来控制所述系统包括提供所述图像作为到经训练机器学习模型的输入。
在实例29中,实例17到28的标的物包含,其中所述使用所述图像来控制所述系统包括使用所述图像来控制自主交通工具的移动。
在实例30中,实例29的标的物包含,其中所述自主交通工具是无人机。
实例31是一种方法,其包括:在脉冲数据内,识别用于由多个计算处理器同时处理的一群组脉冲数据;致使所述计算处理器通过并行处理所述一群组脉冲数据产生用于图像的像素数据;从所述像素数据产生所述图像;以及使用所述所产生图像来控制系统。
在实例32中,实例31的标的物包含,其中用于由所述多个计算处理器同时处理的所述一群组脉冲数据的所述识别是识别用于所述多个计算处理器中的每一计算处理器的工作单元的部分,每一工作单元对应于所述图像的不同区域及所述一群组脉冲数据。
在实例33中,实例32的标的物包含,其中:用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;用于每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且所述方法进一步包括:确定所述计算处理器对所述第一工作单元的所述处理是完整的;在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及第二群组脉冲数据的所述第一工作单元相同的所述图像的区域,所述第二群组脉冲数据不同于所述第一群组脉冲数据;以及致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
在实例34中,实例33的标的物包含,其中:所述第二工作单元的所述第二群组脉冲数据邻近于所述第一工作单元的所述第一群组脉冲数据。
在实例35中,实例33到34的标的物包含,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据覆盖所述图像的所述区域的蛇形图案。
在实例36中,实例33到35的标的物包含,其中:对应于用于第一计算处理器的所述第一工作单元的所述区域邻近于对应于用于第二计算处理器的所述第二工作单元的所述区域。
在实例37中,实例36的标的物包含,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据在第一维度中由所述脉冲数据且在第二维度由所述图像的轴界定的二维平面中的蛇形图案。
在实例38中,实例32到37的标的物包含,确定第一计算处理器已完成用于所述第一计算处理器的所述工作单元;确定第二计算处理器尚未完成用于所述第二计算处理器的所述工作单元;以及延迟用于所述第一计算处理器的另外工作单元,直到所述第二计算处理器已完成用于所述第二计算处理器的所述工作单元。
在实例39中,实例31到38的标的物包含,使用合成孔径雷达(SAR)天线来产生所述脉冲数据。
在实例40中,实例31到39的标的物包含,使用合成孔径激光雷达(SAL)天线来产生所述脉冲数据。
在实例41中,实例31到40的标的物包含,其中所述使用所述图像来控制所述系统包括提供所述图像作为到经训练机器学习模型的输入。
在实例42中,实例31到41的标的物包含,其中所述使用所述图像来控制所述系统包括使用所述图像来控制自主交通工具的移动。
在实例43中,实例42的标的物包含,其中所述自主交通工具是无人机。
实例44是包含指令的至少一个机器可读媒体,所述指令在由处理电路系统执行时致使所述处理电路系统执行操作以实施实例1到43中的任一者。
实例45是一种包括用以实施实例1到43中的任一者的构件的设备。
实例46是一种用以实施实例1到43中的任一者的系统。
实例47是一种用以实施实例1到43中的任一者的方法。
上文具体实施方式包含对附图的参考,附图形成具体实施方式的一部分。图式通过说明展示其中能够实践本发明的特定实施例。这些实施例在本文中还称为“实例”。此类实例能够包含除所展示或描述的元件以外的元件。然而,本发明者还预期其中仅提供所展示或描述的所述元件的实例。此外,本发明者还预期使用关于特定实例(或其一或多个方面)或关于本文中展示或描述的其它实例(或其一或多个方面)展示或描述的所述元件(或其一或多个方面)的任何组合或排列的实例。
在本文件中,独立于“至少一个”或“一或多个”的任何其它例子或使用,如专利文件中常见的术语“一(a)”或“一(an)”用以包含一个或多于一个。在本文件中,使用术语“或”来指代非排他性或,使得“A或B”可包含“A但非B”、“B但非A”及“A及B”,除非另有指示。在所附权利要求书中,使用术语“包含”及“其中”作为相应术语“包括”及“其中”的简明英语等效物。此外,在所附权利要求书中,术语“包含”及“包括”是开放式的,即,包含除在权利要求中的此术语之后列出的元件以外的元件的系统、装置、物品或过程仍被视为在所述权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”及“第三”等仅用作标签,且并不希望对其对象强加数字要求。
上文描述希望具说明性而非限制性。举例来说,上述所述的实例(或其一或多个方面)可彼此组合使用。在检视上文描述后,例如所属领域的一般技术人员可使用其它实施例。主张了解其并非用于解释或限制权利要求书的范围或含义。此外,在上文具体实施方式中,各种特征可集合在一起以简化本发明。此不应被解释为期望未主张的公开特征是任何权利要求的关键。而是,本发明标的物可能在于少于特定公开实施例的全部特征。因此,所附权利要求书在此并入具体实施方式中,其中每一权利要求自身作为单独实施例,且预期此类实施例可以各种组合或排列彼此组合。应参考所附权利要求书连同此类权利要求书所授权的等效物的全范围来确定本发明的范围。

Claims (43)

1.一种系统,其包括:
天线,其从多个脉冲产生脉冲数据;
存储器,其存储所述所产生脉冲数据;
一或多个控制器处理器;
多个计算处理器;及
存储器,其存储指令,所述指令在由所述一或多个控制器处理器执行时致使所述一或多个控制器处理器执行包括以下的操作:
在所述脉冲数据内,识别用于由所述多个计算处理器同时处理的一群组脉冲数据;
致使所述计算处理器通过并行处理所述一群组脉冲数据产生用于图像的像素数据;
从所述像素数据产生所述图像;以及
使用所述所产生图像来控制所述系统。
2.根据权利要求1所述的系统,其中用于由所述多个计算处理器同时处理的所述一群组脉冲数据的所述识别是识别用于所述多个计算处理器中的每一计算处理器的工作单元的部分,每一工作单元对应于所述一群组脉冲数据及所述图像的不同区域。
3.根据权利要求2所述的系统,其中:
用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;
每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且
所述操作进一步包括:
确定所述计算处理器对所述第一工作单元的所述处理是完整的;
在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及第二群组脉冲数据的所述第一工作单元相同的所述图像的区域,所述第二群组脉冲数据不同于所述第一群组脉冲数据;以及
致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
4.根据权利要求3所述的系统,其中:
所述第二工作单元的所述第二群组脉冲数据邻近于所述第一工作单元的所述第一群组脉冲数据。
5.根据权利要求3所述的系统,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据覆盖所述图像的蛇形图案。
6.根据权利要求2所述的系统,其中:
用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;
每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且
所述操作进一步包括:
确定所述计算处理器对所述第一工作单元的所述处理是完整的;
在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及所述第一群组脉冲数据的所述第一工作单元不同的所述图像的区域;以及
致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
7.根据权利要求6所述的系统,其中:
对应于用于第一计算处理器的所述第一工作单元的所述区域邻近于对应于用于第二计算处理器的所述第二工作单元的所述区域。
8.根据权利要求6所述的系统,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据在第一维度中由所述脉冲且在第二维度中由所述图像的轴界定的二维平面中的蛇形图案。
9.根据权利要求1所述的系统,其中所述天线是合成孔径雷达(SAR)天线。
10.根据权利要求1所述的系统,其中所述天线是合成孔径激光雷达(SAL)天线。
11.根据权利要求1所述的系统,其中所述多个计算处理器中的每一处理器与计算组构的相应节点相关联。
12.根据权利要求1所述的系统,其进一步包括:
高速缓冲存储器,其具有比存储所述所产生脉冲数据的所述存储器更低的延时,所述高速缓冲存储器存储最近存取的脉冲数据,所述高速缓冲存储器能够由所有所述计算处理器存取。
13.根据权利要求1所述的系统,其中所述操作进一步包括:
确定第一计算处理器已完成用于所述第一计算处理器的所述工作单元;
确定第二计算处理器尚未完成用于所述第二计算处理器的所述工作单元;以及
延迟用于所述第一计算处理器的另外工作单元,直到所述第二计算处理器已完成用于所述第二计算处理器的所述工作单元。
14.根据权利要求1所述的系统,其中所述使用所述图像来控制所述系统包括提供所述图像作为到经训练机器学习模型的输入。
15.根据权利要求1所述的系统,其中所述使用所述图像来控制所述系统包括使用所述图像来控制自主交通工具的移动。
16.根据权利要求15所述的系统,其中所述自主交通工具是无人机。
17.一种存储指令的非暂时性机器可读媒体,所述指令在由系统执行时致使所述系统执行包括以下的操作:
在脉冲数据内,识别用于由多个计算处理器同时处理的一群组脉冲数据;
致使所述计算处理器通过并行处理所述一群组脉冲数据产生用于图像的像素数据;
从所述像素数据产生所述图像;以及
使用所述所产生图像来控制所述系统。
18.根据权利要求17所述的非暂时性机器可读媒体,其中用于由所述多个计算处理器同时处理的所述一群组脉冲数据的所述识别是识别用于所述多个计算处理器中的每一计算处理器的工作单元的部分,每一工作单元对应于所述图像的不同区域及所述一群组脉冲数据。
19.根据权利要求18所述的非暂时性机器可读存储媒体,其中:
用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;
每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且
所述操作进一步包括:
确定所述计算处理器对所述第一工作单元的所述处理是完整的;
在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及第二群组脉冲数据的所述第一工作单元相同的所述图像的区域,所述第二群组脉冲数据不同于所述第一群组脉冲数据;以及
致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
20.根据权利要求19所述的非暂时性机器可读存储媒体,其中:
所述第二工作单元的所述第二群组脉冲数据邻近于所述第一工作单元的所述第一群组脉冲数据。
21.根据权利要求19所述的非暂时性机器可读存储媒体,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据覆盖所述图像的蛇形图案。
22.根据权利要求18所述的非暂时性机器可读存储媒体,其中:
用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;
用于每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且
所述操作进一步包括:
确定所述计算处理器对所述第一工作单元的所述处理是完整的;
在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及所述第一群组脉冲数据的所述第一工作单元不同的所述图像的区域;以及
致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
23.根据权利要求22所述的非暂时性机器可读存储媒体,其中:
对应于用于第一计算处理器的所述第一工作单元的所述区域邻近于对应于用于第二计算处理器的所述第二工作单元的所述区域。
24.根据权利要求22所述的非暂时性机器可读存储媒体,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据在第一维度中由所述脉冲数据且在第二维度中由所述图像的轴界定的二维平面中的蛇形图案。
25.根据权利要求17所述的非暂时性机器可读媒体,其中所述操作进一步包括:
使用合成孔径雷达(SAR)天线来产生所述脉冲数据。
26.根据权利要求17所述的非暂时性机器可读媒体,其中所述操作进一步包括:
使用合成孔径激光雷达(SAL)天线来产生所述脉冲数据。
27.根据权利要求17所述的非暂时性机器可读媒体,其中所述操作进一步包括:
确定第一计算处理器已完成用于所述第一计算处理器的所述工作单元;
确定第二计算处理器尚未完成用于所述第二计算处理器的所述工作单元;以及
延迟用于所述第一计算处理器的另外工作单元,直到所述第二计算处理器已完成用于所述第二计算处理器的所述工作单元。
28.根据权利要求17所述的非暂时性机器可读媒体,其中所述使用所述图像来控制所述系统包括提供所述图像作为到经训练机器学习模型的输入。
29.根据权利要求17所述的非暂时性机器可读媒体,其中所述使用所述图像来控制所述系统包括使用所述图像来控制自主交通工具的移动。
30.根据权利要求29所述的非暂时性机器可读媒体,其中所述自主交通工具是无人机。
31.一种方法,其包括:
在脉冲数据内,识别用于由多个计算处理器同时处理的一群组脉冲数据;
致使所述计算处理器通过并行处理所述一群组脉冲数据产生用于图像的像素数据;
从所述像素数据产生所述图像;以及
使用所述所产生图像来控制系统。
32.根据权利要求31所述的方法,其中用于由所述多个计算处理器同时处理的所述一群组脉冲数据的所述识别是识别用于所述多个计算处理器中的每一计算处理器的工作单元的部分,每一工作单元对应于所述图像的不同区域及所述一群组脉冲数据。
33.根据权利要求32所述的方法,其中:
用于每一计算处理器的所述工作单元是用于每一计算处理器的第一工作单元;
每一计算处理器的所述第一工作单元的所述一群组脉冲数据是第一群组脉冲数据;且
所述方法进一步包括:
确定所述计算处理器对所述第一工作单元的所述处理是完整的;
在所述脉冲数据内,识别用于所述多个计算处理器中的每一计算处理器的第二工作单元,用于计算处理器的每一第二工作单元对应于与用于所述计算处理器及第二群组脉冲数据的所述第一工作单元相同的所述图像的区域,所述第二群组脉冲数据不同于所述第一群组脉冲数据;以及
致使所述计算处理器通过并行处理所述第二工作单元产生用于所述图像的像素数据。
34.根据权利要求33所述的方法,其中:
所述第二工作单元的所述第二群组脉冲数据邻近于所述第一工作单元的所述第一群组脉冲数据。
35.根据权利要求33所述的方法,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据覆盖所述图像的所述区域的蛇形图案。
36.根据权利要求33所述的方法,其中:
对应于用于第一计算处理器的所述第一工作单元的所述区域邻近于对应于用于第二计算处理器的所述第二工作单元的所述区域。
37.根据权利要求36所述的方法,其中用于所述多个计算处理器的所述第二工作单元的所述识别是根据在第一维度中由所述脉冲数据且在第二维度由所述图像的轴界定的二维平面中的蛇形图案。
38.根据权利要求32所述的方法,其进一步包括:
确定第一计算处理器已完成用于所述第一计算处理器的所述工作单元;
确定第二计算处理器尚未完成用于所述第二计算处理器的所述工作单元;以及
延迟用于所述第一计算处理器的另外工作单元,直到所述第二计算处理器已完成用于所述第二计算处理器的所述工作单元。
39.根据权利要求31所述的方法,其进一步包括:
使用合成孔径雷达(SAR)天线来产生所述脉冲数据。
40.根据权利要求31所述的方法,其进一步包括:
使用合成孔径激光雷达(SAL)天线来产生所述脉冲数据。
41.根据权利要求31所述的方法,其中所述使用所述图像来控制所述系统包括提供所述图像作为到经训练机器学习模型的输入。
42.根据权利要求31所述的方法,其中所述使用所述图像来控制所述系统包括使用所述图像来控制自主交通工具的移动。
43.根据权利要求42所述的方法,其中所述自主交通工具是无人机。
CN202280032139.7A 2021-03-30 2022-01-26 增加合成孔径雷达的高速缓存命中 Pending CN117255987A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163168102P 2021-03-30 2021-03-30
US63/168,102 2021-03-30
US17/240,548 US11802957B2 (en) 2021-03-30 2021-04-26 Increasing cache hits for synthetic aperture radar
US17/240,548 2021-04-26
PCT/US2022/013902 WO2022211888A2 (en) 2021-03-30 2022-01-26 Increasing cache hits for synthetic aperture radar

Publications (1)

Publication Number Publication Date
CN117255987A true CN117255987A (zh) 2023-12-19

Family

ID=83450122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280032139.7A Pending CN117255987A (zh) 2021-03-30 2022-01-26 增加合成孔径雷达的高速缓存命中

Country Status (3)

Country Link
US (1) US11802957B2 (zh)
CN (1) CN117255987A (zh)
WO (1) WO2022211888A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11802957B2 (en) 2021-03-30 2023-10-31 Micron Technology, Inc. Increasing cache hits for synthetic aperture radar
CN116299463B (zh) * 2023-05-16 2023-08-08 四川天府新区北理工创新装备研究院 一种基于通用计算设备后端的小型sar成像系统及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6943724B1 (en) 2002-10-30 2005-09-13 Lockheed Martin Corporation Identification and tracking of moving objects in detected synthetic aperture imagery
US20120056780A1 (en) 2006-04-28 2012-03-08 Paul Antonik Method and apparatus for simultaneous synthetic aperture radar and moving target indication
US20090091492A1 (en) 2007-10-09 2009-04-09 The Mitre Corporation Detection and mitigation radio frequency memory (DRFM)-based interference in synthetic aperture radar (SAR) images
US8522000B2 (en) 2009-09-29 2013-08-27 Nvidia Corporation Trap handler architecture for a parallel processing unit
US11789152B2 (en) * 2017-11-21 2023-10-17 Arete Associates High range resolution light detection and ranging
GB2580304B (en) * 2018-11-20 2022-09-21 Imagination Tech Ltd GNSS receiver
US11428550B2 (en) * 2020-03-03 2022-08-30 Waymo Llc Sensor region of interest selection based on multisensor data
US11808578B2 (en) * 2020-05-29 2023-11-07 Aurora Flight Sciences Corporation Global positioning denied navigation
US11802957B2 (en) 2021-03-30 2023-10-31 Micron Technology, Inc. Increasing cache hits for synthetic aperture radar

Also Published As

Publication number Publication date
WO2022211888A2 (en) 2022-10-06
US20220317283A1 (en) 2022-10-06
US11802957B2 (en) 2023-10-31
WO2022211888A3 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
US11481343B1 (en) Transporting request types with different latencies
CN117255987A (zh) 增加合成孔径雷达的高速缓存命中
CN118043795A (zh) 用于粗粒度可重新配置架构的掩蔽
CN118043815A (zh) 调试数据流计算机架构
CN115145847A (zh) 处理器存储器接口中的内插加速
CN118043796A (zh) 存储器计算系统中的基于片块的结果缓冲
US11709796B2 (en) Data input/output operations during loop execution in a reconfigurable compute fabric
US20240086324A1 (en) High bandwidth gather cache
US20220413804A1 (en) Efficient complex multiply and accumulate
US11675713B2 (en) Avoiding deadlock with a fabric having multiple systems on chip
CN117795496A (zh) 可重新配置计算组构中的并行矩阵运算
CN117581200A (zh) 在分派期间从存储器加载数据
CN117546133A (zh) 缓解具有多个存储器控制器的系统上的存储器热点
US11698853B2 (en) Saturating local cache in memory-compute systems
US11860800B2 (en) Kernel mapping to nodes in compute fabric
US20240028526A1 (en) Methods and systems for requesting atomic operations in a computing system
US20240028390A1 (en) Methods and systems for communications between hardware components
CN117435548A (zh) 用于硬件组件之间的通信的方法和系统
CN115904223A (zh) 从拼片存储器的模板数据存取
WO2023022861A1 (en) Loop execution in a reconfigurable compute fabric
CN118043794A (zh) 粗粒度可重新配置的架构中的连接性
CN118076944A (zh) 可重新配置计算组构中的循环执行期间的数据存储
CN117632842A (zh) 粗粒度可配置阵列处理器中的上下文加载机制
CN115705167A (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