CN116757132A - 异构多核fpga电路架构、构建方法及数据传输方法 - Google Patents
异构多核fpga电路架构、构建方法及数据传输方法 Download PDFInfo
- Publication number
- CN116757132A CN116757132A CN202310438719.2A CN202310438719A CN116757132A CN 116757132 A CN116757132 A CN 116757132A CN 202310438719 A CN202310438719 A CN 202310438719A CN 116757132 A CN116757132 A CN 116757132A
- Authority
- CN
- China
- Prior art keywords
- risc
- processor
- cache
- arm
- fpga
- 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
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000005540 biological transmission Effects 0.000 title claims abstract description 10
- 238000010276 construction Methods 0.000 title abstract description 8
- 238000013461 design Methods 0.000 claims abstract description 15
- 230000002093 peripheral effect Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 10
- 239000000872 buffer Substances 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000007547 defect Effects 0.000 abstract description 2
- 230000006872 improvement Effects 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属于集成电路设计技术领域,具体涉及RISC‑V与ARM协同工作的异构多核FPGA电路架构、构建方法及数据传输方法。针对现有RISC‑V处理器与ARM处理器未能实时同步或协同工作的不足,本发明采用如下技术方案:RISC‑V与ARM协同工作的FPGA电路架构,包括:ARM处理器,由FPGA芯片自带,具有ARM一级指令数据cache缓存;RISC‑V处理器,基于FPGA PL设计,具有RISC‑V一级指令数据cache缓存;共用的二级cache缓存模块,从FPGA片外预取数据至片上缓存;总线模块;存储管理模块,连接二级cache缓存模块和RISC‑V处理器,管理ARM处理器、RISC‑V处理器、二级cache缓存模块的数据输入和输出。本发明的有益效果是:实现数据高效同步。
Description
技术领域
本发明属于集成电路设计技术领域,具体涉及RISC-V与ARM协同工作的异构多核FPGA电路架构/构建方法及数据传输方法。
背景技术
RISC-V作为开源指令集架构,正在打破ARM、x86处理器架构的垄断局面,越来越受到产业、学术、研究机构等的重视。
FPGA可编程系统分为PS和PL两部分。PS为ARM CPU IP,负责运行系统软件程序。PL为FPGA可编程逻辑电路部分,可根据电路需求灵活编程实现不同的功能电路。FPGA系统使用总线(包括AXI(Advanced eXtensible Interface)、AHB、APB等)接口将PS、PL与其他电路单元IP((intellectual property core,知识产权核)相连,从而实现PL与PS互联。
随着RISC-V指令集和处理器的发展,越来越多的异构多核处理器采用RISC-V指令集架构处理器。对于PS、PL组成的FPGA系统,RISC-V作为由用户设计并采用的CPU IP模块之一,需要在FPGA系统中通过各种验证手段进行验证。因此,设计合理、高效的RISC-V与ARM协同工作的异构多核处理器FPGA架构,是快速验证RISC-V CPU IP,并快速搭建异构多核处理器架构的必要且重要手段。
CN111124968A-一种基于FPGA与RISC_V的互联交换方法公开了FPGA芯片与RISC-V芯片之间进行数据交互的架构、方法和协议,但是,该专利申请中,FPGA与RISC-V是两个不同的芯片,虽然通过高速接口连接,数据传输较快,但是仍不足以实现实时同步。
CN114528174A-基于SoC FPGA的RISC_V硬件测试方法及系统介绍了通过一系列配置步骤,将FPGA配置好的RISC-V处理器通过HPS总线与UART接口实现数据通信,从而来测试RISC-V处理器的正确性。但是,该专利申请仅局限于RISC-V处理器的简单测试,并未着眼于如何使RISC-V处理器与PS ARM处理器协同工作,共同实现设计复杂的异构多核处理器。
相关术语:
1、FPGA:可编程逻辑器件;
2、RISC-V:第五代精简指令集;
3、ARM:ARM公司的精简指令集;
4、PS:处理系统(Processing System),就是FPGA芯片中ARM IP部分,可运行软件程序;
5、PL:可编程逻辑(Progarmmable Logic),就是FPGA芯片可编程逻辑电路部分,可根据要求灵活编程实现不同功能电路;
6、IP:知识产权核(intellectual property core)。
发明内容
本发明针对现有RISC-V处理器与ARM处理器未能实时同步或协同工作的不足,提供一种RISC-V与ARM协同工作的异构多核FPGA电路架构,实现RISC-V处理器与ARM处理器的异构多核FPGA电路架构,共同完成异构多核处理器的执行程序。本发明同时提供一种RISC-V与ARM协同工作的异构多核FPGA电路架构的构建方法及数据传输方法。
为实现上述目的,本发明采用如下技术方案:RISC-V与ARM协同工作的异构多核FPGA电路架构,所述RISC-V与ARM协同工作的异构多核FPGA电路架构包括:
ARM处理器,由FPGA芯片自带,具有ARM一级指令数据cache缓存;
RISC-V处理器,基于FPGA PL设计,具有RISC-V一级指令数据cache缓存;
共用的二级cache缓存,从FPGA片外预取数据至片上缓存;
总线模块,连接RISC-V一级指令数据cache缓存和二级cache缓存,连接ARM一级指令数据cache缓存和二级cache缓存;
存储管理模块,连接二级cache缓存和RISC-V处理器,
对ARM处理器的读写数据、RISC-V处理器的读写数据、二级cache缓存的读写数据,进行数据一致性管理和控制。
本发明的RISC-V与ARM协同工作的异构多核FPGA电路架构,其ARM处理器具有FPGA芯片自带的ARM一级指令数据cache缓存,RISC-V处理器的RISC-V一级指令数据cache缓存和二级cache缓存根据ARM一级指令数据cache缓存进行设计,从而ARM处理器和RISC-V处理器间可通过ARM一级指令数据cache缓存、RISC-V一级指令数据cache缓存和二级cache缓存实现高效数据同步;RISC-V处理器,基于FPGA PL设计,相比现有技术的FPGA芯片与RISC-V芯片之间仅通过高速接口相连,能够更快更稳定的数据同步;RISC-V处理器的选择范围大;不同的处理器中运行不同应用程序,具有更高的灵活度,更好的性能和更低功耗。指令数据cache缓存包括指令cache缓存和数据cache缓存。
作为改进,RISC-V处理器有多个,ARM处理器有多个,以实现更多功能。
作为改进,RISC-V处理器和ARM处理器形成异构多核处理器,共用同一个二级cache缓存的异构多核处理器的数量不超过4个;当异构多核处理器的数量多于4个时,设置多个二级cache缓存;当二级cache缓存不足以支撑异构多核处理器性能要求时,设置三级cache数据缓存,三级cache缓存通过缓存一致性协议和总线与二级Cache缓存相连。
作为改进,每个RISC-V处理器具有专有的一级指令数据cache缓存;各RISC-V处理器为不同性能、不同功能、不同结构的处理器。当然,各RISC-V处理器也可以部分相同部分不同。
作为改进,ARM处理器的一级指令数据cache缓存已经定制在ARM处理器模块中,应用中只需调用即可。
作为改进,总线模块包括符合AXI、AHB、APB总线协议的控制电路和接口,并符合总线主、从控制协议和模式。
作为改进,RISC-V处理器还包括中断处理单元和流水级逻辑,中断处理单元负责相应RISC-V处理器的中断请求,流水级逻辑负责控制RISC-V指令解码的流水线执行过程。
作为改进,二级cache缓存具有特定的数据访问控制机制,通过hit/miss判断机制,从FPGA片外预取数据至片上缓存,从而减少RISC-V处理器与ARM处理器内的一级cache缓存的数据访问延迟。
作为改进,ARM处理器与RISC-V处理器互为主从处理器,以对比不同异构多核处理器设置的性能优劣程度。
作为改进,ARM处理器包含中断处理模块、外设模块、内部总线模块、处理器核心模块和总线接口模块,当RISC-VCPU为主处理器时,配置单独的外设模块,为异构多核处理器FPGA芯片提供外设数据的输入输出。中断处理模块用于ARM处理器中运行的应用程序中断调用,保存ARM寄存器数据和状态,并与异构多核系统控制相结合实现异构多核处理器之间程序运行的相互协调。主处理器才有权访问外设,如果ARM处理器为主处理器,可以直接用自己已有的外设,但是当ARM为从处理器时,则ARM已有的外设不能作为异构多核处理器的外设,只能在主处理器配置外设。
RISC-V与ARM协同工作的异构多核FPGA电路架构构建方法,用于得到前述的RISC-V与ARM协同工作的异构多核FPGA电路架构,包括以下步骤:
步骤S1、为ARM处理器配置中断处理模块、外设模块、内部总线模块、处理器核心模块和总线接口模块;
步骤S2、基于FPGA设计RISC-V处理器,包括:设计符合RISC-V指令集标准约定的RISC-V基础指令集、扩展指令集、用户自定义指令集CPU,设计乱序或顺序多流水线指令执行结构,同时,基于FPGA芯片本身的存储和PL单元,设计RISC-V处理器的逻辑电路以及SRAM或buffer单元;
步骤S3、基于FPGA设计cache缓存,包括:基于FPGA芯片的存储单元资源设计一级/二级cache的Tag、SRAM单元,同时基于FPGA芯片的逻辑电路电源设计一级/二级cache读取控制器子模块,将设计的cache电路整合为ARM处理器中的一级数据缓存Cache、一级指令缓存Cache模块、RISC-V处理器中的一级数据缓存Cache、一级指令缓存Cache模块以及共用的二级cache缓存;
步骤S4、基于FPGA设计总线模块,包括:用总线模块连接RISC-V处理器的一级数据缓存Cache和二级cache缓存,连接ARM处理器的一级数据缓存Cache和二级cache缓存;
步骤S5、基于FPGA设置存储管理模块,包括:存储管理模块连接二级cache缓存和RISC-V处理器,管理ARM处理器、RISC-V处理器、二级cache缓存的数据输入和输出。
一种RISC-V与ARM协同工作的异构多核FPGA电路架构的数据传输方法,包括以下步骤:
步骤S11、二级cache缓存从FPGA片外预取数据至片上缓存;
步骤S12、ARM处理器的ARM一级指令数据cache缓存、RISC-V处理器的RISC-V一级指令数据cache缓存通过总线模块连接至二级cache缓存;
步骤S13、存储管理模块将ARM处理器、RISC-V处理器、二级cache缓存的读写数据对应的虚拟地址转换成物理地址,通过对缓存页面的访问进行权限检查,实现数据一致性管理,同时,获取地址对应权限属性,供控制使用。
本发明的RISC-V与ARM协同工作的异构多核FPGA电路架构的有益效果是:其ARM处理器具有FPGA芯片自带的ARM一级指令数据cache缓存,RISC-V处理器的RISC-V一级指令数据cache缓存和二级cache缓存根据ARM一级指令数据cache缓存进行设计,从而ARM处理器和RISC-V处理器间可通过ARM一级指令数据cache缓存、RISC-V一级指令数据cache缓存和二级cache缓存实现高效数据同步;RISC-V处理器,基于FPGA PL设计,RISC-V处理器是作为FPGA芯片内部异构多核处理器的组成部分,与ARM处理器共同组成高性能异构多核处理器,相比现有技术的FPGA芯片与RISC-V芯片之间仅通过高速接口相连,能够更快更稳定的数据同步;RISC-V处理器的选择范围大。
进一步地,还具有以下优点:
RISC-V CPU与ARM CPU协同工作的异构多核处理器FPGA可以在异构多核处理器芯片流片之前,完整的验证异构多核处理器各组成模块的系统功能,包括运行操作系统的正确性、执行应用程序的正确性、异构多核之间数据交换正确性、中断处理、以及所设计的各种外设、存储、管理、cache等各类模块的正确性;
对异构多核处理器的性能进行系统评估,当ARM PS处理器与RISC-V处理器互为主—从处理器时,可以对比不同异构多核处理器设置的性能优劣程度,从而为异构多核处理器的优化提供最直接的系统评价指标;
所设计的异构多核处理器FPGA芯片可以直接作为低成本、可维护的处理器芯片解决方案,直接应用于产品中,作为灵活的、低成本、高性能系统处理器核心;
该异构多核处理器FPGA芯片相比于大投入的芯片流片来说具有架构灵活、设计成本低廉、性能强大、快速迭代、可提前进行应用软件开发等优势。
附图说明
图1是本发明实施例一的RISC-V与ARM协同工作的异构多核FPGA电路架构的结构框图。
图2是本发明实施例一的RISC-V与ARM协同工作的异构多核FPGA电路架构构建方法的流程图。
具体实施方式
下面结合本发明创造实施例的附图,对本发明创造实施例的技术方案进行解释和说明,但下述实施例仅为本发明创造的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的其他实施例,都属于本发明创造的保护范围。
参见图1,本发明实施例一的RISC-V与ARM协同工作的异构多核FPGA电路架构,其为异构多核电路架构,所述RISC-V与ARM协同工作的异构多核FPGA电路架构包括:
ARM处理器,由FPGA芯片自带,具有ARM一级指令数据cache缓存;
RISC-V处理器,基于FPGA PL设计,具有RISC-V一级指令数据cache缓存;
共用的二级cache缓存,从FPGA片外预取数据至片上缓存;
总线模块,连接RISC-V一级指令数据cache缓存和二级cache缓存,连接ARM一级指令数据cache缓存和二级cache缓存;
存储管理模块,连接二级cache缓存和RISC-V处理器,
对ARM处理器的读写数据、RISC-V处理器的读写数据、二级cache缓存的读写数据,进行数据一致性管理和控制。
本实施例中,存储管理模块的具体控制过程是:将ARM处理器、RISC-V处理器、二级cache缓存的读写数据对应的虚拟地址转换成物理地址,通过对缓存页面的访问进行读/写/执行权限检查,实现数据一致性管理,同时,获取地址对应权限属性,供控制使用。
本实施例中,二级cache缓存负责存储从FPGA芯片外部DDR中读取或准备写出的数据。
本实施例中,RISC-V处理器基于FPGA芯片存储资源和PL电路逻辑资源设计。RISC-V处理器内部流水线包括存储buffer和逻辑电路。存储buffer基于FPGA芯片所提供的存储电路资源进行替换,同时调整RISC-V处理器的存储buffer模块必要的控制逻辑和接口设计。RISC-V处理器流水线等逻辑和控制电路基于FPGA芯片所提供的LUT电路资源进行综合实现,从而完成完整的RISC-VCPU的FPGA设计。
本实施例中,总线模块负责RISC-V、ARM异构多核处理器数据和控制信号的输入和输出。总线模块具备足够的带宽和数据位宽,能够快速在FPGA电路架构的各PS和PL电路模块中进行数据传输。
本实施例中,RISC-V处理器有多个,ARM处理器有多个,以实现更多功能。
本实施例中,存储管理模块是操作系统运行、异构多核数据、多线程、多任务同步的重要控制模块。不同应用系统任务/线程在不同的CPU核内执行,一个任务如果需要另外一个任务的计算结果数据,则便需要异构多核处理器之间同步运行的节点,并进行数据对齐。存储管理模块同样基于FPGA PL逻辑电路模块进行设计。
本实施例中,RISC-V处理器和ARM处理器形成异构多核处理器,共用同一个二级cache缓存的异构多核处理器的数量不超过4个;当异构多核处理器的数量多于4个时,设置多个二级cache缓存;当二级cache缓存不足以支撑异构多核处理器性能要求时,设置三级cache数据缓存,三级cache缓存通过缓存一致性协议和总线与二级Cache缓存相连。
本实施例中,每个RISC-V处理器具有专有的一级指令数据cache缓存;各RISC-V处理器为不同性能、不同功能、不同结构的处理器。
本实施例中,ARM处理器的一级指令数据cache缓存已经定制在ARM处理器模块中,应用中只需调用即可。
本实施例中,总线模块包括符合AXI、AHB、APB总线协议的控制电路和接口,并符合总线主、从控制协议和模式。
本实施例中,二级cache缓存具有特定的数据访问控制机制,通过hit/miss判断机制,从FPGA片外预取数据至片上缓存,从而减少RISC-V处理器与ARM处理器内的一级cache缓存的数据访问延迟。
本实施例中,ARM处理器与RISC-V处理器互为主从处理器,以对比不同异构多核处理器设置的性能优劣程度。
本实施例中,ARM处理器包含了外设、I/O、DDR控制器,当RISC-V CPU为主处理器时,根据应用需求设计单独的外设模块,为异构多核处理器FPGA芯片提供外设数据的输入输出。
本实施例中,ARM处理器为FPGA芯片自带的处理器,即PSIP,可下载软件程序至ARM处理器,执行应用程序,得到应用功能结果。RISC-V处理器与ARM处理器一样,都可以执行相应的软件程序,但是与ARM处理器指令集和架构不同。RISC-V处理器与ARM处理器一同组成多核异构处理器。多个RISC-V处理器与多个ARM处理器都与步共同的二级缓存Cache模块通过总线模块连接,因此多核异构处理器可以进行数据交互、数据同步、任务同步。
本实施例中,ARM处理器为独立完整的SoC处理器,包含中断处理模块、外设模块、内部总线模块、处理器核心模块和总线接口模块。用户可下载软件程序至ARM处理器,执行应用程序,得到应用功能结果。
本实施例中,RISC-V处理器的逻辑电路,包括中断处理单元、一级指令缓存、一级数据缓存、流水级逻辑,并通过所设计的总线接口模块与总线模块连接,实现与二级缓存Cache的数据交互。RISC-V处理器的中断处理模块,服务于RISC-V处理器中运行的应用程序中断调用,保存寄存器数据和状态,并与异构多核系统控制相结合实现异构多核处理器之间程序运行的相互协调。中断处理单元负责相应RISC-V处理器的中断请求,流水级逻辑负责控制RISC-V指令解码的流水线执行过程。
本实施例中,RISC-V处理器与ARM PS处理器一样,都可以执行相应的软件程序。RISC-V处理器与ARM PS处理器一同组成多核异构处理器。
本实施例中,异构多核处理器所包含的RISC-V处理器数量为M,ARM PS处理器数量为N,二级cache缓存的数量为K。
本发明实施例一的RISC-V与ARM协同工作的异构多核FPGA电路架构的有益效果是:既包含了FPGA芯片自带的ARM处理器,又包含了基于FPGA PL资源所设计的RISC-V处理器、cache缓存、存储控制、总线等模块,各模块协同工作,可以共同完成异构多核处理器的执行程序;可以在异构多核处理器芯片流片之前,完整的验证异构多核处理器各组成模块的系统功能,包括运行操作系统的正确性、执行应用程序的正确性、异构多核之间数据交换正确性、以及所设计的各种外设、存储、管理、cache、其他处理器核等各类模块的正确性;PSARM处理器与RISC-V处理器互为主从处理器,以对比不同异构多核处理器设置的性能优劣程度,从而为异构多核处理器的优化提供最直接的系统评价指标;不同的处理器中运行不同应用程序,具有更高的灵活度,更好的性能和更低功耗;异构多核处理器FPGA芯片可以直接作为低成本、可维护的处理器芯片解决方案,直接应用于产品中,作为灵活的、低成本、高性能系统处理器核心;相比于大投入的芯片流片,具有架构灵活、设计成本低廉、性能强大、快速迭代、可提前进行应用软件开发等不可比拟的优势。
参见图2,RISC-V与ARM协同工作的异构多核FPGA电路架构构建方法,包括以下步骤:
步骤S1、为ARM处理器配置中断处理模块、外设模块、内部总线模块、处理器核心模块和总线接口模块;
步骤S2、基于FPGA设计RISC-V处理器,包括:设计符合RISC-V指令集标准约定的RISC-V基础指令集、扩展指令集、用户自定义指令集CPU,设计乱序或顺序多流水线指令执行结构,同时,基于FPGA芯片本身的存储和PL单元,设计RISC-V处理器的逻辑电路以及SRAM或buffer单元;
步骤S3、基于FPGA设计cache缓存,包括:基于FPGA芯片的存储单元资源设计一级/二级cache的Tag、SRAM单元,同时基于FPGA芯片的逻辑电路电源设计一级/二级cache读取控制器子模块,将设计的cache电路整合为ARM处理器中的一级数据缓存Cache、一级指令缓存Cache模块、RISC-V处理器中的一级数据缓存Cache、一级指令缓存Cache模块以及共用的二级cache缓存;
步骤S4、基于FPGA设计总线模块,包括:用总线模块连接RISC-V处理器的一级数据缓存Cache和二级cache缓存,连接ARM处理器的一级数据缓存Cache和二级cache缓存;
步骤S5、基于FPGA设置存储管理模块,包括:存储管理模块连接二级cache缓存和RISC-V处理器,管理ARM处理器、RISC-V处理器、二级cache缓存的数据输入和输出。
本实施例中,ARM处理器为ARM处理器配置中断处理模块、外设模块、内部总线模块、处理器核心模块和总线接口模块。用户可下载软件程序至ARM处理器,执行应用程序,得到应用功能结果。
步骤S2中,RISC-V处理器基于FPGA芯片存储资源和PL电路逻辑资源设计。RISC-V处理器内部流水线包括存储buffer和逻辑电路。存储buffer基于FPGA芯片所提供的存储电路资源进行替换,同时调整RISC-V处理器的存储buffer模块必要的控制逻辑和接口设计。RISC-V处理器流水线等逻辑和控制电路基于FPGA芯片所提供的LUT电路资源进行综合实现,从而完成完整的RISC-VCPU的FPGA设计。
步骤S3中,cache缓存基于FPGA芯片存储单元资源和电路逻辑资源设计。cache缓存包括异构多核处理器中的非ARM处理器的一级数据cache缓存、一级指令cache缓存(即RISC-V处理器的一级数据cache,一级指令cache缓存),以及异构多核处理器共用的二级cache缓存。
RISC-V处理器的load/store指令需要访问相应的指令数据空间。为了加快指令数据访问效率,提高指令执行效率,都要相应的设计一级指令数据cache缓存。但是,RISC-V处理器一级指令数据cache缓存仅为RISC-V处理器服务,不能与ARM处理器直接交换数据,并且其设计是与ARM处理器是截然不同的FPGA芯片的两种实现方法。要想实现RISC-VCPU处理器与ARM处理器的数据交互,只能通过RISC-V处理器一级指令数据cache缓存与共用的二级cache缓存同步数据,同时ARM处理器通过其自身的一级指令数据cache缓存也与共用的二级cache缓存同步数据,从而实现异构多核处理器间的数据同步。
二级cache缓存为异构多核处理器共用。一般共用二级cache缓存的处理器不超过4个。如果多于4个异构多核处理器,则需要设计多个二级cache缓存,分别为不同的异构多核处理器组提供数据访问的服务。
配合每个RISC-V处理器设计专有的一级指令数据cache缓存,是实现异构多核处理器的FPGA架构组成的重要环节。ARM处理器的一级指令数据cache缓存已经定制在PSARM处理器模块中,应用中只需调用即可。
步骤S4中,RISC-V处理器的一级指令数据cache缓存通过总线模块与异构处理器共用的二级cache缓存连接,建立数据访问通路。总线模块基于FPGA芯片PL电路逻辑资源设计。ARM处理器也通过自有总线接口接入到总线模块,与二级缓存连接,实现异构多核处理器的数据同步和数据交换。
步骤S5中,RISC-V处理器的一级指令数据cache缓存,以及二级cache缓存,在存储管理模块的控制下进行数据同步、数据交换。
本实施例中,异构多核处理器所包含的RISC-V处理器数量可以为1~M,ARM PS处理器数量可以为1~N。二级Cache缓存一般连接不超过4个异构处理器核。如果超过4个异构处理器核,则设计多组二级cache缓存,以减少异构多核处理器核的带宽和性能压力。
根据异构多核处理器的性能要求,当二级cache缓存性能不足以支撑异构多核处理器性能要求时,则可以进一步设计三级cache缓存,与多组异构多核处理器和二级cache缓存连接,进行数据交换和同步。三级cache构建方法与二级cache缓存一致,并通过缓存一致性协议和总线与二级Cache缓存相连。
ARM处理器与RISC-V处理器都可以运行操作系统,执行应用程序。ARM处理器与RISC-V处理器互为主、从处理器,在共同的cache缓存、存储管理、总线等模块基础上协同工作。虽然PSARM处理器已经包含了外设、I/O、DDR控制器等不同SoC芯片组成部分,但是这些芯片外设组成需共同为异构多核处理器服务。当RISC-VCPU为主处理器时,无法访问PSARM处理器的外设,此时应当根据应用需求设计单独的外设模块,为异构多核处理器FPGA芯片提供外设数据的输入输出。
对流片之前的异构多核处理器的性能进行系统评估,使ARM处理器与RISC-V处理器互为主从处理器,以对比不同异构多核处理器设置的性能优劣程度,从而为异构多核处理器的优化提供最直接的系统评价指标。
本发明还提供一种RISC-V与ARM协同工作的异构多核FPGA电路架构的数据传输方法,包括以下步骤:
步骤S11、二级cache缓存从FPGA片外预取数据至片上缓存;
步骤S12、ARM处理器的ARM一级指令数据cache缓存、RISC-V处理器的RISC-V一级指令数据cache缓存通过总线模块连接至二级cache缓存;
步骤S13、存储管理模块将ARM处理器、RISC-V处理器、二级cache缓存的读写数据对应的虚拟地址转换成物理地址,通过对缓存页面的访问进行权限检查,实现数据一致性管理,同时,获取地址对应权限属性,供控制使用。
以上所述,仅为本发明创造的具体实施方式,但本发明创造的保护范围并不局限于此,熟悉该本领域的技术人员应该明白本发明创造包括但不限于上面具体实施方式中描述的内容。任何不偏离本发明创造的功能和结构原理的修改都将包括在权利要求书的范围中。
Claims (10)
1.RISC-V与ARM协同工作的异构多核FPGA电路架构,其特征在于:所述RISC-V与ARM协同工作的异构多核FPGA电路架构包括:
ARM处理器,属于FPGA PS部分,具有ARM一级指令数据cache缓存;
RISC-V处理器,基于FPGA PL设计,具有RISC-V一级指令数据cache缓存;
共用的二级cache缓存,从FPGA片外预取数据至片上缓存;
总线模块,连接RISC-V一级指令数据cache缓存和二级cache缓存,连接ARM一级指令数据cache缓存和二级cache缓存;
存储管理模块,连接二级cache缓存和RISC-V处理器,对ARM处理器的读写数据、RISC-V处理器的读写数据、二级cache缓存的读写数据,进行数据一致性管理和控制。
2.根据权利要求1所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,其特征在于:RISC-V处理器有多个,ARM处理器有多个。
3.根据权利要求2所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,其特征在于:RISC-V处理器和ARM处理器形成异构多核处理器,共用同一个二级cache缓存的异构多核处理器的数量不超过4个;当异构多核处理器的数量多于4个时,设置多个二级cache缓存;当二级cache缓存不足以支撑异构多核处理器性能要求时,设置三级cache数据缓存,三级cache缓存通过缓存一致性协议和总线与二级Cache缓存相连。
4.根据权利要求2所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,其特征在于:每个RISC-V处理器具有专有的一级指令数据cache缓存;各RISC-V处理器为不同性能、不同功能、不同结构的处理器。
5.根据权利要求1所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,其特征在于:ARM处理器的一级指令数据cache缓存定制在ARM处理器模块中。
6.根据权利要求1所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,其特征在于:总线模块包括符合AXI、AHB、APB总线协议的控制电路和接口,并符合总线主、从控制协议和模式;RISC-V处理器还包括中断处理单元和流水级逻辑,中断处理单元负责相应RISC-V处理器的中断请求,流水级逻辑负责控制RISC-V指令解码的流水线执行过程。
7.根据权利要求1所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,其特征在于:二级cache缓存具有特定的数据访问控制机制,通过hit/miss判断机制,从FPGA片外预取数据至片上缓存。
8.根据权利要求1所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,其特征在于:ARM处理器与RISC-V处理器互为主从处理器RISC-V与ARM协同工作的异构多核FPGA电路架构,ARM处理器包含中断处理模块、外设模块、内部总线模块、处理器核心模块和总线接口模块,当RISC-VCPU为主处理器时,配置单独的外设模块,为异构多核处理器FPGA芯片提供外设数据的输入输出。
9.RISC-V与ARM协同工作的异构多核FPGA电路架构构建方法,用于得到权利要求1至8任一所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,包括以下步骤:
步骤S1、为ARM处理器配置中断处理模块、外设模块、内部总线模块、处理器核心模块和总线接口模块;
步骤S2、基于FPGA设计RISC-V处理器,包括:设计符合RISC-V指令集标准约定的RISC-V基础指令集、扩展指令集、用户自定义指令集CPU,设计乱序或顺序多流水线指令执行结构,同时,基于FPGA芯片本身的存储和PL单元,设计RISC-V处理器的逻辑电路以及SRAM或buffer单元;
步骤S3、基于FPGA设计cache缓存,包括:基于FPGA芯片的存储单元资源设计一级/二级cache的Tag、SRAM单元,同时基于FPGA芯片的逻辑电路电源设计一级/二级cache读取控制器子模块,将设计的cache电路整合为ARM处理器中的一级数据缓存Cache、一级指令缓存Cache模块、RISC-V处理器中的一级数据缓存Cache、一级指令缓存Cache模块以及共用的二级cache缓存;
步骤S4、基于FPGA设计总线模块,包括:用总线模块连接RISC-V处理器的一级数据缓存Cache和二级cache缓存,连接ARM处理器的一级数据缓存Cache和二级cache缓存;
步骤S5、基于FPGA设置存储管理模块,包括:存储管理模块连接二级cache缓存和RISC-V处理器,管理ARM处理器、RISC-V处理器、二级cache缓存的数据输入和输出。
10.RISC-V与ARM协同工作的异构多核FPGA电路架构的数据传输方法,应用于权利要求1至8任一所述的RISC-V与ARM协同工作的异构多核FPGA电路架构,包括以下步骤:
步骤S11、二级cache缓存从FPGA片外预取数据至片上缓存;
步骤S12、ARM处理器的ARM一级指令数据cache缓存、RISC-V处理器的RISC-V一级指令数据cache缓存通过总线模块连接至二级cache缓存;
步骤S13、存储管理模块将ARM处理器、RISC-V处理器、二级cache缓存的读写数据对应的虚拟地址转换成物理地址,通过对缓存页面的访问进行权限检查,实现数据一致性管理,同时,获取地址对应权限属性,供控制使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310438719.2A CN116757132A (zh) | 2023-04-20 | 2023-04-20 | 异构多核fpga电路架构、构建方法及数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310438719.2A CN116757132A (zh) | 2023-04-20 | 2023-04-20 | 异构多核fpga电路架构、构建方法及数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116757132A true CN116757132A (zh) | 2023-09-15 |
Family
ID=87953982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310438719.2A Pending CN116757132A (zh) | 2023-04-20 | 2023-04-20 | 异构多核fpga电路架构、构建方法及数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116757132A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407181A (zh) * | 2023-12-14 | 2024-01-16 | 沐曦集成电路(南京)有限公司 | 一种基于屏障指令的异构计算进程同步方法及系统 |
-
2023
- 2023-04-20 CN CN202310438719.2A patent/CN116757132A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407181A (zh) * | 2023-12-14 | 2024-01-16 | 沐曦集成电路(南京)有限公司 | 一种基于屏障指令的异构计算进程同步方法及系统 |
CN117407181B (zh) * | 2023-12-14 | 2024-03-22 | 沐曦集成电路(南京)有限公司 | 一种基于屏障指令的异构计算进程同步方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jouppi et al. | Motivation for and evaluation of the first tensor processing unit | |
CN110347635B (zh) | 一种基于多层总线的异构多核微处理器 | |
Martin et al. | Multifacet's general execution-driven multiprocessor simulator (GEMS) toolset | |
CN103714039B (zh) | 通用计算数字信号处理器 | |
Gschwandtner et al. | Performance analysis and benchmarking of the intel scc | |
CN108647368B (zh) | 基于fpga的动态部分重构系统及方法 | |
CN106294239B (zh) | 一种外围总线apb总线桥 | |
CN104820657A (zh) | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
KR101830685B1 (ko) | 온칩 메시 상호접속부 | |
Huang et al. | Active-routing: Compute on the way for near-data processing | |
Chen et al. | Accelerator-rich CMPs: From concept to real hardware | |
CN112580792B (zh) | 一种神经网络多核张量处理器 | |
CN111488308B (zh) | 一种支持不同架构多处理器扩展的系统和方法 | |
Monchiero et al. | Efficient synchronization for embedded on-chip multiprocessors | |
US20180336034A1 (en) | Near memory computing architecture | |
CN116757132A (zh) | 异构多核fpga电路架构、构建方法及数据传输方法 | |
US20030023794A1 (en) | Cache coherent split transaction memory bus architecture and protocol for a multi processor chip device | |
CN105893036A (zh) | 一种嵌入式系统的兼容式加速器扩展方法 | |
CN110727611B (zh) | 一种带状态监测的可配置一致性验证系统 | |
CN111008042B (zh) | 基于异构流水线的高效通用处理器执行方法及系统 | |
CN106250341B (zh) | 一种多簇处理器及其脚本设计和连接方法 | |
Abdallah | Heterogeneous Computing: An Emerging Paradigm of Embedded Systems Design | |
CN211787085U (zh) | 一种共享缓存的双路dram存储fpga板卡 | |
Fu et al. | A hardware-efficient dual-source data replication and local broadcast mechanism in distributed shared caches |
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 |