CN111158757A - 并行存取装置和方法以及芯片 - Google Patents
并行存取装置和方法以及芯片 Download PDFInfo
- Publication number
- CN111158757A CN111158757A CN201911406669.XA CN201911406669A CN111158757A CN 111158757 A CN111158757 A CN 111158757A CN 201911406669 A CN201911406669 A CN 201911406669A CN 111158757 A CN111158757 A CN 111158757A
- Authority
- CN
- China
- Prior art keywords
- lane
- address
- access
- step length
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000015654 memory Effects 0.000 claims abstract description 102
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 22
- 238000001514 detection method Methods 0.000 description 17
- 239000011159 matrix material Substances 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明实施例公开了一种并行存取方法和装置以及芯片,可用于实现集成电路技术领域中数据的并行存储或读取操作。通过地址生成器为多个车道生成目标地址,车道按照目标地址访问RAM存储器中相应的存储位置,并行进行数据存取操作。本发明中的地址生成器在为车道生成目标地址时,使用车道步长生成单元来生成车道步长,其中车道步长为步长的K倍,且在同一条SIMD控制指令控制下,生成的车道步长不同,以此来确保地址生成单元生成的目标地址不会构成访问冲突。因此,本发明能够保证在车道并行无冲突访问存储器的前提下降低相关硬件的功耗,同时还缩短了进行数据并行存取操作的整体耗时。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种并行存取装置和方法以及芯片。
背景技术
随着科技的发展和社会的进步,集成电路设计得到了广泛应用,越来越多的电子设备进入了人们的日常生活,不仅给人们的日常生活带去了便利,同时也进一步促进了科技的创新与研发。在集成电路设计领域,数据存取是其中的一项十分重要的技术。处理器对数据的存取通过装载(load)指令和存储(store)指令来访问存储器,当处理器需要使用存储器中的数据时,使用装载指令将位于存储器中相应地址的数据装载到相应的寄存器中,当处理器需要存储数据时,使用存储指令将位于相应寄存器中的数据存储到存储器中的相应地址。
在多媒体、大数据、人工智能等应用场景中,经常需要使用数据并行算法,如神经网络中需要同时对多个矩阵进行并行运算,这种并行是指需要对大量数据集进行同时操作。对大量数据集进行同时操作,也就需要对大量数据集进行并行同时存取。在多媒体、大数据、人工智能等应用场景中大多采用SIMD技术来进行并行处理,SIMD(SingleInstruction Multiple Data)即单指令流多数据流技术,是一种采用一个控制器来控制多个处理器,从而实现空间上的并行性的技术。简单来说就是一个控制指令能够同时并行处理多个数据。SIMD扩展部件负责访存、计算等操作的功能单元均支持多个并行子单元的同时处理,因此一条SIMD扩展指令可一次性操作多个元素,这些并行子单元被称为车道。而在并行处理中,常常会出现两个或多个车道指向内存中完全相同的位置的情况,即存在地址访问冲突。现有技术通常采用设置冲突检测装置的方式来解决访问冲突的问题,通过冲突检测装置来对涉及访问冲突的车道的访问请求进行仲裁。以这样的方式进行数据的并行存取不仅效率低下,而且相关硬件功耗较高、数据存取耗时长。
发明内容
有鉴于此,本发明提供了一种并行存取装置和方法以及芯片,以解决集成电路中通过冲突检测的方式来解决访问冲突造成的数据存取操作效率低下,相关硬件功耗高,数据存取耗时长的问题。
第一方面,本发明实施例提供了一种并行存取装置,该装置包括存储器和M个车道,存储器中包括多个存储组,其中,存储组的数量不小于车道的数量M,M为不小于2的整数;该装置还包括立即数堆和地址生成器,立即数堆连接地址生成器,地址生成器连接每个车道,每个车道与每个存储组均相连;
立即数堆用于提供地址生成信息和步长,该步长为奇数;
地址生成器用于接收SIMD控制指令和车道信息以及地址生成信息,并为车道生成目标地址;该车道信息包括步长;地址生成器包括车道步长生成单元以及地址生成单元,其中:
车道步长生成单元用于根据SIMD控制指令和车道信息生成车道步长,该车道步长为步长的K倍,K为整数,K的取值范围为[N,M+N-1],N为不小于0的整数;
地址生成单元用于根据控制指令将地址生成信息和车道步长求和,并根据控制信息将得到的和值作为目标地址输出至相应的车道;
M个车道用于根据各自的目标地址访问对应的存储组,并行进行存取操作。
本发明实施例提供的并行存取装置,通过使用车道步长生成单元来根据被设置为奇数的步长生成每个车道的车道步长,并进一步使用车道步长来生成车道的目标地址。保证了为每个车道生成的地址之间不存在冲突,使得多个车道并行访问存储器进行存取操作时能按照各自的目标地址准确有序地进行,避免了并行存取出现访问冲突的情况。现有技术中通常通过设置冲突检测方法或装置来解决多车道并行访问冲突的问题。相对于现有技术,本申请不再需要对车道的目标地址进行冲突检测,即相关硬件中也不再需要设置相关的冲突检测装置,这不仅提高了多车道并行访问进行存取操作的执行效率,而且降低了相关硬件的功耗,同时还缩短了进行数据并行存取的整体耗时。
优选地,车道步长生成单元包括算术运算器件,该算术运算器件用于生成车道步长。通过控制指令控制车道步长中的算术运算器件对车道信息进行处理,可得到车道信息中的步长的K倍的值,并将该值用于计算车道的目标地址,保证了地址生成器生成的车道目标地址各不相同,避免了车道访问时出现访问冲突的情况。
更为优选地,算术运算器件包括多个加法器,该多个加法器以级连的方式连接。通过多个加法器将车道信息中的步长逐级累加来计算车道步长,不仅结构简单,而且提高了运算速率,降低了硬件功耗。
更为优选地,算术运算器件包括加法器和移位器,其中,车道步长生成单元使用移位器生成并输出A类车道步长,或使用加法器生成并输出B类车道步长。进一步简化了车道步长生成单元的硬件结构,且提供了更好的车道步长计算的选择灵活性。进一步提高了车道步长的生成效率,降低了硬件功耗。
优选地,地址生成信息包括基址和偏移量,地址生成单元包括两个加法器,这两个加法器用于将基址和偏移量以及车道步长求和,得到的和值作为目标地址。通过将基址作为每个车道的共同基础地址,同时设置每个车道的车道步长不同,使得每个车道在并行是能访问不同的存储组,避免出现访问冲突的情况。通过设置偏移量在保证不存在访问冲突的情形下提供了更好的地址生成的灵活性。使用两个加法器将基址和偏移量以及车道步长求和,实现的硬件结构成本的最小化。
第二方面,本发明实施例提供了一种并行存取方法。提供一个存储器和M个车道,该方法包括以下步骤:
步骤110:将存储器划分为多个存储组,其中,存储组的数量不小于所述M;
步骤120:获取SIMD控制,根据SIMD控制指令依次生成至少两个目标地址,并将该至少两个目标地址依次发送至M个车道中对应的车道,且一个目标地址仅能发送至一个车道;生产单个目标地址的过程包括:
根据SIMD控制指令获取车道信息,该车道信息包括步长,该步长为奇数;根据该车道信息生成车道步长,其中,该车道步长为步长的K倍,K为区间[N,M+N-1]内的整数,N为不小于0的整数;
根据SIMD控制指令获取地址生成信息,将地址生成信息和车道步长求和,并根据该SIMD控制指令将得到的和值作为一个目标地址直接发送至对应的车道;每次根据SIMD控制指令生成单个目标地址的过程中生成的车道步长各不相同;
步骤130:根据SIMD控制指令生成的目标地址均已发送至对应的车道后,这些对应的车道同时开始运行,按照各自接收到的目标地址访问对应的存储值,并行进行存取操作。
本发明实施例提供的并行存取方法,通过使用被设置为奇数的步长来生成每个车道的车道步长,并进一步使用车道步长来生成车道的目标地址。保证了为每个车道生成的地址之间不存在冲突,使得多个车道并行访问存储器进行存取操作时能按照各自的目标地址准确有序地进行,避免了并行存取出现车道访问冲突的情况。现有技术中通常通过设置冲突检测方法或装置来解决多车道并行访问冲突的问题。相对于现有技术,本申请不再需要对车道的目标地址进行冲突检测,即相关硬件中也不再需要设置相关的冲突检测装置,这不仅提高了多车道并行访问进行存取操作的执行效率,而且降低了相关硬件的功耗,同时还缩短了进行数据并行存取的整体耗时。
优选地,地址生成信息包括基址和偏移量,在前述步骤120中包括将基址和偏移量以及车道步长这三者求和,得到的和值作为目标地址。通过将基址作为每个车道共同基础地址,同时设置每个车道的车道步长不同,使得每个车道在并行是能访问不同的存储组,避免出现访问冲突的情况。通过设置偏移量在保证不存在访问冲突的情形下提供了更好的地址生成的灵活性。
优选地,前述方法还提供车道步长生成单元,该车道步长生成单元包括算术运算器件,使用SIMD控制指令控制算术运算器件生成车道步长。通过控制指令控制车道步长中的算术运算器件对车道信息进行处理,可得到车道信息中的步长的K倍的值,其中K为不小于0的整数,并将该值用于计算车道的目标地址,保证了地址生成器生成的车道目标地址各不相同,避免了车道访问时出现访问冲突的情况。
特别地,前述提及的并行存取方法中,每个存储组有各自的组编号,车道的数量为M,目标地址中的低log2 M位为组编号。通过车道的数量来确定目标地址中用来表示组编号的比特位数,将组编号直接记录在生成的目标地址中,不再需要单独设置记录组编号步骤和相关的器件,简化了相关硬件构成。
第三方面,本发明实施例提供了一种芯片。该芯片包括计算机可读存储介质,计算机可读存储介质用于存储计算机程序;该芯片还包括处理器,该处理器包括前述揭示的并行存取装置;该处理器用于执行可读存储介质中存储的计算机程序时,实现前述提及的并行存取方法的步骤。
本发明在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种并行存取方法的流程示意图;
图2是本发明实施例提供的一种并行存取装置200的结构示意图;
图3是本发明实施例提供的一种地址生成器300的结构示意图;
图4(A)是本发明实施例提供的一种车道步长生成单元410的结构示意图;
图4(B)是本发明实施例提供的一种车道步长生成单元420的结构示意图;
图4(C)是本发明实施例提供的一种车道步长生成单元430的结构示意图;
图5是本发明实施例提供的一个地址生成器500的结构示意图;
图6是本发明实施例提供的一种车道600的结构示意图;
图7是本发明实施例提供的需要存储的数据样本;
图8是本发明实施例提供的用于存储图7中的数据的RAM存储器;
图9,是本发明实施例提供的一种四车道的并行存取装置900的结构示意图;
图10是本发明实施例提供的一种用于计算四车道的步长生成单元1000的结构示意图;
图11是存储完成图7中的每个矩阵的第一个元素后得到的存储器800的存储状态图;
图12是存储完成图7中的每个矩阵的所有元素后得到的存储器800的存储状态图;
图13是本发明实施例提供的一种芯片1300的结构示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个元件被称为是“连接于”另一个元件,或称一个元件与另一个或多个元件“连接”、“相连”时,它可以是直接连接到另一个元件或间接连接至该另一个元件上。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面对本发明实施例进行具体说明。
本发明实施例提供了一种矩阵处理方法,请参见图1,是本发明实施例提供的一种并行存取方法的流程示意图。该方法可在SIMD指令控制下实现多个车道同时进行数据存取操作。如图1所示,该方法包括如下步骤:
步骤110:将RAM存储器划分为多个存储组。本发明实施例提及的存储器为RAM存储器,即随机存取存储器。RAM存储器可被划分为一定数量的存储组,存储组内包括一定数量的存储体,存储体用于存储数据。本发明实施例将存储器划分为多个存储组,并为每个存储组设置组编号,其中,存储组的数量不小于车道的数量,假设车道的数量为M,M不小于2,则存储组的数量为大于等于M,优选存储组的数量等于车道的数量。
步骤120:根据SIMD控制指令依次生成多个目标地址,并发送至相应的车道。车道要进行数据存取操作,首先需要获取一个目标地址,车道访问该目标地址指向的存储组中的存储体进行数据存取操作。根据SIMD控制指令依次生成至少两个目标地址,并将生成的该至少两个目标地址直接发送至M个车道中对应的车道,并且一个目标地址仅能发送至一个车道。根据SIMD控制指令生的目标地址的具体数目,由SIMD控制指令决定,可以是[2,M]内的任意一个整数。生成单个目标地址的过程包括:
根据SIMD控制指令获取车道信息,车道信息中包括步长,该步长为奇数;通过一个车道步长生成单元根据车道信息生成车道步长,其中,车道步长为步长的K倍,K为整数,K的取值范围为[N,M+N-1],N为不小于0的整数;
获取地址生成信息,地址生成信息包括基址,还包括偏移量;根据SIMD控制指令将地址生成信息和车道步长求和,即将基址和偏移量以及车道步长求和,所得到的和值即作为目标地址直接发送至车道;目标地址由实际地址和组编号两部分组成,其中,目标地址中的低log2 M位为组编号,其余位为实际地址,实际地址指向一个存储体。每次根据SIMD控制指令生成单个目标地址的过程中生成的车道步长各不相同。
步骤130:获取到目标地址的多个车道同时开始运行,并行访问相应的存储组,进行存取操作。多个车道获取到各自的目标地址后,多个车道同时开始启动运行,按照各自的目标地址访问目标地址中包括的组编号对应的存储组,进一步根据实际地址访问对应的存储体,并行进行数据的存取操作。
本发明实施例提供的并行存取方法,通过使用被设置为奇数的步长来生成每个车道的车道步长,并进一步使用车道步长来生成车道的地址。保证了为每个车道生成的地址之间不存在冲突,使得多个车道并行访问存储器进行存取操作时能按照各自的目标地址准确有序地进行。避免了并行存取出现访问冲突的情况。现有技术中通常通过设置冲突检测方法或装置来解决多车道并行访问冲突的问题。相对于现有技术,本申请不再需要对车道的目标地址进行冲突检测,即相关硬件中也不再相关的冲突检测装置,这不仅提高了多车道并行访问进行存取操作的执行效率,而且降低了相关硬件的功耗,还缩短了进行数据并行存取的整体耗时。
本发明实施例提供了一种并行存取装置,请参见图2,是本发明实施例提供的一种并行存取装置200的结构示意图。如图2所示,矩阵处理装置200包括立即数堆210,地址生成器220,M个车道230,M不小于2,RAM存储器240,RAM存储器240被划分为Q个存储组241,存储值241中包括多个存储数据的存储体,其中,Q大于等于M,优选Q等于M。立即数堆210连接地址生成器220;地址生成器220与每一个车道230均相连;每一个存储组有一个读写端口,每一个车道230均连接RAM存储器240中的每一个存储组241的读写端口(图中未示出)。
立即数堆210用于提供地址生成信息和步长,其中,步长为奇数。立即数堆210在接收到外部请求信号时会根据该请求信号向地址生成器220发送相应的地址生成信息和步长,该请求信号可以是地址生成器220发出的,也可以是外部其他控制设备发出的。
地址生成器220用于接收控制指令和车道信息以及来自立即数堆210的地址生成信息。其中,控制指令包括经解码器解码后的SIMD指令;车道信息内包括来自立即数堆210的步长,还包括0,0由外部设备提供;地址生成信息包括基址,还包括偏移量。
请参见图3,是本发明实施例提供的一种地址生成器300的结构示意图。如图3所示,地址生成器300包括车道步长生成单元301和地址生成单元302。其中,车道步长生成单元301用于接收车道信息,并根据控制指令计算出车道步长,车道步长为车道信息中的步长的K倍,K为整数,K的取值范围为[N,M+N-1],N为不小于0的整数,且在同一条SIMD控制指令控制下,生成的车道步长各不相同。车道步长生成单元301生成车道步长后将车道步长发送至地址生成单元302,地址生成单元302接收车道步长和地址生成信息,并根据二者为车道生成目标地址。
在一个优选的实施例中,车道步长生成单元通过使用移位器以及加法器来生成车道步长。请参见图4(A),是本发明实施例提供的一种车道步长生成单元410的结构示意图。如图4(A)所示,车道步长生成单元410包括传输线411和传输线412,以及移位器413和加法器414。假设现使用M个车道来执行数据并行存取操作,车道的序号分别为车道0,车道1,车道2,……,车道M-1。车道步长生成单元接收车道信息,车道信息包括来自外部设备的0和来自立即数堆的步长,传输线411用于根据SIMD控制指令将0作为车道0的车道步长,并直接传输至地址生成单元;传输线412用于根据SIMD控制指令将从立即数堆接收到的步长作为车道1的车道步长直接传输至地址生成单元;其中,从外部设备接收的0和从立即数堆接收的步长均为车道信息。移位器413用于根据SIMD控制指令将从立即数堆接收到的步长进行移位,并将得到的移位结果作为A类车道的车道步长直接输出至地址生成单元;其中,A类车道包括序号为2P的车道,P为不小于1的整数;由移位器413直接输出的车道步长也称为A类车道步长。加法器414用于根据SIMD控制指令将移位器413输出的移位结果和从立即数堆接收到的步长求和,将得到的和值作为B类车道的车道步长直接输出至地址生成单元;其中B类车道为除车道0和车道1以及A类车道之外的车道,由加法器414直接输出的车道步长也称为B类车道步长。另外,加法器414还可以用于接收两个移位器413的移位结果,并计算和值,且将得到的和值作为B类车道步长输出;加法器414还可以用于接收另一个加法器414的输出结果和从立即数堆接收到的步长,并计算出和值,且将得到的和值作为B类车道步长输出;加法器414还可用于接收另一个加法器414的输出结果和移位器413的输出结果,并计算出和值,且将得到的和值作为B类车道步长输出。
在另一个优选的实施例中,车道步长生成单元通过使用多个加法器来生成车道步长。请参见图4(B),是本发明实施例提供的一种车道步长生成单元420的结构示意图。如图4(B)所示,车道步长生成单元420包括传输线421和传输线422,以及多个加法器423,加法器423以级连的方式连接。假设现使用M个车道来执行数据并行存取操作,车道的序号分别为车道0,车道1,车道2,车道3,……,车道M-1。车道步长生成单元接收车道信息,车道信息包括来自外部设备的0和来自立即数堆的步长,传输线421用于根据SIMD控制指令将车道信息中的0作为车道0的车道步长,并直接传输至地址生成单元;传输线422用于根据SIMD控制指令将从立即数堆接收到的步长作为车道1的车道步长直接传输至地址生成单元。多个加法器423以级连的方式连接,加法器423用于接收两个来自立即数堆的步长,并计算出和值,且将得到的和值作为车道2的车道步长直接输出至地址生成单元;加法器423还可以用于将其自身的运算结果输出至另一个加法器423;加法器423还可用于将从另一个加法器423接收到的运算结果和来自立即数堆的步长,并计算出和值,且将得到的和值作为车道步长直接输出至地址生成单元。
在另一个优选的实施例中,车道步长生成单元通过使用多个乘法器来生成车道步长。请参见图4(C),是本发明实施例提供的一种车道步长生成单元430的结构示意图。如图4(C)所示,车道步长生成单元430包括M个乘法器431,分别为乘法器0,乘法器1,……,乘法器M-1,其中,0,1,……,M-1为乘法器序号。每个乘法器上均固定写入了一个与其乘法器序号等同的数值。假设现使用M个车道来执行数据并行存取操作,车道的序号分别为车道0,车道1,车道2,车道3,……,车道M-1。车道步长生成单元接收车道信息,车道信息包括来自立即数堆的步长,乘法器0用于接收来自立即数堆的步长,将该步长与其上固定写入的数值相乘,计算出车道0的车道步长,并直接输出至地址生成单元。其余的乘法器的工作过程与乘法器0相同,均为接收来自立即数堆的步长,将该步长与其上固定写入的数值相乘,计算出与其乘法器序号相同的车道的车道步长,并直接将车道步长输出值地址生成单元。上述三个优选的实施例中为每个车道生成的车道步长依次为车道信息中的步长的K倍,K的范围为[0,M-1]。在一些其他优选的实施例中,K的范围还可以根据具体情况具体设定,可选择的区间为[N,M+N-1],N为不小于1的整数。
在图3中,地址生成单元302用于接收车道步长生成单元发送的车道步长和立即数堆210发送的地址生成信息,并将车道步长和地址生成信息求和,所得到的和值即为一个车道的目标地址。图5是本发明实施例提供的一个关于地址生成器的优选实施方式。请参见图5,是本发明实施例提供的一个地址生成器500的结构示意图。如图5所示,地址生成器500包括第一加法器501和第二加法器502,其中,第一加法器501用于接收地址生成信息,并计算出地址生成信息中的基址和偏移量的和值,并将和值作为计算结果发送至第二加法器502,第二加法器502用于接收车道步长和第一加法器501发送的计算结果,并将二者求和,所得到的和值作为车道的目标地址输出。在另一个实施例中,还可以使用第二加法器502接收地址生成信息,并计算出地址生成信息中的基址和偏移量的和值,并将和值发送至第一加法器501。使用第一加法器501接收车道步长和第二加法器502发送的计算结果,并将二者求和,所得到的和值作为车道的目标地址输出。
在图2中,车道230接收到各自的目标地址后,同时开始启动运行,按照各自的目标地址中的组编号定位存储组,进一步按照实际地址访问对应的存储体,进行数据的存取操作。请参见图6,是本发明实施例提供的一种车道600的结构示意图。如图6所示,车道600中包括控制判断逻辑器件601,寄存器堆602,算术逻辑单元ALU603。其中控制判断逻辑器件601用于接收目标地址,并识别其中的组编号和实际地址,以根据组编号定位车道将要访问的存储组以及根据实际地址定位存储组中的存储体。寄存器堆602中包括多个寄存器,其中包括目标寄存器,目标寄存器是用于存放源操作数的寄存器,该源操作数为车道访问存储器装载的数据,以供算术逻辑单元ALU603进行计算;寄存器堆602中还包括结果寄存器,结果寄存器用于存放ALU603的运算结果的。车道在执行装载指令时将存储器中的目标地址中的数据装载到目标寄存器,在执行存储指令时将结果寄存器中的数据存储到存储器中的目标地址中。
本发明实施例提供的并行存取装置,通过使用车道步长生成单元来根据被设置为奇数的步长来生成每个车道的车道步长,并进一步使用车道步长来生成车道的目标地址。保证了为每个车道生成的地址之间不存在冲突,使得多个车道并行访问存储器进行存取操作时能按照各自的目标地址准确有序地进行,避免了车道并行存取出现访问冲突的情况。现有技术中通常通过设置冲突检测方法或装置来解决多车道并行访问冲突的问题。相对于现有技术,本申请不再需要对车道的目标地址进行冲突检测,即相关硬件中也不再需要设置相关的冲突检测装置,这不仅提高了多车道并行访问进行存取操作的执行效率,而且降低了相关硬件的功耗,同时还缩短了进行数据并行存取的整体耗时。
为更好的理解本发明,现给出使用前述并行存取方法和并行存取装置的工作过程的简单示例。请参见图7,是本发明实施例提供的需要存储的数据样本。如图7所示,数据样本包括4个矩阵,以上四个矩阵均已存放至车道中的寄存器堆中相应的目标寄存器中。请参见图8,是本发明实施例提供的用于存储图7中的数据的RAM存储器。如图8所示,RAM存储器被划分为四个存储组,由于车道的数量M等于4,故RAM存储器中物理地址的低2位(即log24=2)表示的是组编号。每一个存储组有一个读写端口,每个存储组包括四个存储体,每个存储体对应一个物理地址,即物理地址为0000-1100的存储体为一个存储组,组编号00;物理地址为0001-1101的存储体为一个存储组,组编号为01;物理地址为0010-1110存储体为一个存储组,组编号为10;物理地址为1100-1111的存储体为一个存储组,组编号为11。
现在欲将如图7所示的四个矩阵并行存储到图8所示的存储器中,则需要四个车道,进行同时访问存储。请参见图9,是本发明实施例提供的一种四车道的并行存取装置900的结构示意图。如图9所示,并行存取装置900包括立即数堆910,地址生成器920,四个车道930,RAM存储器940,四个存储组941。其中,地址生成器920在接收到经解码器解码后的SIMD存储控制指令后,根据SIMD控制指令获取相关信息依次生成四个目标地址,并将生成的四个目标地址发送至对应的车道,车道接收到目标地址后同时启动,并行访问RAM存储器940进行存储操作。RAM存储器940与图8中所示的存储器800等同。一条SIMD存储控制指令可完成矩阵中的一个元素的存储操作。具体过程如下:
地址生成器920根据接收到的SIMD控制指令后向立即数堆910发送获取地址生成信息和车道信息的请求,立即数堆910接收到请求后发送相应的地址生成信息和车道信息至地址生成器920,地址生成信息中包括基址和偏移量,车道信息中包括步长和0(也即是
0000),此处为易于理解将车道信息的基址设定为0000;偏移量设定为为0000,在一些其他的实施例中,基址和偏移量还可以是其他值;步长设定为3,即0011。值得注意的是,本申请提供的步长还可以是其他奇数,此处选择步长为3仅为便于理解的示例性举例。请参见图10,是本发明实施例提供的一种用于计算四车道的步长生成单元1000的结构示意图。地址生成器920接收到地址生成信息和车道信息后,使用如图10所示的车道步长生成单元1000生成车道步长。如图10所示,车道步长生成单元1000包括传输线1001,传输线1002,移位器1003和加法器1004。使用如图5所示的地址生成单元500生成目标地址。
当生成车道0的目标地址时,车道步长生成单元1000接收车道信息,车道信息中包括0000和步长0011,其中0000来自外部设备,步长0011来自立即数堆910。车道步长生成单元1000根据SIMD控制指令使用传输线1001直接输出车道信息中的0000作为车道0的的车道步长(即步长0011的0倍),并直接输出至地址生成单元500,地址生成单元500接收到车道步长0000和地址生成信息(即基址0000和偏移量0000)后,通过第一加法器501将基址0000和偏移量0000相加,并将得到的结果0000发送至第二加法器502;通过第二加法器502将车道步长0000与第一加法器501的结果0000相加,得到的结果0000即为车道0的目标地址,并将目标地址0000直接发送至车道0。车道0的目标地址生成完毕后,地址生成器920继续为车道1生成目标地址。
当生成车道1的目标地址时,车道步长生成单元1000接收车道信息,车道信息中包括0000和步长0011,其中0000来自外部设备,步长0011来自立即数堆910。则车道步长生成单元1000根据SIMD控制指令使用传输线1002直接输出车道信息中的步长0011作为车道1的的车道步长(即步长0011的1倍),并直接输出至地址生成单元500,地址生成单元500接收到车道步长0011和地址生成信息(即基址0000和偏移量0000)后,通过第一加法器501将基址0000和偏移量0000的相加,并将得到的结果0000发送至第二加法器502;通过第二加法器502将车道步长0011与第一加法器501的结果0000相加,得到的结果0011即为车道1的目标地址,并将目标地址0011直接发送至车道1。车道1的目标地址生成完毕后,地址生成器920继续为车道2生成目标地址。
当生成车道2的目标地址时,步长生成单元1000接收车道信息,车道信息中包括0000和步长0011,其中0000来自外部设备,步长0011来自立即数堆910。则车道步长生成单元1000根据SIMD控制指令将步长0011发送至移位器1003,移位器1003将步长0011左移一位,得到移位结果0110,将移位结果0110作为车道2的的车道步长(即步长0011的2倍),并直接输出至地址生成单元500,地址生成单元500接收到车道步长0110和地址生成信息(即基址0000和偏移量0000)后,通过第一加法器501将基址0000和偏移量0000的相加,并将得到的结果0000发送至第二加法器502;通过第二加法器502将车道步长0110与第一加法器501的结果0000相加,得到的结果0110即为车道1的目标地址,并将目标地址0110直接发送至车道2。车道2的目标地址生成完毕后,地址生成器920继续为车道3生成目标地址。
当生成车道3的目标地址时,步长生成单元1000接收车道信息,车道信息中包括0000和步长0011,其中0000来自外部设备,步长0011来自立即数堆910。则车道步长生成单元1000根据SIMD控制指令将步长0011发送至移位器1003,移位器1003将步长0011左移一位,得到移位结果0110,之后移位器1003还将移位结果0110发送至加法器1004,同时车道步长生成单元1000还根据SIMD控制指令发送步长0011至加法器1004,加法器1004将接收到的移位结果0110和步长0011求和,并将得到的和值1001作为车道3的的车道步长(即步长0011的3倍),输出至地址生成单元500,地址生成单元500接收到车道步长1001和地址生成信息(即基址0000和偏移量0000)后,通过第一加法器501将基址0000和偏移量0000相加,并将得到的结果0000发送至第二加法器502;通过第二加法器502将车道步长1001与第一加法器501的结果0000相加,得到的结果1001即为车道1的目标地址,并将目标地址1001直接发送至车道3。
四个车道的目标地址均生成完毕后,SIMD控制指令控制四个车道同时启动运行,并行访问存储器800中与各个车道各自的目标地址中的组编号对应的存储组,且进一步访问与目标地址中的实际地址对应的存储体进行存储矩阵元素的操作。即车道0将矩阵A1中的第一个元素1存储至存储组00中的存储体00,也即是图8中的物理地址为0000的存储体中;车道1将矩阵A2中的第一个元素2存储至存储组11中的存储体00,也即是图8中的物理地址为0011的存储体中;车道2将矩阵A3中的第一个元素3存储至存储组10中的存储体01,也即是图8中的物理地址为0110的存储体中;车道3将矩阵A4中的第一个元素4存储至存储组01中的存储体10,也即是图8中的物理地址为1001的存储体中。存储完成后得到存储器800的存储状态如图11所示。
存储每个矩阵中的剩余三个元素的过程与上述过程类似,区别在于,存储第二个元素时的SIMD存储控制指令控制地址生成器920从立即数堆910中获取的基址为0100;存储第三个元素时的SIMD存储控制指令控制地址生成器920从立即数堆910中获取的基址为1000;存储第四个元素时的SIMD存储控制指令控制地址生成器920从立即数堆910中获取的基址为1100。全部完成后存储器800的存储状态如图12所示。即要完成矩阵中的四个元素的存储需要四个SIMD控制指令,每一个SIMD控制指令均可完成地址生成到车道访问存储器进行数据存储等一系列操作的控制。
数据读取(装载)的过程与前述存储过程类似,区别在于,存储过程是在地址生成器为每个车道生成目标地址后,四个车道同时启动,并行将各个车道中的寄存器堆中存储的矩阵数据存储至存储器中相应的目标地址;读取过程是在地址生成器以与存储过程相同的步长和基址以及偏移量为每个车道生成目标地址后,四个车道同时启动运行,并行将存储器中各个车道对应的目标地址中存储的矩阵数据装载至各个车道中的寄存器堆中。具体过程此处不再赘述。应当理解的是,以上仅以四车道为例对本发明提供的并行存取方法和并行存取装置的工作过程进行简单描述,并不代表本发明只能实现四车道的并行存取。可理解的,本发明提供的并行存取方法和装置可以轻易从四车道的原理和情形推广到M个车道,其中,M为不小于2的整数。
请参见图13,是本发明实施例提供的一种芯片1300的结构示意图。如图13所示的芯片1300包括一个或多个处理器1301、通信接口1302和计算机可读存储介质1303,处理器1301、通信接口1302和计算机可读存储介质1303可通过总线方式连接,也可通过无线传输等其他手段实现通信。本发明实施例以通过总线1304连接为例。其中,该计算机可读存储介质1303用于存储指令,该处理器1301包括上述实施例中揭示的并行存取装置,用于执行该计算机可读存储介质1303存储的指令。在另一个实施例中该计算机可读存储介质1303用于存储程序代码,且处理器1301可以调用计算机可读存储介质1303中存储的程序代码实现前述并行存取装置的相关功能,具体可参见前述实施例中的相关阐述,这里不再赘述。
应当理解,在本发明实施例中,所称处理器1301可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信接口1302可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块或装置设备进行通信。例如,本申请实施例中通信接口1302具体可用于接收用户输入的输入数据;或者接收外部设备的数据等。
计算机可读存储介质1303可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器还可以包括上述种类的存储器的组合。存储器可用于存储一组程序代码,以便于处理器调用计算机可读存储介质中存储的程序代码以实现前述并行存取方法或并行存取装置的相关功能。
需要说明的,图13仅仅是本发明实施例的一种可能的实现方式,实际应用中,芯片还可以包括更多或更少的部件,这里不作限制。关于本发明实施例中未示出或未描述的内容,可参见前述方法实施例中的相关阐述,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,前述并行存取方法的流程得以实现。该存储介质包括ROM/RAM、磁碟、光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例公开了一种并行存取方法、装置、处理器、芯片及计算机可读存储介质,可用于实现集成电路技术领域中数据的并存储或读取的操作。通过地址生成器为将要并行执行的多个车道生成目标地址,车道按照目标地址访问RAM存储器中与之相应的位置,并行进行数据存取操作。本发明实施例中的地址生成器在为车道生成目标地址时,使用车道步长生成单元来生成车道步长,其中车道步长为步长的K倍,且在同一条SIMD指令控制下,车道步长生成单元为每一个车道生成的车道步长不同,以此来确保地址生成单元使用车道步长和基址以及偏移量来生成的目标地址不会构成冲突,也即是本发明在为车道生成地址的时候就规避了访问冲突的情况。因此,本发明相对于现有技术不再需要提供地址冲突检测装置,或者说省略了地址冲突检测相关的步骤。从而在保证并行的车道正确访问存储器中的存储组的前提下能够降低相关硬件的功耗,同时还缩短了进行数据并行存取操作的整体耗时。
以上所述,仅为本发明的部分较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本本技术领域的技术人员在本发明揭露的技术范围内,在不付出创造性劳动的前提下,轻易得到的各种的等效的修改或替换,这些修改或替换都应该涵盖在本发明的包括范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种并行存取装置,包括存储器和M个车道,所述存储器包括多个存储组,其特征在于,所述存储组的数量不小于所述M;所述装置还包括立即数堆和地址生成器,所述立即数堆连接所述地址生成器,所述地址生成器连接每个所述车道,每个所述车道均连接每个所述存储组;
所述立即数堆用于提供地址生成信息和步长,所述步长为奇数;
所述地址生成器用于接收SIMD控制指令和车道信息以及所述地址生成信息,并为所述车道生成目标地址;所述车道信息包括所述步长;所述地址生成器包括车道步长生成单元以及地址生成单元,其中:
所述车道步长生成单元用于根据所述SIMD控制指令和所述车道信息生成车道步长,所述车道步长为所述步长的K倍,所述K为整数,所述K的取值范围为[N,M+N-1],所述N为不小于0的整数;
所述地址生成单元用于根据所述SIMD控制指令将所述地址生成信息和所述车道步长求和,并将得到的和值作为所述目标地址输出至相应的车道;
所述M个车道用于根据各自的所述目标地址访问对应的所述存储组,并行进行存取操作。
2.根据权利要求1所述的存取装置,其特征在于,所述车道步长生成单元包括算术运算器件,所述算术运算器件用于生成所述车道步长。
3.根据权利要求2所述的存取装置,其特征在于,所述算术运算器件包括多个加法器,所述多个加法器级连。
4.根据权利要求2所述的存取装置,其特征在于,所述算术运算器件包括加法器和移位器,所述车道步长生成单元用所述移位器输出A类车道步长或用所述加法器输出B类车道步长。
5.根据权利要求1所述的存取装置,其特征在于,所述地址生成信息包括基址和偏移量,所述地址生成单元包括至少两个加法器,所述两个加法器用于将所述基址和所述偏移量以及所述车道步长求和,得到的和值作为所述目标地址。
6.一种并行存取方法,提供一个存储器和M个车道,其特征在于,所述方法包括以下步骤:
步骤110:将所述存储器划分为多个存储组,所述存储组的数量不小于所述M;
步骤120:获取SIMD控制指令,根据所述SIMD控制指令依次生成至少两个目标地址,并将所述至少两个目标地址发送至所述M个车道中对应的车道,且一个目标地址仅能发送至一个车道;生成单个所述目标地址的过程包括:
根据所述SIMD控制指令获取车道信息,所述车道信息包括步长,所述步长为奇数;根据所述车道信息生成车道步长,其中,所述车道步长为所述步长的K倍,所述K为区间[N,M+N-1]内的整数,所述N为不小于0的整数;
根据所述SIMD控制指令获取地址生成信息,将所述地址生成信息与所述车道步长求和,并根据所述SIMD控制指令将得到的和值作为一个所述目标地址直接发送至对应的所述车道;每次根据所述SIMD控制指令生成单个所述目标地址的过程中生成的所述车道步长各不相同;
步骤130:根据所述SIMD控制指令生成的目标地址均已发送至对应的车道后,所述对应的车道同时开始运行,按照各自接收到的所述目标地址访问对应的所述存储组,并行进行存取操作。
7.根据权利要求6所述的存取方法,其特征在于,所述地址生成信息包括基址和偏移量,所述步骤120包括将所述基址和所述偏移量以及所述车道步长求和,得到的和值作为所述目标地址。
8.根据权利要求6所述的存取方法,其特征在于,还提供车道步长生成单元,所述车道步长生成单元包括算术运算器件,所述SIMD控制指令控制所述算术运算器件生成所述车道步长。
9.根据权利要求6-8任一项所述的存取方法,其特征在于,每个所述存储组有各自的组编号,所述目标地址中的低log2M位为所述组编号。
10.一种芯片,其特征在于,包括:
计算机可读存储介质,用于存储计算机程序;
处理器,至少包括权利要求1-5任一项所述的存取装置;所述处理器用于执行所述计算机程序时实现如权利要求6-9任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911406669.XA CN111158757B (zh) | 2019-12-31 | 2019-12-31 | 并行存取装置和方法以及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911406669.XA CN111158757B (zh) | 2019-12-31 | 2019-12-31 | 并行存取装置和方法以及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158757A true CN111158757A (zh) | 2020-05-15 |
CN111158757B CN111158757B (zh) | 2021-11-30 |
Family
ID=70559647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911406669.XA Active CN111158757B (zh) | 2019-12-31 | 2019-12-31 | 并行存取装置和方法以及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158757B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719559A (zh) * | 2022-07-20 | 2023-09-08 | 广州众远智慧科技有限公司 | 红外扫描的方法以及其装置 |
WO2023236929A1 (zh) * | 2022-06-06 | 2023-12-14 | 上海寒武纪信息科技有限公司 | 基于指令读取数据中的目标数据的方法及其设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240895A1 (en) * | 2008-03-24 | 2009-09-24 | Lars Nyland | Systems and methods for coalescing memory accesses of parallel threads |
US20120151156A1 (en) * | 2010-12-08 | 2012-06-14 | International Business Machines Corporation | Vector gather buffer for multiple address vector loads |
CN103246541A (zh) * | 2013-04-27 | 2013-08-14 | 中国人民解放军信息工程大学 | 自动并行化多级并行代价评估方法 |
CN103777924A (zh) * | 2012-10-23 | 2014-05-07 | 亚德诺半导体技术公司 | 用于简化寄存器中对单指令多数据编程的处理器体系结构和方法 |
CN104424158A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于通用单元的高性能处理器***和方法 |
CN104424129A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存***和方法 |
CN104699624A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 面向fft并行计算的无冲突存储访问方法 |
CN105005465A (zh) * | 2015-06-12 | 2015-10-28 | 北京理工大学 | 基于比特或字节并行加速的处理器 |
CN105446773A (zh) * | 2015-11-18 | 2016-03-30 | 上海兆芯集成电路有限公司 | 高速缓存行的非对齐加载指令的推测并行执行***和方法 |
CN105893319A (zh) * | 2014-12-12 | 2016-08-24 | 上海芯豪微电子有限公司 | 一种多车道/多核***和方法 |
CN107003846A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 用于向量索引加载和存储的方法和装置 |
CN109690956A (zh) * | 2016-09-22 | 2019-04-26 | 高通股份有限公司 | 邻接存储器地址处的数据存储 |
CN110096450A (zh) * | 2018-01-29 | 2019-08-06 | 北京思朗科技有限责任公司 | 多粒度并行存储***及存储器 |
-
2019
- 2019-12-31 CN CN201911406669.XA patent/CN111158757B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240895A1 (en) * | 2008-03-24 | 2009-09-24 | Lars Nyland | Systems and methods for coalescing memory accesses of parallel threads |
US20120151156A1 (en) * | 2010-12-08 | 2012-06-14 | International Business Machines Corporation | Vector gather buffer for multiple address vector loads |
CN103777924A (zh) * | 2012-10-23 | 2014-05-07 | 亚德诺半导体技术公司 | 用于简化寄存器中对单指令多数据编程的处理器体系结构和方法 |
CN103246541A (zh) * | 2013-04-27 | 2013-08-14 | 中国人民解放军信息工程大学 | 自动并行化多级并行代价评估方法 |
CN104424158A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于通用单元的高性能处理器***和方法 |
CN104424129A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存***和方法 |
CN105893319A (zh) * | 2014-12-12 | 2016-08-24 | 上海芯豪微电子有限公司 | 一种多车道/多核***和方法 |
CN107003846A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 用于向量索引加载和存储的方法和装置 |
CN104699624A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 面向fft并行计算的无冲突存储访问方法 |
CN105005465A (zh) * | 2015-06-12 | 2015-10-28 | 北京理工大学 | 基于比特或字节并行加速的处理器 |
CN105446773A (zh) * | 2015-11-18 | 2016-03-30 | 上海兆芯集成电路有限公司 | 高速缓存行的非对齐加载指令的推测并行执行***和方法 |
CN109690956A (zh) * | 2016-09-22 | 2019-04-26 | 高通股份有限公司 | 邻接存储器地址处的数据存储 |
CN110096450A (zh) * | 2018-01-29 | 2019-08-06 | 北京思朗科技有限责任公司 | 多粒度并行存储***及存储器 |
Non-Patent Citations (4)
Title |
---|
TONG GENG. ETC: "An Access-Pattern-Aware On-Chip Vector Memory System with Automatic Loading for SIMD Architectures", 《2018 IEEE HIGH PERFORMANCE EXTREME COMPUTING CONFERENCE (HPEC)》 * |
周干民: "8位微处理器与IIC总线接口软核的设计与研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
周西汉: "一种基于奔腾SIMD指令的快速背景提取方法", 《计算机工程与应用》 * |
褚征: "基于内存云的大块数据对象并行存取策略", 《计算机应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023236929A1 (zh) * | 2022-06-06 | 2023-12-14 | 上海寒武纪信息科技有限公司 | 基于指令读取数据中的目标数据的方法及其设备 |
CN116719559A (zh) * | 2022-07-20 | 2023-09-08 | 广州众远智慧科技有限公司 | 红外扫描的方法以及其装置 |
CN116719559B (zh) * | 2022-07-20 | 2024-06-11 | 广州众远智慧科技有限公司 | 红外扫描的方法以及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111158757B (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213962B (zh) | 运算加速器 | |
US8984043B2 (en) | Multiplying and adding matrices | |
US7836116B1 (en) | Fast fourier transforms and related transforms using cooperative thread arrays | |
US7640284B1 (en) | Bit reversal methods for a parallel processor | |
CN110415157B (zh) | 一种矩阵乘法的计算方法及装置 | |
EP2423821A2 (en) | Processor, apparatus, and method for fetching instructions and configurations from a shared cache | |
CN111183418B (zh) | 可配置硬件加速器 | |
KR20200108774A (ko) | 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법 | |
CN111158757B (zh) | 并行存取装置和方法以及芯片 | |
US11138106B1 (en) | Target port with distributed transactions | |
US11487342B2 (en) | Reducing power consumption in a neural network environment using data management | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
EP4022524A1 (en) | Copy data in a memory system with artificial intelligence mode | |
US10942889B2 (en) | Bit string accumulation in memory array periphery | |
CN116051345A (zh) | 图像数据处理方法、装置、计算机设备及可读存储介质 | |
US10942890B2 (en) | Bit string accumulation in memory array periphery | |
US10997277B1 (en) | Multinomial distribution on an integrated circuit | |
EP3931707A1 (en) | Storage device operation orchestration | |
CN111931937A (zh) | 图像处理模型的梯度更新方法、装置及*** | |
US11669489B2 (en) | Sparse systolic array design | |
US11941371B2 (en) | Bit string accumulation | |
CN114116012B (zh) | 基于混洗操作的fft码位反序算法向量化实现方法及装置 | |
EP4022525A1 (en) | Transfer data in a memory system with artificial intelligence mode | |
WO2022220835A1 (en) | Shared register for vector register file and scalar register file | |
CN118012519A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210209 Address after: 311201 No. 602-11, complex building, 1099 Qingxi 2nd Road, Hezhuang street, Qiantang New District, Hangzhou City, Zhejiang Province Applicant after: Zhonghao Xinying (Hangzhou) Technology Co.,Ltd. Address before: 518057 5-15, block B, building 10, science and technology ecological park, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: Shenzhen Xinying Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |