CN117321562A - 共享指数的有效计算 - Google Patents
共享指数的有效计算 Download PDFInfo
- Publication number
- CN117321562A CN117321562A CN202280029098.6A CN202280029098A CN117321562A CN 117321562 A CN117321562 A CN 117321562A CN 202280029098 A CN202280029098 A CN 202280029098A CN 117321562 A CN117321562 A CN 117321562A
- Authority
- CN
- China
- Prior art keywords
- bit
- vector
- vectors
- input
- bit vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000013598 vector Substances 0.000 claims abstract description 192
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 19
- 230000006835 compression Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 230000000295 complement effect Effects 0.000 description 10
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 230000010267 cellular communication Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010363 phase shift Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 101100024330 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MSB1 gene Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Nonlinear Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
各种示例实施例涉及数字的共享指数的计算。可以获得多个位向量。可以对多个位向量执行按位OR运算以获得辅助位向量。然后可以基于辅助位向量中具有等于1的值的最高有效位的位置,确定共享指数。然后可以基于共享指数,确定多个位向量的表示。公开了一种装置、方法和计算机程序。
Description
技术领域
各种示例实施例通常涉及计算机科学领域。特别地,一些示例实施例涉及数据通信设备中数字的数字表示。
背景技术
在各种计算设备例如(诸如例如移动电话)中,包括实数或复数的数据可以由固定数目的二进制数字(位)表示(例如使用浮点表示)。可以使用不同的压缩算法来减少用于存储或传输数据的内存或通信资源的量。
发明内容
提供本概述是为了以简化的形式介绍一些概念,这些概念将在下文的详细描述中被进一步描述。本概述不旨在识别所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护主题的范围。
示例实施例可以提高数字二进制表示的压缩效率。该益处可以通过独立权利要求的特征来实现。在从属权利要求、说明书和附图中提供了进一步的实施形式。
根据第一方面,一种装置可以包括:用于获得多个位向量的部件;用于对多个位向量执行按位OR运算以获得辅助位向量的部件;用于基于在辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示多个位向量的共享指数的部件;以及用于基于共享指数,确定多个位向量的表示的部件。
根据第一方面所述的一个示例实施例,该装置还可以包括用于对表示负数的位向量执行按位取反的部件。
根据第一方面所述的一个示例实施例,用于对表示负数的位向量执行按位取反的部件可以包括多个多路复用器,多个多路复用器被配置为:如果输入浮点位向量的最高有效位等于0,则输出输入位向量的非取反版本,并且如果输入浮点位向量的最高有效位等于1,则输出输入位向量的按位取反版本。
根据第一方面所述的一个示例实施例,多个位向量的长度可以是N,并且用于对多个位向量执行按位OR运算的部件可以包括宽度为N-1位的多个OR门。
根据第一方面所述的一个示例实施例,多个位向量可以表示多个调制符号的实部和/或虚部。
根据第一方面所述的一个示例实施例,多个调制符号可以与物理层资源块相关联。
根据第一方面所述的一个示例实施例,装置可以包括:至少一个处理器;以及至少一个存储器,其包括计算机程序代码;至少一个存储器和计算机程序代码被配置为与至少一个处理器一起,引起装置的执行。
根据第二方面,一种方法可以包括:获得多个位向量;对多个位向量执行按位OR运算以获得辅助位向量;基于在辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示多个位向量的共享指数;以及基于共享指数,确定针对多个位向量的表示。
根据第二方面所述的一个示例实施例,该方法还可以包括对表示负数的位向量执行按位取反。
根据第二方面所述的一个示例实施例,对表示负数的位向量执行按位取反可以包括:如果输入位向量的最高有效位等于0,则由多个多路复用器输出输入位向量的非取反版本,并且如果输入位向量的最高有效位等于1,则由多个多路复用器输出输入位向量的按位取反版本。
根据第二方面所述的一个示例实施例,多个位向量的长度可以是N,并且对多个位向量执行按位OR运算可以是基于宽度为N-1位的多个OR门。
根据第二方面所述的一个示例实施例,多个位向量可以表示多个调制符号的实部和/或虚部。
根据第二方面所述的一个示例实施例,多个调制符号可以与物理层资源块相关联。
根据第三方面,计算机程序可以包括用于使装置至少执行以下操作的指令,该操作包括:获得多个位向量;对多个位向量执行按位OR运算以获得辅助位向量;基于在辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示多个位向量的共享指数;以及基于共享指数,确定针对多个位向量的表示。计算机程序还可以包括用于使装置执行根据第二方面所述的方法的任何示例实施例的指令。
根据第四方面,一种装置可以包括:至少一个处理器;以及至少一个存储器,其包括计算机程序代码;至少一个存储器和计算机程序代码被配置为与至少一个处理器一起,使装置至少:获得多个位向量;对多个位向量执行按位OR运算以获得辅助位向量;基于在辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示多个位向量的共享指数;以及基于共享指数,确定针对多个位向量的表示。至少一个存储器和计算机程序代码被配置为与至少一个处理器一起,使装置执行根据第二方面所述的方法的任何示例实施例。
根据第五方面,该装置可以包括电路。该电路被配置为:获得多个位向量;对多个位向量执行按位OR运算以获得辅助位向量;基于在辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示多个位向量的共享指数;以及基于共享指数,确定多个位向量的表示。电路还可以被配置为执行根据第二方面所述的方法的任何示例实施例。
任何示例实施例都可以与一个或多个其他示例实施例相结合。许多伴随的特征将更容易被理解,因为它们通过参考结合附图考虑的以下详细描述而变得更好地理解。
附图说明
被包括以提供对示例性实施方式的进一步理解并且构成本说明书的一部分的附图示出了示例性实施方式,并且与说明书一起帮助理解示例性实施方式。在附图中:
图1图示了根据一个示例实施例的通信网络的一个示例;
图2图示了根据一个示例实施例的包括资源元素的资源块的一个示例;
图3图示了被配置为实践一个或多个示例实施例的装置的一个示例;
图4图示了根据一个示例实施例的基于最大值和最小值的位向量压缩算法的一个示例;
图5图示了根据一个示例实施例的用于使用二进制补码表示法来确定整数集合中的最大有符号数的指数的电路的一个示例;
图6图示了根据一个示例实施例的基于按位OR运算的浮点压缩算法的一个示例;
图7图示了根据一个示例实施例的多路复用器电路的一个示例;
图8图示了根据一个示例实施例的用于基于按位OR运算,确定用于表示正数和负数集合的最小位数的电路的一个示例;
图9图示了根据一个示例实施例的用于共享指数计算的方法的一个示例;
相似的附图标记被用于指定附图中的相似部件。
具体实施方式
现在将详细参考示例实施例,其示例在附图中示出。以下结合附图提供的详细描述旨在作为对本示例的描述,而不是旨在表示可以构造或利用本示例的唯一形式。描述阐述了示例的功能以及构建和操作示例的步骤顺序。然而,相同或等效的功能和序列可以通过不同的示例来实现。
浮点运算使得能够通过固定位数来有效地表示大范围的数字。在浮点表示中,小数点被允许在要表示的数字(值)的浮点表示的所谓有效位(尾数、系数)内浮动。小数点的位置可以由浮点表示的指数分量来指示。为了针对值集合(例如向量、块或值阵列)找到合适的公共类型的浮点表示,可以确定该组集合之间的共享(共同)指数。向量在本文中被用作值集合的一个示例。因此,向量可以包括多个浮点位向量。共享指数可以减少所需的内存空间,因为不需要针对每个浮点数单独存储指数。
计算共享指数可以是基于在输入向量的值中找到最大值和最小值的。这些值可以是实数,也可以是复数。在复数的情况下,实数部分和虚数部分可以分开处理。此外,最大绝对值可以被用于计算在没有溢出的情况下表示向量中的值所需的最小位数。然后可以使用该信息来移位和压缩向量值。
本公开的示例实施例可以通过降低确定共享指数的复杂性来提高浮点压缩的效率。对输入IQ样本块(同相和正交样本)进行按位OR运算,可选地对负值进行按位取反,可以被用作寻找最小值和最大值、计算最小值的绝对值并将其与最大值进行比较的优化备选方案。相反,按位OR的输出的最高有效位等于1(MSB1)(例如,最左“1”)的位置可以被用于计算共享指数。最高有效“1”的位置提供与以上基于最小值/最大值的方法相同的结果。从此点起,块浮点的计算可以针对两种方法以类似的方式继续。这种计算原始指数的基于OR树的方法可以显著降低计算复杂度,引起显著的延迟、面积和功率增益。
根据一个示例实施例,可以获得多个位向量。可以基于由位向量共享的单个指数,确定这些位向量的压缩表示。可以对多个位向量执行按位OR运算以获得辅助位向量。之后可以基于在辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示多个位向量的共享指数。然后可以基于共享指数,确定多个位向量的表示。如果位向量是二进制补码表示,则该装置可以在确定如上的共享指数之前按位对表示负数的位向量取反。
图1示出了根据一个示例实施例的通信网络的一个示例。通信网络100可以包括一个或多个核心网络元件(例如接入和移动管理功能(AMF)和/或用户平面功能(UPF)130),一个或多个由gNB 120表示的基站。通信网络100还可以包括一个或多个设备,其也可以被称为用户节点或用户设备(UE)。UE 110可以经由(多个)无线电信道与一个或多个基站进行通信。UE 110和(多个)gNB 120之间的通信可以是双向的。因此,这些设备中的任何一个设备都可以被配置为作为发射机和/或接收机操作。
基站可以被配置为通过通信接口与核心网络元件通信,诸如例如控制平面接口或用户平面接口NG-C/U。基站也可以被称为无线电接入网络(RAN)节点,并且它们可以是核心网络和UE之间的无线电接入网络的一部分。基站的功能可以分布在例如gNB CU的中央单元(CU)和例如gNB DU的一个或多个分布式单元(DU)之间。网络元件AMF/UPF 130、gNB 120、gNB CU或gNB DU通常可以被称为网络节点或网络设备。尽管被描述为单个设备,但是网络节点可以不是独立的设备,而是例如耦合到远程无线电头的分布式计算系统。例如,云无线电接入网络(cRAN)可以应用于无线功能的分割控制,以优化性能和成本。
通信网络100可以例如根据第三代合作伙伴计划(3GPP)定义的第五代数字蜂窝通信网络进行配置。在一个示例中,通信网络100可以根据3GPP 5G-NR(5G新无线电)进行操作。通信网络还可以根据由O-RAN联盟指定的开放无线电接入网络(O-RAN)标准来配置。然而,应当理解的是,本文所呈现的示例实施例不限于被配置为在这些示例网络下操作的设备,并且示例实施例可以被应用于使用浮点运算的任何设备,例如被配置为操作在任何当前或未来的无线或有线通信网络中的设备,或其组合,例如其他类型的蜂窝网络、短距离无线网络、广播或多播网络等。还应该注意的是,示例实施例通常地可以被应用于任何计算设备,而不管它们是否通过通信网络提供到其他设备的连接。
图2示出了根据一个示例实施例的包括资源元素的资源块的一个示例。子帧202可以包括多个正交频分复用(OFDM)符号。OFDM符号可以包括多个子载波。每个子载波可以通过诸如正交振幅调制(QAM)或相移键控(PSK)之类的方案调制。子帧可以包括多个资源块(RB)204。RB 204可以包括多个资源元素(RE)206。RE 206可以在一个OFDM符号处包括一个子载波。因此,RE 206可以携带一个调制符号。RB 204可以包括与一个或多个OFDM符号相关联的RE 206集合。
可以基于将二进制输入串映射到星座(例如QAM星座或PSK星座)的特定调制符号,来选择调制符号。通常地,星座可以包括可能的复值调制符号集合。因此,调制符号可以由两个实数表示,I分量和Q分量,分别对应于复值调制符号的实部和虚部。然而,在二进制相移键控(BPSK)的情况下,调制符号可以是纯实值或纯虚值的。在这种情况下,调制符号可以由一个实数表示。
通常地,数据通信可以被布置在例如调制符号块的数据块中。这样的数据块的一个示例是资源块(RB)204,其可以例如根据5G NR系统来配置。由于资源块是关于物理层资源(子载波和OFDM符号)来定义的,因此资源块204可以被称为物理(层)资源块(PRB)。
在图2的示例中,资源块204包括一个OFDM符号中的十二个子载波(RE)。由RE 206携带的调制符号可以使用二进制表示来表示。然而,要注意的是,RB 204只是数据块的一个示例,对于该数据块可以联合执行位向量压缩,因此示例实施例可以被应用于任何类型的块或复数或实数的集合。
图3示出了装置300的一个示例实施例,例如诸如UE 110或gNB120的计算设备。装置300可以包括至少一个处理器302。至少一个处理器302可以包括例如各种处理设备或处理器电路中的一者或多者,诸如协处理器、微处理器、控制器、数字信号处理器(DSP)、具有或不具有附带DSP的处理电路,或者包括集成电路的各种其他处理设备(诸如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、微控制器单元(MCU)、硬件(HW)加速器、专用计算机芯片等。
装置300还可以包括至少一个存储器304。至少一个存储器304可以被配置为存储例如计算机程序代码等,例如操作系统软件和应用软件。至少一个存储器304可以包括一个或多个易失性存储器设备、一个或多个非易失性存储设备和/或其组合。例如,至少一个存储器304可以体现为磁存储设备(诸如硬盘驱动器、软盘、磁带等)、光磁存储设备或半导体存储器(诸如掩模ROM、PROM(可编程ROM)、EPROM(可擦除PROM)、闪存ROM、RAM(随机存取存储器)等)。
装置300还可以包括通信接口308,该通信接口308被配置为使装置300能够向其他设备发送信息和/或从其他设备接收信息。在一个示例中,装置300可以使用通信接口308根据至少一个蜂窝通信协议,发送或接收信令信息和数据。通信接口可以被配置为提供至少一个无线电连接,例如3GPP移动宽带连接(例如3G、4G、5G)。然而,通信接口可以被配置为提供一个或多个其他类型的连接,例如无线局域网(WLAN)连接,例如由IEEE 802.11系列或Wi-Fi联盟标准化的连接;短距离无线网络连接,例如蓝牙、NFC(近场通信)或RFID连接;有线连接,例如局域网(LAN)连接、通用串行总线(USB)连接或光网络连接等;或者有线互联网连接。通信接口308可以包括或被配置为耦合到至少一个天线以发送和/或接收射频信号。各种类型的连接中的一个或多个连接也可以被实现为单独的通信接口,其可以被耦合或配置为耦合到多个天线中的一个或多个天线。
装置300还可以包括用户接口210,用户接口210包括输入设备和/或输出设备。输入设备可以采用各种形式,诸如键盘、触摸屏或一个或多个嵌入式控制按钮。输出设备可以例如包括显示器、扬声器、振动马达等。
当装置300被配置为实现某些功能时,一些部件和/或装置300的部件,例如至少一个处理器302和/或至少一个存储器304,可以被配置为实现该功能。此外,当至少一个处理器302被配置为实现某些功能时,该功能可以使用例如包括在至少一个存储器304中的程序代码306来被实现。
本文所述的功能可至少部分地由一个或多个计算机程序产品部件(诸如软件部件)执行。根据一个实施例,该装置包括处理器或处理器电路,例如微控制器,其在被执行时由程序代码配置以执行所描述的操作和功能的实施例。备选地或附加地,本文描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如但不限于,可使用的硬件逻辑部件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。
装置300包括用于执行本文所述的至少一种方法的装置。在一个示例中,装置包括:至少一个处理器302;至少一个存储器304,其包括程序代码306,该程序代码306被配置为当由至少一个处理器执行时,使装置300执行所述方法。
装置300可以包括例如计算设备(诸如,基站、服务器、移动电话、平板电脑、笔记本电脑、物联网(IoT)设备等)。IoT设备的示例包括但不限于消费电子产品、可穿戴设备、传感器和智能家电。在一个示例中,装置300可以包括车辆,诸如汽车。尽管装置300被示出为单个设备,但是应当理解的是,在适用的情况下,装置300的功能可以被分布到多个设备,例如,以将示例实施例实现为云计算服务。
示例实施例也可以用电路来实现,例如数字逻辑电路,而不使用图3的处理器/存储器结构。因此,示例实施例既可应用于硬接线实现,也可作为定制处理器(例如专用指令处理器(ASIP))中的专用指令。在图5和图7中提供了用于确定共享指数的硬连线电路的示例。
图4示出了根据一个示例实施例的块压缩算法的一个示例。块压缩算法400可以被例如用于压缩O-RAN系统中的二进制向量或值的块。因此,算法400可以包括块浮点压缩算法。
在操作401,设备(例如UE 110、gNB 120或装置300),可以找到数据块内的最大值和最小值。数据块可以包括例如与物理资源块(PRB)的调制符号相对应的IQ样本。例如,操作401可以提供数据块内的最大值(maxV)和最小值(minV)作为其输出,其中
maxV=max(Re(fPRB),Im(fPRB))
minV=min(Re(fPRB),Im(fPRB))
其中Re和Im分别表示实部和虚部,并且fPRB包括资源块202的二进制向量表示。
在操作402,设备可以确定最大绝对值。例如,设备可基于以下公式确定资源块202内的最大绝对值(maxValue):
maxValue=max(maxV,|minV|-1)
其中|.|表示绝对值。减法|minV|-1可以被执行,因为负值的最高有效位可以高出一个。
在操作403,设备可以计算指数(原始指数,raw_exp)。指数的计算可以基于所确定的最大绝对值,例如通过以下公式:
raw_exp=[floor(log2(maxValue)+1)](msb of maxValue)
在操作404,设备可以计算移位值并将其限制为正数。这可以基于在操作403处计算的指数(raw_exp)。例如,该设备可以例如计算:
exponent=max(raw_exp–iqWidth+1,0)
在操作405,设备可以确定右移值。例如,设备可以基于以下公式,确定用于数据量化的缩放因子(scaler)
scaler=2-exponent
在操作406,设备可以执行缩放和舍入。该操作可以提供物理资源块(PRB)的调制符号的量化实部和虚部作为输出。然而,如上所述,数据块可以包括实值调制符号。该数据也可以是任何其他数据。为了量化调制符号,设备可以迭代地量化调制符号的实部和虚部,例如基于以下:
这里,乘法可以通过位移位来实现。量化操作可以包括或舍入,或任何其他舍入方案。
然而,使用这种方法,可能需要针对输入块中的所有值计算最大值和最小值。这可能导致不必要地消耗重要资源(诸如时间、功率和硅面积)。计算共享指数通常是一项费力的任务,因此图4的过程的效率可以被进一步地提高。
图5示出了根据示例实施例的用于使用二进制补码表示法来确定整数集中的最大有符号数的指数的电路的一个示例。电路500可以被用于实现块压缩算法400。块a0:a7是包括多个输入整数位向量的输入块的一个示例。输入块可以表示八个实数或四个复数。为简便起见,示例值[1,-6,-4,1,6,-1,7,-8]以十进制格式被提供。为计算的每个步骤示出可能的值集合。对于八元素向量,可能有四个级别的比较器502(“>”),产生4×TCOMP的ibn附加延迟,其中TCOMP是一个比较器502的延迟。考虑到硅面积和功耗,总共有11个单独的数字比较器。在此之上,在关键路径中可以存在(宽度是4位的)非门504。
输入向量的数据通过四个级别的比较器传播,在前三层的输出端取最大值或最小值,在最底层比较之前的路径之一上使用非门504和“abs-1”操作506。该算法的输出可以通过floor(log27)+1(符号)来获得。这给出了4位作为在没有损失的情况下表示输入向量所需的最小位数。得到的延迟是4×TCOMP+TNOT,其中TNOT是非门504的延迟。由于这些原因,计算共享指数在延迟、硅面积和功耗方面可能是昂贵的。
图6示出了根据一个示例实施例的基于按位OR运算的块压缩算法的一个示例。可以使用符号-幅度表示来表示尾数,其中符号由一位指示(例如最高有效位),而其余位指示幅度(绝对值)。备选地,尾数可以使用避免为零分配两个不同表示的二进制补码表示来表示。在二进制补码中,尾数可以通过对二进制表示的所有位取反,并将一加到得到的位向量来取反。算法600可以采取不同的形式,例如取决于位向量是包括符号幅度还是二进制补码表示。块压缩算法600的输入可以包括整数,例如以二进制补码或符号幅度表示。然而,算法600也可以被应用于未归一化的浮点。这里,归一化可以指的是其中归一化的浮点数的尾数已经被最大左移位并且MSB1被从表示中省略的表示。算法600可以由设备(例如UE 110、gNB120或装置300)执行,其可以初始地获得用于压缩的多个位向量。如上所述位向量可以表示调制符号的实部和/或虚部,例如一个或多个物理资源块的调制符号。
在操作601中,设备可以对负数执行按位取反,即,对表示负数的位向量执行按位取反。因此,如果位向量表示负数(小于0),则位向量的每个位可以被取反(反转)。如果位向量表示非负数(大于等于0),则可以原样传递位向量,而不对其任何位取反。操作601可以在位向量的二补码表示的情况下执行。在符号幅度表示的情况下,可以省略该操作。
在操作602中,设备可以对多个位向量执行按位OR运算。按位OR运算可以包括确定在特定位位置处的多个位向量的位中的至少一位是否为非零。如果存在至少一个非零位,则按位OR运算的输出处的对应位可以被设置为1。按位OR运算的输出可以包括辅助位向量,该辅助位向量随后可以用于在操作603中计算指数。
在操作603中,设备可以计算指数。可以基于辅助位向量中具有等于1的值的最高有效位的位置(IndexMSB),确定可以与算法400的原始指数相对应的指数。例如,如果位位置是从“0”开始索引的,对应于最低有效位(LSB),则可以通过将最高有效位的索引加2来确定要表示的位数(+1由于索引从“0”开始,+1表示符号)
N_bits=IndexMSB+2
例如,如果辅助位向量等于“0111”(MSB在左边,具有位置索引[3 21 0]),则IndexMSB=2,并且可以通过N_bits=IndexMSB+2=2+2=4来确定要表示的位数,该位数等于(原始)指数。设备然后可以基于计算出的指数,确定多个位向量的表示。多个位向量中的每个位向量可以使用相同(共享/共同)指数来表示。因此,所确定的表示可以包括用于多个浮点位向量的一个指数。
在操作604到操作606中,设备可以基于计算出的指数,确定针对多个浮点位向量的压缩表示。操作604到操作606可以分别类似于操作405到操作406。块压缩算法600的输出格式因此可以是具有共享或共同指数和与该共享或共同指数对齐的尾数的块浮点格式。
图7示出了根据一个示例实施例的多路复用器电路的一个示例。多路复用器电路700可以用于算法600的有效实现操作601。多路复用器700可以包括第一数据输入和第二数据输入S1和S2、数据输出D、控制输入C和使能输入EN。上述输入中的一者或多者可以是可选的,并且实际实现方式可以变化。设置使得输入EN可以使能多路复用器700的操作。在操作期间,控制输入可以被用于控制数据输入S1和S2中的哪一者连接到数据输出D。例如,将控制输入设置为逻辑高,可以使得第一数据输入S1被转发到数据输出D。并且,将控制输入设置为逻辑低,可以使得第二数据输入S2被转发到数据输出D。
图8示出了根据一个示例实施例的用于基于按位OR运算,确定用于表示正数和负数集合的最小位数的电路的一个示例。电路800提供用于计算针对八值输入的共享指数的硬连线实现的一个示例。输入向量[a0:a7]可以包括位向量(输入位向量),在该示例中具有值0001、1010、1100、001、0110、1111、0111和1110。这些值对应于图5的输入值,但采用二进制格式,使用二补码表示。
电路800可以包括取反和多路复用级801。每个输入位向量可以通过NOT级,然后通过多路复用器。多路复用器可以类似于多路复用器700。取反和多路复用级801可以包括用于按位取反多路复用器的一个输入的非门(反相器)。复用器可以被配置为例如根据每个输入值的MSB在输入位向量的初始值或其一进制补码(按位取反)之间进行选择。因此,每个多路复用器可以将例如在多路复用器700的输入S1和S2处的按位取反和非取反的输入向量作为输入。输入位向量的MSB可以耦合到多路复用器的控制输入端C。例如,如果MSB的值等于零,则复用器可以转发原始输入位向量。如果MSB的值等于1,则多路复用器可以转发取反的输入位向量(即,一进制补码)。在图8中还示出了取反和多路复用级的输出位向量0001、0101、0011、0001、0110、000、0111和0111。如果输入位向量是二进制补码表示,则可以使用取反和复用级801。对于符号幅度表示,复用级801可以不存在,或者可以被绕过。取反和多路复用级801可以被用于实现算法600的操作601。
电路800可以包括OR树802。在八值输入的示例中,OR树802可以包括三级OR门。OR树可用于直接计算其输入位向量(例如,取反和复用级801的输出位向量或输入向量[a0:a7]的位向量)之间的按位OR。在每个OR树级别,可以在两个输入位向量之间执行一个或多个OR运算,并且OR运算的结果可以被传递到下一个OR级别或者被提供作为OR树802的输出。如图8所示,第一OR树级别可以对四对个输入位向量执行四个OR运算。第一OR树级别的OR门可以计算输入位向量0001和0101、0011和0001、0110和0000以及0111和0111之间的按位OR,分别产生四个输出位向量0101、00011、0110以及0111。第二OR树级别可以对第一OR树级别的两对四个输出位向量,执行两个OR运算。因此,第二OR树级别的OR门可以计算位向量0101和0011以及0110和0111之间的按位OR,从而分别产生两个输出位向量0111和0111。第三OR树级别可以对第二OR树级别的两个输出向量执行一个OR运算。因此,第三OR树级别的OR门可以计算位向量0111和位向量0111之间的按位OR,从而产生输出位向量0111。
OR树的输出位向量可以用位置索引[3 2 1 0](MSB左)进行索引。输出位向量可以被用于检测最高有效位1的位置。在该示例中,最高有效位的索引是IndexMSB=2,并且要表示的位数可以由N_bits=IndexMSB+2=2+2=4来确定。该位置可以被用于计算向量[a0:a7]中的所有值的移位,例如,在操作405或操作605中。然后可以类似于操作605来确定共享指数。所得到的延迟是TNOT+TMUX2+3×TOR,其中TNOT和TMUX2是非门的延迟以及取非和多路复用级801的两个输入复用器的延迟,并且TOR是OR树802的OR门的延迟,而3是本实施例所考虑的输入数目所需的OR级的数目。
如上所述,每个输入位向量的MSB可以被用于对应的多路复用器,以确定原始输入或取反输入是否为转发器。因此,OR和NOT门可以被配置为不考虑MSB,并且OR和/或NOT门的宽度可以被减小以进一步降低复杂性。例如,如果多个位向量的长度为N,则OR门和/或NOT门可以具有N-1位的宽度。
下表提供了实现图5和图8的架构所需的用于八个有符号值的不同部件的数目的比较,每个输入具有N位宽度。对于每种方法,在左列上呈现广义数字,并且在右列上针对每个电路列出与图5和图8的八值输入向量[a0:a7]相对应的数字。对于电路500,可能在比较器(“>”)的实现内部使用的OR门和NOT门以及多路复用器不单独计数。表中的前四行表示影响硅面积和功耗的资源,第五行表示两个示例电路的延迟。资源的数目与要用共享指数表示的多个输入浮点位向量(M)的数目成线性比例。延迟与log2M成正比。资源的宽度由输入位向量的位的数目来确定。
当在处理器(例如ASIP或其他自定义处理器)上实现示例实施例时,一条指令可以被用于同时计算正数和负数集合的共享指数。这提高了浮点压缩的效率。使用基于按位OR的算法(例如电路800),可以在单个时钟周期中计算整个共享指数,包括计算缩放因子/共享指数的计算和输入位向量的元素的有效移位,并且因此整个压缩成块共享指数被包含在单个时钟指令中。时间可以与M成对数比例。因此,所公开的方法适合于例如通过对物理资源块的调制符号的表示应用一个共享指数来压缩它们。
因此,第一观察结果与两个电路(电路500的比较器和电路800的基本门(NOT,OR))之间所需的资源类型有关。因此,电路800可以用更简单的栅极来实现,从而产生更小的硅面积。另一个观察结果是,资源相对于M的缩放在两个电路之间是不同的。延迟是造成这两种方法不同的另一个因素。单个比较器的延迟(TCOMP)随着输入端的位数(N)增加,而延迟TOR保持不变。对于电路800,延迟仅随着同一输入块中的浮点位向量的数目缩放(针对相同的共享指数),因此延迟对于8x4位输入和8x32位输入是相同的。然而,电路500的延迟随着输入位向量的数目和这些位向量中的位数目(通过比较器延迟)而缩放。因此,电路800更适合于处理较大的输入浮点位向量块。此外,电路800的OR和NOT门的宽度可以是N-1,这进一步降低了复杂性。
以下是硬件寄存器传输级别描述语言中共享指数的基于按位OR的计算的实现的一个示例。寄存器DI0,DQ0,DI1,DQ1可以包含物理资源块(PRB)的两个资源元素(RE)的I分量和Q分量。信号NI0,NQ0,NI1,NQ1可以包含每个复数分量的原始输入值或反转值。寄存器PATTERN可以累积一个PRB的RE的OR结果。断言的控制信号PRB_START可以用于标记新的PRB的开始。当PRB_START被断言时,PATTERN的累积从初始值为零的每一位再次开始。
以下示例代码提供了使用构造的OR’d位模式图像PATTERN的最高有效非零位来选择PRB的共同指数输出信号EXPONENT以及配置的尾数宽度CONFIG_BIT_WIDTH的一个示例,例如用于在上行链路数据方向上通过O-RAN接口进行交换。
图9示出了根据一个示例实施例的用于共享指数计算的方法的一个示例。
在901中,该方法可以包括获得多个位向量。
在902中,该方法可以包括对多个位向量执行按位OR运算以获得辅助位向量。
在903中,该方法可以包括基于在辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示多个位向量的共享指数。
在904中,该方法可以包括基于共享指数,确定针对多个位向量的表示。
如所附权利要求和整个说明书中所述,该方法的其他特征直接源于UE 110、(多个)gNB 120或装置300的功能和参数,因此在此不重复。还可以应用该方法的不同变型,如结合各种示例实施例所描述的。
例如UE 110或网络节点(诸如(多个)gNB 120)的装置,可以被配置为执行或引起执行本文所述方法的任何方面。此外,计算机程序或计算机程序产品可以包括用于在执行时使装置执行本文所述方法的任何方面的指令。此外,一种装置可以包括用于执行本文所述的(多个)方法的任何方面的部件。根据一个示例实施例,部件包括至少一个处理器和至少一个存储器,存储器包括程序代码、至少一个处理程序和程序代码,程序代码被配置为在由至少一个处理器执行时引起(多个)方法的任何方面的执行。因此,一种装置可以包括至少一个处理器和至少一个存储器,至少一个存储器包括程序代码,程序代码被配置为当由至少一个处理器执行时,使装置执行所述(多个)方法的任何方面。
本文给出的任何范围或设备值都可以在不失去所寻求效果的情况下进行扩展或更改。此外,任何实施例都可以与另一个实施例组合,除非明确禁止。
尽管主题已经用结构特征和/或行为特定的语言进行了描述,但应理解的是,所附权利要求中定义的主题不一定限于上述特定特征或行为。相反,上面描述的特定特征和动作被公开为实施权利要求的示例,并且其他等效特征和动作意图在权利要求的范围内。
应该理解的是,上述益处和优点可能与一个实施例有关,也可能与几个实施例有关。实施例不限于那些解决任何或所有所述问题的实施例,或者那些具有任何或所有的所述益处和优点的实施例。将进一步理解,对“一个”项目的引用可以指代这些项目中的一个或多个。
本文所述方法的步骤或操作可按任何合适的顺序进行,或在合适的情况下同时进行。此外,在不脱离本文所描述的主题的范围的情况下,可以从任何方法中删除单独的块。上述任何实施例的各方面可以与所描述的任何其他实施例的各个方面相结合,以形成进一步的实施例,而不会失去所寻求的效果。
术语“包括”在本文中用于表示包括所识别的方法、块或元素,但这样的块或元素不包括排他性列表,并且方法或装置可以包含额外的块或元件。
如本申请中使用的,术语“电路”可以指以下一项或多项或全部:(a)仅硬件电路实现(诸如仅在模拟和/或数字电路中实现),以及(b)硬件电路和软件的组合,诸如(如适用):(i)(多个)模拟和/或数字硬件电路与软件/固件的组合,以及(ii)具有软件的(多个)硬件处理器的任何部分(包括(多个)数字信号处理器、软件和(多个)存储器,其一起工作以使装置(诸如移动电话或服务器)执行各种功能),以及(c)(多个)硬件电路和/或(多个)处理器,诸如(多个)微处理器或(多个)微处理器的一部分,其需要软件(例如,固件)以进行操作,但在不需要操作时,软件可以不存在。电路的该定义适合于该术语在本申请中的所有使用,包括在任何权利要求中的使用。
作为另外的示例,如在本申请中使用的,术语电路还涵盖仅硬件电路或处理器(或多个处理器)或硬件电路或处理器的一部分及其随附软件和/或固件的实现。例如,如果适用于特定权利要求元素,则术语电路还涵盖用于移动设备的基带集成电路或处理器集成电路、或者服务器、蜂窝网络设备或其他计算或网络设备中的类似集成电路。
应当理解的是,以上描述仅以示例的方式给出,本领域技术人员可以进行各种修改。以上说明书、示例和数据提供了示例性实施例的结构和用途的完整描述。尽管以上已经以一定程度的特殊性或参考一个或多个单独的实施例描述了各种实施例,但是本领域技术人员可以在不脱离本说明书的范围的情况下对所公开的实施例进行许多改变。
Claims (20)
1.一种装置,包括:
用于获得多个位向量的部件;
用于对所述多个位向量执行按位OR运算以获得辅助位向量的部件;
用于基于在所述辅助位向量中具有等于1的值的最高有效位的位置来确定用于表示所述多个位向量的共享指数的部件;以及
用于基于所述共享指数来确定针对所述多个位向量的表示的部件。
2.根据权利要求1所述的装置,还包括:
用于对表示负数的位向量执行按位取反的部件。
3.根据权利要求2所述的装置,其中用于对表示所述负数的所述位向量执行所述按位取反的所述部件包括多个多路复用器,所述多个多路复用器被配置为:如果输入浮点位向量的最高有效位等于0,则输出输入位向量的非取反版本,并且如果所述输入浮点位向量的最高有效位等于1,则输出所述输入位向量的按位取反版本。
4.根据权利要求3所述的装置,其中所述多个位向量的长度是N,并且其中用于对所述多个位向量执行所述按位OR运算的所述部件包括宽度为N-1位的多个OR门。
5.根据前述权利要求中任一项所述的装置,其中所述多个位向量表示多个调制符号的实部和/或虚部。
6.根据权利要求5所述的装置,其中所述多个调制符号与物理层资源块相关联。
7.一种方法,包括:
获得多个位向量;
对所述多个位向量执行按位OR运算以获得辅助位向量;
基于在所述辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示所述多个位向量的共享指数;以及
基于所述共享指数,确定针对所述多个位向量的表示。
8.根据权利要求7所述的方法,还包括:
对表示负数的位向量执行按位取反。
9.根据权利要求8所述的方法,其中对表示所述负数的所述位向量执行所述按位取反包括:如果输入位向量的最高有效位等于0,则由多个多路复用器输出所述输入位向量的非取反版本,并且如果所述输入位向量的最高有效位等于1,则由所述多个多路复用器输出所述输入位向量的按位取反版本。
10.根据权利要求9所述的方法,其中所述多个位向量的长度是N,并且其中对所述多个位向量执行所述按位OR运算基于宽度为N-1位的多个OR门。
11.根据权利要求7至10中的任一项所述的方法,其中所述多个位向量表示多个调制符号的实部和/或虚部。
12.根据权利要求11所述的方法,其中所述多个调制符号与物理层资源块相关联。
13.一种计算机程序,包括用于使装置至少执行以下操作的指令,所述操作包括:
获得多个位向量;
对所述多个位向量执行按位OR运算以获得辅助位向量;
基于在所述辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示所述多个位向量的共享指数;以及
基于所述共享指数,确定针对所述多个位向量的表示。
14.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括计算机程序代码;
所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使所述装置至少执行:
获得多个位向量;
对所述多个位向量执行按位OR运算以获得辅助位向量;
基于在所述辅助位向量中具有等于1的值的最高有效位的位置,确定用于表示所述多个位向量的共享指数;以及
基于所述共享指数,确定针对所述多个位向量的表示。
15.根据权利要求14所述的装置,还使得所述装置至少:
对表示负数的位向量执行按位取反。
16.根据权利要求15所述的装置,其中对表示所述负数的所述位向量执行所述按位取反包括:如果输入位向量的最高有效位等于0,则由多个多路复用器输出所述输入位向量的非取反版本,并且如果所述输入位向量的最高有效位等于1,则由所述多个多路复用器输出所述输入位向量的按位取反版本。
17.根据权利要求16所述的装置,其中所述多个位向量的长度是N,并且其中对所述多个位向量执行所述按位OR运算基于具有宽度为N-1位的多个OR门。
18.根据权利要求14至17中的任一项所述的装置,其中所述多个位向量表示多个调制符号的实部和/或虚部。
19.根据权利要求18所述的装置,其中所述多个调制符号与物理层资源块相关联。
20.一种装置,所述装置被配置为执行根据权利要求7至12中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI20215173 | 2021-02-18 | ||
FI20215173 | 2021-02-18 | ||
PCT/EP2022/052314 WO2022175075A1 (en) | 2021-02-18 | 2022-02-01 | Efficient computation of a shared exponent |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117321562A true CN117321562A (zh) | 2023-12-29 |
Family
ID=80623895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280029098.6A Pending CN117321562A (zh) | 2021-02-18 | 2022-02-01 | 共享指数的有效计算 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240134609A1 (zh) |
EP (1) | EP4295223A1 (zh) |
CN (1) | CN117321562A (zh) |
WO (1) | WO2022175075A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09128213A (ja) * | 1995-10-31 | 1997-05-16 | Hitachi Ltd | ブロックフローティング処理システムおよび方法 |
US8301803B2 (en) * | 2009-10-23 | 2012-10-30 | Samplify Systems, Inc. | Block floating point compression of signal data |
-
2022
- 2022-02-01 CN CN202280029098.6A patent/CN117321562A/zh active Pending
- 2022-02-01 WO PCT/EP2022/052314 patent/WO2022175075A1/en active Application Filing
- 2022-02-01 EP EP22706513.3A patent/EP4295223A1/en active Pending
- 2022-02-01 US US18/277,651 patent/US20240134609A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240134609A1 (en) | 2024-04-25 |
EP4295223A1 (en) | 2023-12-27 |
WO2022175075A1 (en) | 2022-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8971451B2 (en) | Efficient baseband signal processing system and method | |
CN104246690A (zh) | 数字信号处理器中用于信号处理的系统和方法 | |
WO2022088997A1 (zh) | 除运算方法及除法器、除法装置、电子设备、存储介质 | |
KR20090005399A (ko) | 범용 어레이 처리 | |
CN110796247B (zh) | 一种数据处理方法、装置、处理器及计算机可读存储介质 | |
CN117321562A (zh) | 共享指数的有效计算 | |
WO2023236610A1 (zh) | 信号检测方法、装置、电子设备及存储介质 | |
US20040091105A1 (en) | Apparatus for hyperelliptic-curve cryptography processing | |
Krasser et al. | Fast and efficient FPGA implementation of Polar Codes and SoC test bench | |
CN115270155A (zh) | 一种获取大数拓展最大公约数的方法及硬件架构 | |
US10142139B2 (en) | Digital signal processor using signed magnitude and wireless communication receiver having the same | |
CN111191779A (zh) | 一种数据处理方法、装置、处理器及计算机可读存储介质 | |
KR101318992B1 (ko) | 모듈로 n 연산방법 및 그 장치 | |
US9870201B1 (en) | Method and apparatus for modulo arithmetic | |
US20130052976A1 (en) | Radio apparatus and metric calculation method | |
CN111752532B (zh) | 一种高精度实现32位整数除法的方法、系统及装置 | |
US10162599B1 (en) | Method and apparatus for modulo operation with a class of divisors | |
CN113556301B (zh) | 一种信号处理方法及装置 | |
Low et al. | A new RNS scaler for {2 n− 1, 2 n, 2 n+ 1} | |
CN111654349B (zh) | 帧同步方法及系统 | |
CN114826853B (zh) | 基于fpga的对数似然比方法及系统 | |
CN110147218B (zh) | 基于Cordic算法的运算电路与方法 | |
US10320595B2 (en) | Optimized CORDIC for APSK applications | |
CN114257478A (zh) | 基于深度学习的信道缓冲器压缩 | |
JP4720746B2 (ja) | 多値直交振幅変調信号の復調 |
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 |