[go: up one dir, main page]

CN107808031A - A kind of restructurable computing system implementation method based on FPGA - Google Patents

A kind of restructurable computing system implementation method based on FPGA Download PDF

Info

Publication number
CN107808031A
CN107808031A CN201710889859.6A CN201710889859A CN107808031A CN 107808031 A CN107808031 A CN 107808031A CN 201710889859 A CN201710889859 A CN 201710889859A CN 107808031 A CN107808031 A CN 107808031A
Authority
CN
China
Prior art keywords
component
fpga
subsystem
computing system
cip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710889859.6A
Other languages
Chinese (zh)
Other versions
CN107808031B (en
Inventor
陈文智
施青松
王总辉
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201710889859.6A priority Critical patent/CN107808031B/en
Publication of CN107808031A publication Critical patent/CN107808031A/en
Application granted granted Critical
Publication of CN107808031B publication Critical patent/CN107808031B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention discloses a kind of restructurable computing system implementation method based on FPGA, comprise the following steps:The first step, definition is with realizing the hardware subsystem based on IP kernel;Second step, definition is with realizing the operating system subsystem based on component;3rd step, define the software subsystem based on component;4th step, update computing system.Traditional computing system is decomposed into hardware subsystem, operating system subsystem and software subsystem by the present invention, and realize the restructural of hardware subsystem based on FPGA, the restructural of software view is realized by the modularization of operating system subsystem and software subsystem, so as to improve the efficiency of system design and flexibility.

Description

一种基于FPGA的可重构计算系统实现方法A Realization Method of Reconfigurable Computing System Based on FPGA

技术领域technical field

本发明涉及计算系统技术领域,特别是涉及一种基于FPGA的可重构计算系统实现方法。The invention relates to the technical field of computing systems, in particular to an FPGA-based reconfigurable computing system implementation method.

背景技术Background technique

进入二十一世纪以来,半导体工艺的进步和高性能计算的需求推动了计算机系统的迅猛发展,处理器的体系结构发生了巨大变化。作为计算机核心部件的处理器,其性能的提升在很大程度上归功于半导体工艺的进步和体系结构的发展。半导体工艺的进步和体系结构的发展一直是相互促进的关系,前者是后者的基础,后者又推动着前者。体系结构发展上的每一次变化都伴随着芯片上集成晶体管数目的突破,可以说是晶体管数目的“量变”所导致的“质变”。同时,一个完整的计算系统,除了处理器及其指令集之外,还包括了操作系统、软件系统等构成部分。传统的计算系统是以制造好的处理器为基础所构造,尽管操作系统、软件系统等软件部分可以动态更新,但是以处理器为中心的硬件部分则无法再进行更新和升级。可重构硬件的出现使得处理器与相关的硬件的重构成为可能。Since the beginning of the 21st century, the advancement of semiconductor technology and the demand for high-performance computing have promoted the rapid development of computer systems, and the architecture of processors has undergone tremendous changes. As the core component of the computer, the performance improvement of the processor is largely due to the progress of the semiconductor process and the development of the system structure. The progress of the semiconductor process and the development of the system structure have always been in a relationship of mutual promotion, the former is the basis of the latter, and the latter promotes the former. Every change in the development of the architecture is accompanied by a breakthrough in the number of integrated transistors on the chip, which can be said to be a "qualitative change" caused by a "quantitative change" in the number of transistors. At the same time, a complete computing system, in addition to the processor and its instruction set, also includes components such as an operating system and a software system. Traditional computing systems are constructed on the basis of manufactured processors. Although software parts such as operating systems and software systems can be updated dynamically, the hardware part centered on the processor cannot be updated and upgraded. The emergence of reconfigurable hardware makes it possible to reconfigure processors and related hardware.

在处理器技术的发展过程中,可重构计算是一个重要的方向。可重构计算(Reconfigurable Computing)的概念最早由Estrin等在1963提出,但是现在的概念与当时已有较大不同,目前所常用的可重构计算是指:系统具有某种形式可编程性的硬件,可通过一系列物理控制点定期的定制硬件的功能,从而可以使用相同的硬件执行不同的应用。可重构计算有望填补硬件计算(基于ASIC的计算)和软件计算(基于通用处理器的计算)之间在性能与灵活性上的鸿沟,从而在获得高于软件计算的性能同时保持高于硬件计算的灵活性。In the development process of processor technology, reconfigurable computing is an important direction. The concept of reconfigurable computing (Reconfigurable Computing) was first proposed by Estrin et al. in 1963, but the current concept is quite different from that at that time. The commonly used reconfigurable computing refers to: the system has some form of programmability Hardware, the functionality of which can be regularly customized through a series of physical control points, so that different applications can be executed using the same hardware. Reconfigurable computing is expected to fill the gap in performance and flexibility between hardware computing (ASIC-based computing) and software computing (general-purpose processor-based computing), thereby achieving higher performance than software computing while maintaining higher performance than hardware Computing flexibility.

可重构计算的器件通常由计算单元(Computational elements)阵列和连线资源(Routing resources)构成,两者都是可编程的。计算单元又被称作逻辑块(Logic block),它的功能由一定数量的配置位所决定,逻辑块之间的互连由连线资源所决定。逻辑块实现简单的逻辑功能,经过可配置连线的连接从而实现复杂的定制功能。根据逻辑块粒度的大小,可重构器件可以分为细粒度结构和粗粒度结构,一些更细化的分类也将粒度大小分为细粒度、中等粒度、粗粒度和超粗粒度。最常见的可重构硬件当属FPGA(FieldProgrammable Gate Arrays),有些文献直接将基于FPGA的计算等同于可重构计算,FPGA就是一种细粒度可重构器件。Reconfigurable computing devices are usually composed of arrays of computing elements (Computational elements) and wiring resources (Routing resources), both of which are programmable. A computing unit is also called a logic block, its function is determined by a certain number of configuration bits, and the interconnection between logic blocks is determined by the connection resources. The logic block implements simple logic functions, and realizes complex custom functions through the connection of configurable wires. According to the size of logic block granularity, reconfigurable devices can be divided into fine-grained structure and coarse-grained structure, and some more refined classifications also divide the granularity into fine-grained, medium-grained, coarse-grained, and ultra-coarse-grained. The most common reconfigurable hardware is FPGA (Field Programmable Gate Arrays). Some literature directly equates FPGA-based computing with reconfigurable computing. FPGA is a fine-grained reconfigurable device.

一般可重构计算系统都采用可重构硬件和通用微处理器结合的形式,通用处理器执行可重构硬件无法高效完成的操作,例如数据依赖的控制、存储访问等,而计算密集的程序热点则被映射到可重构硬件上完成。根据通用微处理器和可重构硬件的耦合方式,可重构硬件在计算系统中大致可以分为四类:可重构功能单元、可重构协处理器、可重构附属处理单元和可重构的独立处理单元。Generally, reconfigurable computing systems use the combination of reconfigurable hardware and general-purpose microprocessors. General-purpose processors perform operations that reconfigurable hardware cannot efficiently complete, such as data-dependent control, storage access, etc., while computationally intensive programs Hotspots are mapped to reconfigurable hardware. According to the coupling method of general-purpose microprocessors and reconfigurable hardware, reconfigurable hardware in computing systems can be roughly divided into four categories: reconfigurable functional units, reconfigurable coprocessors, reconfigurable auxiliary processing units, and reconfigurable Refactored independent processing unit.

在商用可重构硬件中,FPGA最为成熟普遍,而它通常作为独立的芯片甚至板卡的形式存在,所以在现有商用可重构计算系统中,FPGA的使用最多,且多数是以上述后两种耦合结构存在的,如作为附属处理单元的有IntelQuickAssist的FSB-FPGA加速系统以及XtremeData的FPGA加速平台等,作为独立处理单元的有SRC-7可重构超级计算机等。In commercial reconfigurable hardware, FPGA is the most mature and common, and it usually exists as an independent chip or even a board. Therefore, in existing commercial reconfigurable computing systems, FPGA is used the most, and most of them are based on the above-mentioned Two coupling structures exist, such as IntelQuickAssist FSB-FPGA acceleration system and XtremeData FPGA acceleration platform as auxiliary processing units, and SRC-7 reconfigurable supercomputer as independent processing units.

对于上述前两种耦合结构,基于单核处理器的结构的研究很多,但是由于过去半导体工艺的限制,通用处理器性能有持续提升的空间以及可重构计算应用开发的不便等原因导致可重构处理器一直未能广泛实用。For the above-mentioned first two coupling structures, there are many studies on the structure based on single-core processors. However, due to the limitations of semiconductor technology in the past, there is room for continuous improvement in the performance of general-purpose processors and the inconvenience of reconfigurable computing application development, etc. Institutional processors have not been widely available.

一种计算形式的特性可以从两个方面来进行描述:灵活性和性能。从这两个方面进行考虑,以性能作为横坐标、灵活性作为纵坐标,常见的计算形式的特性如下:基于通用处理器的通用计算的灵活性最高,但其能开发利用的并发性有限,性能相对最低;而应用定制计算是为特定应用定制并优化的,性能相对最高,但是,也正是由于其只为特定应用定制,所以灵活性最差。这两个极端在性能和能耗方面的效率都相差百倍。在这两个极端之间,有多种计算形式。在这些计算形式中,可重构计算在灵活性和性能方面有望弥合应用定制计算和通用计算之间的鸿沟。A form of computing can be characterized in two ways: flexibility and performance. Considering these two aspects, with performance as the abscissa and flexibility as the ordinate, the characteristics of common computing forms are as follows: general-purpose computing based on general-purpose processors has the highest flexibility, but the concurrency that can be developed and utilized is limited. The performance is relatively the lowest; while the application-customized computing is customized and optimized for specific applications, and the performance is relatively high. However, it is precisely because it is only customized for specific applications that it has the worst flexibility. The two extremes differ a hundredfold in efficiency in terms of performance and energy consumption. Between these two extremes, there are various forms of computing. Among these forms of computing, reconfigurable computing is expected to bridge the gap between application-specific computing and general-purpose computing in terms of flexibility and performance.

可重构计算使用可重构硬件针对不同的应用进行定制,可以充分利用从指令级到任务级间多个级别的并行性,从而达到接近ASIC的性能;并通过运行时重构(Run-timereconfiguration,RTR)对可重构硬件进行电路功能的重配置,从而保持着接近软件的灵活性。因此,可重构计算相对于两个极端都具有更高的性价比,而与通用计算相比,在不同应用中取得了显著的性能提升且具有更低功耗,如入侵检测、模式匹配、数值分析、生物信息等。Reconfigurable computing uses reconfigurable hardware to customize for different applications, and can make full use of multi-level parallelism from instruction level to task level, so as to achieve performance close to ASIC; and through runtime reconfiguration (Run-time reconfiguration) , RTR) reconfigures the circuit function of the reconfigurable hardware, thus maintaining the flexibility close to the software. Therefore, reconfigurable computing is more cost-effective relative to both extremes, and compared with general-purpose computing, it has achieved significant performance improvements and lower power consumption in different applications, such as intrusion detection, analysis, bioinformatics, etc.

在FPGA上可以烧写的模块,定义为知识产权核或IP核(IP Core,IntellectualProperty Core)。IP核是指某一方提供的、形式为逻辑单元、芯片设计的可重用模块。IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以缩短设计所需的周期。IP核分为软核、硬核和固核。软核通常是与工艺无关、具有寄存器传输级硬件描述语言描述的设计代码,可以进行后续设计;硬核是前者通过逻辑综合、布局、布线之后的一系列工艺文件,具有特定的工艺形式、物理实现方式;固核则通常介于上面两者之间,它已经通过功能验证、时序分析等过程,设计人员可以以逻辑门级网表的形式获取。The modules that can be programmed on the FPGA are defined as intellectual property cores or IP cores (IP Core, IntellectualProperty Core). IP core refers to a reusable module provided by a party in the form of logic units and chip designs. The IP core has usually passed the design verification, and the designer designs based on the IP core, which can shorten the cycle required for the design. IP core is divided into soft core, hard core and solid core. The soft core is usually a process-independent design code with a register-transfer-level hardware description language description, which can be followed by design; the hard core is a series of process files after the former passes through logic synthesis, layout, and wiring, and has a specific process form, physical The implementation method; the solid core is usually between the above two. It has passed the process of functional verification and timing analysis, and the designer can obtain it in the form of a logic gate-level netlist.

所谓的片上,是指处理器芯片上;所谓的片上设备是指集成于处理器芯片上的设备;外设是外部设备的简称。所谓的板上是指计算系统母板(motherboard)上;所谓的板上设备是指集成于或者安装于计算机系统母板上的设备。The so-called on-chip refers to the processor chip; the so-called on-chip device refers to the device integrated on the processor chip; peripheral is the abbreviation of external device. The so-called board refers to a computer system motherboard (motherboard); the so-called on-board device refers to a device integrated or installed on a computer system motherboard.

处理器体系结构设计的一个主要目标是在追求面向应用领域的高性能和高效率设计的同时,保持处理器的可编程性和灵活性,可重构计算在这方面有着其他计算形式无可比拟的天然优势。因此,本发明采用FPGA作为计算系统实现的硬件平台,并对操作系统、软件系统进行改造,从而能够实现从硬件到软件的动态更新,实现计算系统的可重构。One of the main goals of processor architecture design is to maintain the programmability and flexibility of the processor while pursuing high-performance and high-efficiency design for application domains. Reconfigurable computing is unparalleled in other forms of computing in this regard. natural advantages. Therefore, the present invention adopts FPGA as the hardware platform realized by the computing system, and transforms the operating system and software system, thereby realizing dynamic update from hardware to software and realizing the reconfigurability of the computing system.

发明内容Contents of the invention

本发明的目的在于提供一种基于FPGA的可重构计算系统实现方法。The purpose of the present invention is to provide a method for realizing a FPGA-based reconfigurable computing system.

本发明解决其技术问题采用的技术方案如下:一种基于FPGA的可重构计算系统实现方法,包括如下步骤:The technical solution adopted by the present invention to solve its technical problems is as follows: a method for implementing a reconfigurable computing system based on FPGA, comprising the following steps:

第一步,定义与实现基于IP核的硬件子系统:The first step is to define and implement the hardware subsystem based on the IP core:

1)定义与实现处理器IP核:1) Definition and implementation of processor IP core:

为可重构计算系统定义处理器IP核为CIP;Define the processor IP core as CIP for the reconfigurable computing system;

2)定义与实现板上设备IP核:2) Define and realize the IP core of the on-board equipment:

板上设备的总和定义为一个集合P,集合P={P1,P2,P3…,Pm},表示可重构计算系统中共有m个板上设备;对于任何一个板上设备Pi,对应一个IP核BIPi,所有m个板上设备对应的IP核构成一个集合BIP,集合BIP={BIP1,BIP2,BIP3…,BIPm};The sum of the on-board devices is defined as a set P, set P={P1, P2, P3...,Pm}, which means that there are m on-board devices in the reconfigurable computing system; for any on-board device Pi, it corresponds to an IP Core BIPi, the IP cores corresponding to all m on-board devices form a set BIP, set BIP={BIP1, BIP2, BIP3...,BIPm};

3)设置计算系统配置文件:根据CIP和集合BIP,设置计算系统配置文件;3) Set the computing system configuration file: according to the CIP and the set BIP, set the computing system configuration file;

(1)计算系统硬件子系统是否需要做首次加载,由2位的加载位表示;(1) Whether the hardware subsystem of the computing system needs to be loaded for the first time is indicated by a 2-bit loading bit;

(2)CIP的更新状态;(2) Update status of CIP;

(3)集合BIP中板上设备IP核的更新状态;(3) The update status of the IP core of the equipment on the board in the collection BIP;

4)建立可运行于FPGA上的加载文件:根据CIP、集合BIP中每个板上设备IP核的更新状态和所述计算系统配置文件,建立可运行于FPGA上的加载文件;4) set up the loading file that can run on the FPGA: according to the update status of the device IP core on each board in the CIP and the set BIP and the computing system configuration file, set up the loading file that can run on the FPGA;

第二步,定义与实现基于组件的操作系统子系统:The second step is to define and implement the component-based operating system subsystem:

将操作系统子系统定义为不同的组件,操作系统子系统组件的集合为集合OSC,集合OSC={OSC1,OSC2,OSC3…OSCm},表示该操作系统子系统中有m个组件;对于其中任一组件OSCi,包括组件属性,所述组件属性用于定义组件是否可以更新、与其他组件之间的关系;The operating system subsystem is defined as different components, and the set of operating system subsystem components is set OSC, set OSC={OSC1, OSC2, OSC3...OSCm}, which means that there are m components in the operating system subsystem; for any A component OSCi, including component attributes, which are used to define whether the component can be updated and the relationship with other components;

第三步,定义基于组件的软件子系统:The third step is to define the component-based software subsystem:

将运行于计算系统中的软件子系统定义并实现为不同的组件,软件子系统组件的集合为集合SSC,集合SSC={SSC1,SSC2,SSC3…SSCn},表示该操作系统子系统中有n个组件;对于任一组件SSCi,包括组件属性,所述组件属性用于定义组件是否可以更新、与其他组件之间的关系;Define and realize the software subsystem running in the computing system as different components, the set of software subsystem components is set SSC, set SSC={SSC1, SSC2, SSC3...SSCn}, which means that there are n in the operating system subsystem components; for any component SSCi, including component attributes, the component attributes are used to define whether the component can be updated, and the relationship with other components;

第四步,更新计算系统;The fourth step is to update the computing system;

计算系统的更新,包括三个子系统的更新,分别是所述硬件子系统、操作系统子系统和软件子系统;如果基于IP核的硬件子系统发生了变化,将可运行于FPGA上的加载文件烧写到FPGA上;如果基于组件的操作系统子系统发生了变化,更新FPGA上的操作系统子系统组件;如果基于组件的软件子系统发生了变化,更新FPGA上的软件子系统组件。The update of the computing system includes the update of three subsystems, which are respectively the hardware subsystem, the operating system subsystem and the software subsystem; if the hardware subsystem based on the IP core changes, the loading file that will be able to run on the FPGA Burning to the FPGA; if the component-based operating system subsystem changes, update the operating system subsystem components on the FPGA; if the component-based software subsystem changes, update the software subsystem components on the FPGA.

进一步地,所述CIP包括处理器核心、片上存储器、片上总线、片上设备、外部接口。Further, the CIP includes a processor core, an on-chip memory, an on-chip bus, an on-chip device, and an external interface.

进一步地,所述计算系统配置文件中定义的信息包括:Further, the information defined in the computing system configuration file includes:

(4)CIP连接到外部设备的方式;(4) The way CIP is connected to external equipment;

(5)集合BIP中板上设备IP核之间的连接方式;(5) The connection mode between the IP cores of the on-board equipment in the collective BIP;

(6)集合BIP中板上设备IP核与FPGA之外设备的连接方式;(6) Integrate the connection mode of the IP core of the on-board equipment in the BIP and the equipment other than the FPGA;

进一步地,所述2位的加载位包括00、01、10和11,其中00表示系统从未建立过可运行于FPGA上的加载文件,也从未在FPGA平台上实现过,此时所有IP核的更新状态位均为1;01用作保留位;10表示硬件子系统已经加载过,且本次没有IP核的改变;11表示硬件子系统已经加载过,且本次有IP核的改变。Further, the 2-bit loading bits include 00, 01, 10, and 11, wherein 00 indicates that the system has never created a loading file that can run on the FPGA, and has never been implemented on the FPGA platform. At this time, all IP The update status bits of the core are all 1; 01 is used as a reserved bit; 10 indicates that the hardware subsystem has been loaded, and there is no change in the IP core this time; 11 indicates that the hardware subsystem has been loaded, and there is a change in the IP core this time .

进一步地,所述CIP的更新状态由CIP的更新状态位U(CIP)表示,如果CIP没有被更新,则CIP的更新状态位U(CIP)置为0,如果CIP被更新,则CIP的更新状态位U(CIP)置为1;Further, the update status of the CIP is represented by the update status bit U (CIP) of the CIP, if the CIP is not updated, the update status bit U (CIP) of the CIP is set to 0, if the CIP is updated, the update of the CIP The status bit U(CIP) is set to 1;

任意一个板上设备IP核BIPi的更新状态由BIPi的更新状态位U(BIPi)表示,如果BIPi没有被更新,则BIPi的更新状态位U(BIPi)置为0,如果BIPi被更新,则BIPi的更新状态位U(BIPi)置为1。The update status of the IP core BIPi of any on-board device is represented by the update status bit U(BIPi) of the BIPi. If the BIPi is not updated, the update status bit U(BIPi) of the BIPi is set to 0. If the BIPi is updated, the BIPi The update status bit U(BIPi) of the device is set to 1.

进一步地,所述第一步中的步骤4)建立可运行于FPGA上的加载文件,具体为:Further, step 4 in the first step) establishes a loading file that can run on the FPGA, specifically:

将CIP、集合BIP和计算系统配置文件在本地计算机上进行处理,读取计算系统配置文件,连接计算系统的各个IP核,接受注入数据进行校验;如果校验不通过,输出校验错误信息,返回第一步;如果校验通过,则检查计算系统配置文件中的加载位:Process the CIP, integrated BIP and computing system configuration files on the local computer, read the computing system configuration files, connect to each IP core of the computing system, accept the injected data for verification; if the verification fails, output a verification error message , return to the first step; if the verification is passed, check the loading bit in the computing system configuration file:

(1)如果加载位为00,表示硬件子系统没有加载过,则将所有IP核,包括CIP和板上设备的IP核,进行统一处理,生成可运行于FPGA上的加载文件,并将可运行于FPGA上的加载文件烧写到FPGA上;(1) If the loading bit is 00, it means that the hardware subsystem has not been loaded, then all IP cores, including CIP and IP cores of on-board devices, will be processed uniformly to generate a loading file that can run on the FPGA, and will be able to Burn the loading file running on the FPGA to the FPGA;

(2)如果加载位为01或者10,不做任何处理;(2) If the loading bit is 01 or 10, do nothing;

(3)如果加载位为11,表示硬件子系统已经加载过,但是IP核有更新,则检查计算系统配置文件中U(CIP)、集合BIP中每个板上设备IP核的更新状态位,将所有更新状态为1的IP核,包括CIP和板上设备的IP核,进行统一处理,生成可运行于FPGA上的加载文件。(3) If the loading bit is 11, it means that the hardware subsystem has been loaded, but the IP core has been updated, then check the U(CIP) in the computing system configuration file and the update status bit of the IP core of each on-board device in the collective BIP, All IP cores whose update status is 1, including CIP and IP cores of on-board devices, are processed in a unified manner to generate a loading file that can run on the FPGA.

进一步地,所述第四步中,当有两个或两个以上子系统同时需要更新时,则具体的更新顺序为:优先更新硬件子系统,其次是操作系统子系统,最后是软件子系统。Further, in the fourth step, when there are two or more subsystems that need to be updated at the same time, the specific update order is: update the hardware subsystem first, then the operating system subsystem, and finally the software subsystem .

进一步地,对于其中任一组件OSCi,组件属性CP(OSCi)={UPDATE,CList},其中:Further, for any component OSCi, the component attribute CP(OSCi)={UPDATE, CList}, wherein:

1)UPDATE=0,表示组件OSCi可以更新;UPDATE=1,表示组件OSCCMi不能更新;1) UPDATE=0, indicating that the component OSCi can be updated; UPDATE=1, indicating that the component OSC CM i cannot be updated;

2)CList表示与OSCi具有通信关系的组件列表。2) CList represents a list of components that have a communication relationship with OSCi.

进一步地,对于其中任一组件SSCi,组件属性CPS(SSCi)={UPDATE,CPList},其中:Further, for any component SSCi, the component attribute CPS(SSCi)={UPDATE, CPList}, where:

1)UPDATE=0,表示组件SSCi可以更新;UPDATE=1,表示组件SSCi不能更新;1) UPDATE=0, indicating that the component SSCi can be updated; UPDATE=1, indicating that the component SSCi cannot be updated;

2)CPList表示与SSCi具有通信关系的组件列表。2) CPList represents a list of components that have a communication relationship with SSCi.

进一步地,对于所述任一组件OSCi和组件SSCi,还分别包括组件实现,所述组件实现是组件OSCi和组件SSCi的具体实现代码。Further, for any of the components OSCi and SSCi, component implementations are also respectively included, and the component implementations are specific implementation codes of the components OSCi and SSCi.

本发明与背景技术相比,具有的有益的效果是:Compared with the background technology, the present invention has the beneficial effects that:

本发明将传统的计算系统分解为硬件子系统、操作系统子系统和软件子系统,并以FPGA为基础来实现硬件子系统的可重构,通过操作系统子系统和软件子系统的组件化来实现软件层面的可重构,从而提高系统设计的效率和灵活性。The present invention decomposes the traditional computing system into a hardware subsystem, an operating system subsystem and a software subsystem, and realizes the reconfigurability of the hardware subsystem on the basis of FPGA. Realize reconfigurability at the software level, thereby improving the efficiency and flexibility of system design.

(1)高效性。FPGA支持硬件层面的计算系统可重构,组件化的操作系统和软件子系统则实现了软件层面的计算系统可重构,从而实现整个计算系统构建的高效性。(1) Efficiency. FPGA supports the reconfigurability of the computing system at the hardware level, and the componentized operating system and software subsystems realize the reconfigurability of the computing system at the software level, thereby realizing the high efficiency of the entire computing system construction.

(2)灵活性。硬件可重构和软件可重构所组成的可重构计算系统,可以以FPGA为基础、组件化为支持,实现动态的系统局部重构,减少了系统构建的工作量,提高了系统的灵活性。(2) Flexibility. The reconfigurable computing system composed of reconfigurable hardware and reconfigurable software can be based on FPGA and supported by componentization to realize dynamic partial reconfiguration of the system, reducing the workload of system construction and improving the flexibility of the system sex.

附图说明Description of drawings

图1是本发明的一种基于FPGA的可重构计算系统实现方法的流程图。FIG. 1 is a flow chart of an FPGA-based reconfigurable computing system implementation method of the present invention.

具体实施方式Detailed ways

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。In order to make the object, technical solution and advantages of the present invention clearer, the present invention will be further described in detail below in conjunction with the accompanying drawings and embodiments.

如图1所示,一种基于FPGA的可重构计算系统实现方法,其具体实现流程如下:As shown in Figure 1, an FPGA-based reconfigurable computing system implementation method, the specific implementation process is as follows:

第一步,定义与实现基于IP核的硬件子系统The first step is to define and realize the hardware subsystem based on IP core

1)定义与实现处理器IP核1) Definition and implementation of processor IP core

为可重构计算系统定义处理器IP核为CIP,包括处理器核心、片上存储器、片上总线、片上设备、外部接口。根据实际情况,还可包括其他模块,如新的存储模块、特定的控制器以及调试接口等。Define processor IP core as CIP for reconfigurable computing system, including processor core, on-chip memory, on-chip bus, on-chip device, and external interface. Depending on the actual situation, other modules may also be included, such as new memory modules, specific controllers, and debug interfaces.

在一实施例中,对于某一特定的计算系统CM,其处理器IP核为CIP(CM)。In one embodiment, for a specific computing system CM, its processor IP core is CIP(CM).

2)定义与实现板上设备IP核2) Define and realize the IP core of the on-board equipment

为可重构计算系统定义板上设备IP核。板上设备的总和定义为一个集合P,集合P={P1,P2,P3…,Pm},表示可重构计算系统中共有m个板上设备。对于任何一个板上设备Pi,对应一个IP核BIPi,所有m个板上设备对应的IP核构成一个集合BIP,集合BIP={BIP1,BIP2,BIP3…,BIPm}。其中,BIP1是板上设备P1对应的IP核,BIP2是板上设备P2对应的IP核,以此类推。板上总线定义为板上设备。Define on-board device IP cores for reconfigurable computing systems. The sum of on-board devices is defined as a set P, set P={P1, P2, P3...,Pm}, which means that there are m on-board devices in the reconfigurable computing system. For any on-board device Pi, there is one IP core BIPi corresponding, and the IP cores corresponding to all m on-board devices form a set BIP, set BIP={BIP1, BIP2, BIP3...,BIPm}. Wherein, BIP1 is the IP core corresponding to the device P1 on the board, BIP2 is the IP core corresponding to the device P2 on the board, and so on. The on-board bus is defined as on-board devices.

在一实施例中,对于该特定的计算系统CM,共有P1,P2,P3三个板上设备,对应的IP核分别是BIP1,BIP2和BIP3,其中BIP1是板上总线。In an embodiment, for the specific computing system CM, there are three on-board devices P1, P2, and P3, and the corresponding IP cores are BIP1, BIP2, and BIP3 respectively, wherein BIP1 is an on-board bus.

3)设置计算系统配置文件3) Set the computing system configuration file

根据CIP和集合BIP,设置计算系统配置文件。计算系统配置文件中定义如下信息:According to the CIP and the collective BIP, set up the computing system configuration file. The following information is defined in the computing system configuration file:

1、计算系统硬件子系统是否需要做首次加载,由2位的加载位表示,其中00表示系统从未建立过可运行于FPGA上的加载文件,也从未在FPGA平台上实现过,此时所有IP核的更新状态位均为1;01用作保留位;10表示硬件子系统已经加载过,且本次没有IP核的改变;11表示硬件子系统已经加载过,且本次有IP核的改变。1. Whether the hardware subsystem of the computing system needs to be loaded for the first time is indicated by a 2-digit loading bit, where 00 means that the system has never created a loading file that can run on the FPGA, and has never been implemented on the FPGA platform. At this time The update status bits of all IP cores are 1; 01 is used as a reserved bit; 10 means that the hardware subsystem has been loaded, and there is no IP core change this time; 11 means that the hardware subsystem has been loaded, and there is an IP core this time change.

2、CIP连接到外部设备的方式;2. How to connect CIP to external equipment;

3、集合BIP中板上设备IP核之间的连接方式;3. The connection mode between the IP cores of the on-board equipment in the integrated BIP;

4、集合BIP中板上设备IP核与FPGA之外设备的连接方式;4. Integrate the connection method between the IP core of the on-board equipment in the integrated BIP and the equipment other than the FPGA;

5、CIP的更新状态,由CIP的更新状态位U(CIP)表示,如果CIP没有被更新,则CIP的更新状态位U(CIP)置为0,如果CIP被更新,则CIP的更新状态位U(CIP)置为1;5. The update status of CIP is represented by the update status bit U(CIP) of CIP. If the CIP is not updated, the update status bit U(CIP) of CIP is set to 0. If the CIP is updated, the update status bit of CIP is set to 0. U(CIP) is set to 1;

6、集合BIP中板上设备IP核的更新状态,任意一个板上设备IP核BIPi都有一个更新状态位U(BIPi),如果BIPi没有被更新,则BIPi的更新状态位U(BIPi)置为0,如果BIPi被更新,则BIPi的更新状态位U(BIPi)置为1;6. Collect the update status of the IP core of the on-board equipment in the BIP. Any on-board equipment IP core BIPi has an update status bit U(BIPi). If the BIPi has not been updated, the update status bit U(BIPi) of the BIPi is set to is 0, if BIPi is updated, the update status bit U(BIPi) of BIPi is set to 1;

在一实施例中,对于该特定的计算系统CM,其计算系统配置文件为Config(CM),其中信息为:In one embodiment, for the specific computing system CM, its computing system configuration file is Config(CM), wherein the information is:

1、加载位为00;1. The loading bit is 00;

2、CIP(CM)通过32位总线连接到片外;2. CIP (CM) is connected to the off-chip through a 32-bit bus;

3、BIP2和BIP3通过32位总线连接,32位总线由BIP1定义和实现;3. BIP2 and BIP3 are connected through a 32-bit bus, and the 32-bit bus is defined and implemented by BIP1;

4、集合BIP中板上设备IP核与FPGA之外设备的连接方式为通过串行连接线连接;4. The IP core of the on-board equipment in the integrated BIP is connected to the equipment other than the FPGA through a serial connection;

5、CIP(CM)的更新状态位U(CIP(CM))为1;5. The update status bit U(CIP(CM)) of CIP(CM) is 1;

6、BIP1的更新状态位U(BIP1)为1,BIP2的更新状态位U(BIP2)为1,BIP3的更新状态位U(BIP3)为1;6. The update status bit U (BIP1) of BIP1 is 1, the update status bit U (BIP2) of BIP2 is 1, and the update status bit U (BIP3) of BIP3 is 1;

4)建立可运行于FPGA上的加载文件4) Create a load file that can run on the FPGA

将CIP、集合BIP和计算系统配置文件在本地计算机上进行处理,读取计算系统配置文件,连接计算系统的各个IP核,接受注入数据进行校验;如果校验不通过,输出校验错误信息,返回第一步;如果校验通过,则检查计算系统配置文件中的加载位:Process the CIP, integrated BIP and computing system configuration files on the local computer, read the computing system configuration files, connect to each IP core of the computing system, accept the injected data for verification; if the verification fails, output a verification error message , return to the first step; if the verification is passed, check the loading bit in the computing system configuration file:

(1)如果加载位为00,表示硬件子系统没有加载过,则将所有IP核,包括CIP和板上设备的IP核,进行统一处理,生成可运行于FPGA上的加载文件,并将可运行于FPGA上的加载文件烧写到FPGA上;(1) If the loading bit is 00, it means that the hardware subsystem has not been loaded, then all IP cores, including CIP and IP cores of on-board devices, will be processed uniformly to generate a loading file that can run on the FPGA, and will be able to Burn the loading file running on the FPGA to the FPGA;

(2)如果加载位为01或者10,不做任何处理;(2) If the loading bit is 01 or 10, do nothing;

(3)如果加载位为11,表示硬件子系统已经加载过,但是IP核有更新,则检查计算系统配置文件中U(CIP)、集合BIP中每个板上设备IP核的更新状态位,将所有更新状态为1的IP核,包括CIP和板上设备的IP核,进行统一处理,生成可运行于FPGA上的加载文件。(3) If the loading bit is 11, it means that the hardware subsystem has been loaded, but the IP core has been updated, then check the U(CIP) in the computing system configuration file and the update status bit of the IP core of each on-board device in the collective BIP, All IP cores whose update status is 1, including CIP and IP cores of on-board devices, are processed in a unified manner to generate a loading file that can run on the FPGA.

在一实施例中,对于该特定的计算系统CM,将CIP(CM)、BIP1、BIP2、BIP3和Config(CM)在本地计算机上进行处理,读取Config(CM),连接计算系统的各个IP核,接受注入数据进行校验;如果校验不通过,输出校验错误信息,返回第一步;如果校验通过,则检查计算系统配置文件中的加载位。由于加载位为00,则将所有IP核,包括CIP(CM)和板上设备的IP核BIP1、BIP2和BIP3,进行统一处理,生成可运行于FPGA上的加载文件HWFile,并将可运行于FPGA上的加载文件HWFile烧写到FPGA上。In one embodiment, for the specific computing system CM, CIP (CM), BIP1, BIP2, BIP3 and Config (CM) are processed on the local computer, Config (CM) is read, and each IP of the computing system is connected The core accepts the injected data for verification; if the verification fails, output a verification error message and return to the first step; if the verification passes, check the loading bit in the computing system configuration file. Since the loading bit is 00, all IP cores, including CIP (CM) and IP cores BIP1, BIP2, and BIP3 of the on-board device, are processed in a unified manner to generate a loading file HWFile that can run on the FPGA, and can run on The loading file HWFile on the FPGA is programmed to the FPGA.

第二步,定义与实现基于组件的操作系统子系统The second step is to define and implement the component-based operating system subsystem

将操作系统子系统定义为不同的组件,组件之间通过接口进行通信,单个组件可以进行更新,可以在操作系统子系统中加入新的组件。操作系统子系统组件的集合为集合OSC,集合OSC={OSC1,OSC2,OSC3…OSCm},表示该操作系统子系统中有m个组件。组件OSCi包括了组件属性和组件实现,组件属性用于定义组件是否可以更新、与其他组件之间的关系,组件实现是组件OSCi的具体实现代码。The operating system subsystem is defined as different components, and the components communicate through interfaces. A single component can be updated, and new components can be added to the operating system subsystem. The set of operating system subsystem components is the set OSC, set OSC={OSC1, OSC2, OSC3...OSCm}, which means that there are m components in the operating system subsystem. Component OSCi includes component attributes and component implementation. Component attributes are used to define whether the component can be updated and the relationship with other components. Component implementation is the specific implementation code of component OSCi.

现有操作系统,例如windows 10,是基于组件化实现的操作系统,可以在线进行更新和升级。Existing operating systems, such as Windows 10, are component-based operating systems that can be updated and upgraded online.

在一实施例中,对于该特定的计算系统CM,定义与实现基于组件的操作系统子系统OSCCM,OSCCM由组件OSCCM1,OSCCM2,OSCCM3,OSCCM4,OSCCM5组成。则该操作系统子系统共有5个组件。对于其中任一组件OSCCMi,组件属性CP(OSCCMi)={UPDATE,CList},其中:In one embodiment, for this specific computing system CM, a component-based operating system subsystem OSC CM is defined and implemented, and OSC CM is composed of components OSC CM 1, OSC CM 2, OSC CM 3, OSC CM 4, OSC CM 5 composition. Then the operating system subsystem has 5 components in total. For any one of the components OSC CM i, component attribute CP(OSC CM i) = {UPDATE, CList}, where:

1)UPDATE=0,表示组件OSCCMi可以更新;UPDATE=1,表示组件OSCCMi不能更新;1) UPDATE=0, indicating that the component OSC CM i can be updated; UPDATE=1, indicating that the component OSC CM i cannot be updated;

2)List表示与OSCCMi具有通信关系的组件列表;2) List represents a list of components that have a communication relationship with OSC CM i;

则有:Then there are:

表1计算系统CM的操作系统子系统OSCCM中5个组件的组件属性Table 1 Component properties of the five components in the operating system subsystem OSC CM of computing system CM

序号serial number 组件components UPDATEUPDATE CListCList 说明illustrate 11 OSCCM1OSC CM 1 00 OSCCM2,OSCCM3OSC CM 2, OSC CM 3 可以更新can be updated 22 OSCCM2OSC CM 2 00 OSCCM1,OSCCM3OSC CM 1, OSC CM 3 可以更新can be updated 33 OSCCM3OSC CM 3 00 OSCCM1,OSCCM2OSC CM 1, OSC CM 2 可以更新can be updated 44 OSCCM4OSC CM 4 00 OSCCM1,OSCCM2,OSCCM3OSC CM 1, OSC CM 2, OSC CM 3 可以更新can be updated 55 OSCCM5OSC CM 5 11 OSCCM1OSC CM 1 不能更新cannot update

第三步,定义基于组件的软件子系统The third step is to define the component-based software subsystem

对于将运行于计算系统中的软件,将之定义并实现为不同的组件,组件之间通过接口进行通信,单个组件可以进行更新,可以在该软件中加入新的组件。软件子系统组件的集合为集合SSC,集合SSC={SSC1,SSC2,SSC3…SSCn},表示该操作系统子系统中有n个组件。组件SSCi包括了组件属性和组件实现,组件属性用于定义组件是否可以更新、与其他组件之间的关系,组件实现是组件SSCi的具体实现代码。For the software that will run in the computing system, it is defined and implemented as different components, the components communicate through the interface, a single component can be updated, and new components can be added to the software. The set of software subsystem components is the set SSC, and the set SSC={SSC1, SSC2, SSC3...SSCn}, which means that there are n components in the operating system subsystem. Component SSCi includes component attributes and component implementation. Component attributes are used to define whether the component can be updated and the relationship with other components. Component implementation is the specific implementation code of component SSCi.

现有主要的软件,均可以通过组件化或者类似组件化的方式实现在线的更新和升级。All existing major software can be updated and upgraded online through componentization or similar componentization.

在一实施例中,对于该特定的计算系统CM,定义与实现基于组件的软件子系统SSCCM,SSCCM由组件SSCCM1,SSCCM2,SSCCM3组成。则该软件子系统共有3个组件。对于其中任一组件SSCCMi,组件属性CPS(SSCCMi)={UPDATE,CPList},其中:In an embodiment, for this specific computing system CM, a component-based software subsystem SSC CM is defined and implemented, and the SSC CM is composed of components SSC CM 1 , SSC CM 2 , and SSC CM 3 . Then the software subsystem consists of three components. For any component SSC CM i, component attribute CPS(SSC CM i)={UPDATE, CPList}, where:

1)UPDATE=0,表示组件SSCCMi可以更新;UPDATE=1,表示组件SSCCMi不能更新;1) UPDATE=0, indicating that the component SSC CM i can be updated; UPDATE=1, indicating that the component SSC CM i cannot be updated;

2)CPList表示与SSCCMi具有通信关系的组件列表;2) CPList represents a list of components that have a communication relationship with SSC CM i;

则有:Then there are:

表2计算系统CM的软件子系统SSCCM中3个组件的组件属性Table 2 Component attributes of the 3 components in the software subsystem SSC CM of the computing system CM

序号serial number 组件components UPDATEUPDATE CListCList 说明illustrate 11 SSCCM1SSC CM 1 00 SSCCM2,OSCCM3SSC CM 2, OSC CM 3 可以更新can be updated 22 SSCCM2SSC CM 2 00 SSCCM1,OSCCM3SSC CM 1, OSC CM 3 可以更新can be updated 33 SSCCM3SSC CM 3 00 SSCCM1,OSCCM2SSC CM 1, OSC CM 2 可以更新can be updated

第四步,更新计算系统The fourth step, update the computing system

计算系统的更新,包括三个子系统的更新,分别是硬件子系统、操作系统子系统和软件子系统。如果基于IP核的硬件子系统发生了变化,将可运行于FPGA上的加载文件烧写到FPGA上;如果基于组件的操作系统子系统发生了变化,更新FPGA上的操作系统子系统组件;如果基于组件的软件子系统发生了变化,更新FPGA上的软件子系统组件。当有两个或两个以上子系统需要更新时,则具体的更新顺序为:优先更新硬件子系统,其次是操作系统子系统,最后是软件子系统。The update of the computing system includes the update of three subsystems, which are the hardware subsystem, the operating system subsystem and the software subsystem. If the hardware subsystem based on the IP core has changed, burn the loading file that can run on the FPGA to the FPGA; if the component-based operating system subsystem has changed, update the operating system subsystem components on the FPGA; if Component-based software subsystems have changed, updating the software subsystem components on the FPGA. When there are two or more subsystems to be updated, the specific update sequence is as follows: update the hardware subsystem first, then the operating system subsystem, and finally the software subsystem.

在一实施例中,对于该特定的计算系统CM,有可运行于FPGA上的加载文件HWFile、基于组件的操作系统子系统OSCCM、基于组件的软件子系统SSCCM,则:In one embodiment, for this specific computing system CM, there are loading files HWFile, component-based operating system subsystem OSC CM , and component-based software subsystem SSC CM that can run on the FPGA, then:

1)如果HWFile、OSCCM和SSCCM当中的某一个发生了变化,则:1) If one of HWFile, OSC CM and SSC CM changes, then:

a)如果HWFile发生了变化,将HWFile烧写到FPGA上;a) If HWFile has changed, burn HWFile to FPGA;

b)如果OSCCM发生了变化,更新FPGA上的OSCCMb) If the OSC CM has changed, update the OSC CM on the FPGA;

c)如果SSCCM发生了变化,更新FPGA上的SSCCMc) If the SSC CM has changed, update the SSC CM on the FPGA;

2)如果HWFile、OSCCM和SSCCM当中的某两个个发生了变化,则:2) If any two of HWFile, OSC CM and SSC CM have changed, then:

a)如果HWFile、OSCCM发生了变化,将HWFile烧写到FPGA上,然后更新FPGA上的OSCCMa) If HWFile and OSC CM have changed, burn HWFile to FPGA, and then update OSC CM on FPGA;

b)如果HWFile、SSCCM发生了变化,将HWFile烧写到FPGA上,然后更新FPGA上的SSCCMb) If HWFile and SSC CM have changed, burn HWFile to FPGA, and then update SSC CM on FPGA;

c)如果OSCCM、SSCCM发生了变化,更新FPGA上的OSCCM,然后更新FPGA上的SSCCMc) If the OSC CM and SSC CM have changed, update the OSC CM on the FPGA, and then update the SSC CM on the FPGA;

3)如果HWFile、OSCCM和SSCCM都发生了变化,则先将HWFile烧写到FPGA上,然后更新FPGA上的OSCCM,最后更新FPGA上的SSCCM3) If HWFile, OSC CM and SSC CM have all changed, first burn HWFile to FPGA, then update OSC CM on FPGA, and finally update SSC CM on FPGA.

此处,存在两个版本的OSCCM,即操作系统子系统发生变化前的OSCCM,该OSCCM已经烧写到FPGA上,称为FPGA上的OSCCM,操作系统子系统发生变化后的OSCCM,称为OSCCM。所称OSCCM的更新,就是用操作系统子系统发生变化后的OSCCM,即OSCCM来替换操作系统子系统发生变化前的OSCCM,即FPGA上的OSCCMHere, there are two versions of OSC CM , the OSC CM before the operating system subsystem changes, the OSC CM has been programmed into the FPGA, called the OSC CM on the FPGA, and the OSC CM after the operating system subsystem changes CM , called OSC CM . The so-called update of the OSC CM refers to replacing the OSC CM before the change of the operating system subsystem, that is, the OSC CM on the FPGA, with the OSC CM after the change of the operating system subsystem, that is, the OSC CM .

此处,存在两个版本的SSCCM,即操作系统子系统发生变化前的SSCCM,该SSCCM已经烧写到FPGA上,称为FPGA上的SSCCM,操作系统子系统发生变化后的SSCCM,称为SSCCM。所称SSCCM的更新,就是用操作系统子系统发生变化后的SSCCM,即SSCCM来替换操作系统子系统发生变化前的SSCCM,即FPGA上的SSCCMHere, there are two versions of SSC CM , that is, the SSC CM before the operating system subsystem changes, the SSC CM has been programmed into the FPGA, called SSC CM on the FPGA, and the SSC CM after the operating system subsystem changes CM , called SSC CM . The so-called update of the SSC CM refers to replacing the SSC CM before the change of the operating system subsystem, that is, the SSC CM on the FPGA, with the SSC CM after the change of the operating system subsystem, that is, the SSC CM .

以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。The descriptions of the above embodiments are only used to help understand the method and core idea of the present invention. It should be pointed out that for those skilled in the art, without departing from the principle of the present invention, some improvements and modifications can be made to the present invention, and these improvements and modifications also fall within the protection scope of the claims of the present invention.

Claims (10)

  1. A kind of 1. restructurable computing system implementation method based on FPGA, it is characterised in that:Comprise the following steps:
    The first step, definition is with realizing the hardware subsystem based on IP kernel:
    1) definition is with realizing processor IP nuclear:
    It is CIP for restructurable computing system definition processor IP kernel;
    2) definition is with realizing equipment IP kernel on plate:
    The summation of equipment is defined as a set P, set P={ P1, P2, P3 ..., Pm } on plate, represents in restructurable computing system Share equipment on m plate;For equipment Pi on any one plate, a corresponding IP kernel BIPi, on all m plates corresponding to equipment IP kernel forms a set BIP, set BIP={ BIP1, BIP2, BIP3 ..., BIPm };
    3) computer system configurations file is set:According to CIP and set BIP, computer system configurations file is set;The computing system Information defined in configuration file includes:
    (1) whether computing system hardware subsystem needs to do to load first, is represented by the loading positions of 2;
    (2) CIP more new state;
    (3) in set BIP on plate equipment IP kernel more new state;
    4) load document that can run on FPGA is established:According to every in the loading positions of described 2 and the CIP, set BIP The more new state of equipment IP kernel on individual plate, establish the load document that can run on FPGA;
    Second step, definition is with realizing the operating system subsystem based on component:
    Operating system subsystem is defined as to different components, the collection of operating system subsystem component is combined into set OSC, set OSC={ OSC1, OSC2, OSC3 ... OSCm }, represents there be m component in the operating system subsystem;For any of which component Whether OSCi, including component property, the component property can update the relation between other assemblies for definitions component;
    3rd step, define the software subsystem based on component:
    The software subsystem run in computing system is defined and is embodied as different components, the set of software subsystem components For set SSC, set SSC={ SSC1, SSC2, SSC3 ... SSCn }, represent there be n component in the operating system subsystem;It is right In any component SSCi, including component property, the component property be used for definitions component whether can update, with other assemblies it Between relation;
    4th step, update computing system:
    The renewal of computing system, includes the renewal of three subsystems, be respectively the hardware subsystem, operating system subsystem and Software subsystem;Changed if based on the hardware subsystem of IP kernel, the load document programming that will be can run on FPGA Onto FPGA;Changed if based on the operating system subsystem of component, update the operating system subsystem group on FPGA Part;Changed if based on the software subsystem of component, update the software subsystem components on FPGA.
  2. A kind of 2. restructurable computing system implementation method based on FPGA according to claim 1, it is characterised in that:It is described CIP includes equipment, external interface on processor core, on-chip memory, on-chip bus, piece.
  3. A kind of 3. restructurable computing system implementation method based on FPGA according to claim 1, it is characterised in that:It is described Information defined in computer system configurations file also includes:
    (4) CIP is connected to the mode of external equipment;
    (5) connected mode in set BIP on plate between equipment IP kernel;
    (6) in set BIP on plate equipment IP kernel and FPGA external equipment connected mode.
  4. A kind of 4. restructurable computing system implementation method based on FPGA according to claim 1, it is characterised in that:It is described The loading position of 2 includes 00,01,10 and 11, wherein 00 expression system was not from setting up the load document that can run on FPGA, Also never realized in FPGA platform;01 is used as reserved bit;10 expression hardware subsystems had loaded, and this does not have IP The change of core;11 expression hardware subsystems had loaded, and this has the change of IP kernel.
  5. A kind of 5. restructurable computing system implementation method based on FPGA according to claim 4, it is characterised in that:It is described CIP more new state is represented by CIP renewal mode bit U (CIP), if CIP is not updated, CIP renewal mode bit U (CIP) 0 is set to, if CIP is updated, CIP renewal mode bit U (CIP) is set to 1;
    Equipment IP kernel BIPi more new state is represented by BIPi renewal mode bit U (BIPi) on any one plate, if BIPi Not being updated, then BIPi renewal mode bit U (BIPi) is set to 0, if BIPi is updated, BIPi renewal mode bit U (BIPi) it is set to 1.
  6. A kind of 6. restructurable computing system implementation method based on FPGA according to claim 5, it is characterised in that:It is described Step 4) in the first step establishes the load document that can run on FPGA, is specially:
    CIP, set BIP and computer system configurations file are handled on the local computer, read computer system configurations text Part, each IP kernel of computing system is connected, receives injecting data and is verified;If verification is not by output verification mistake letter Breath, return to the first step;If verification passes through, the loading position in computer system configurations file is checked:
    (1) if loading position is 00, represent that hardware subsystem did not load, then by equipment on all IP kernels, including CIP and plate IP kernel, be uniformly processed, generate the load document that can run on FPGA, and the load document that will be can run on FPGA Programming is on FPGA;
    (2) it is without any processing if loading position is 01 or 10;
    (3) if loading position is 11, represent that hardware subsystem had loaded, but IP kernel has renewal, then checks computing system In configuration file in U (CIP), set BIP on each plate equipment IP kernel renewal mode bit, by all more new states be 1 IP The IP kernel of equipment, is uniformly processed on core, including CIP and plate, generates the load document that can run on FPGA.
  7. A kind of 7. restructurable computing system implementation method based on FPGA according to claim 1, it is characterised in that:It is described In 4th step, when having two or more subsystems while needing renewal, then specific update sequence is:Preferential renewal is hard Part subsystem, next to that operating system subsystem, is finally software subsystem.
  8. A kind of 8. restructurable computing system implementation method based on FPGA according to claim 1, it is characterised in that:For Any of which component OSCi, component property CP (OSCi)={ UPDATE, CList }, wherein:
    1) UPDATE=0, represent that component OSCi can update;UPDATE=1, represent component OSCCMI can not update;
    2) CList represents the component list for having correspondence with OSCi.
  9. A kind of 9. restructurable computing system implementation method based on FPGA according to claim 1, it is characterised in that:For Any of which component SSCi, component property CPS (SSCi)={ UPDATE, CPList }, wherein:
    1) UPDATE=0, represent that component SSCi can update;UPDATE=1, represent that component SSCi can not update;
    2) CPList represents the component list for having correspondence with SSCi.
  10. 10. the restructurable computing system implementation method according to claim 1 based on FPGA, it is characterised in that:For institute Any component OSCi and component SSCi are stated, respectively further comprises component realization, it is component OSCi and component SSCi that the component, which is realized, Specific implementation code.
CN201710889859.6A 2017-09-27 2017-09-27 Reconfigurable computing system implementation method based on FPGA Active CN107808031B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710889859.6A CN107808031B (en) 2017-09-27 2017-09-27 Reconfigurable computing system implementation method based on FPGA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710889859.6A CN107808031B (en) 2017-09-27 2017-09-27 Reconfigurable computing system implementation method based on FPGA

Publications (2)

Publication Number Publication Date
CN107808031A true CN107808031A (en) 2018-03-16
CN107808031B CN107808031B (en) 2020-07-24

Family

ID=61591753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710889859.6A Active CN107808031B (en) 2017-09-27 2017-09-27 Reconfigurable computing system implementation method based on FPGA

Country Status (1)

Country Link
CN (1) CN107808031B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505361A (en) * 2021-07-16 2021-10-15 无锡安可芯信息技术有限公司 Encryption digital IP core authorization method facing ASIC and FPGA device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007264B1 (en) * 2003-05-02 2006-02-28 Xilinx, Inc. System and method for dynamic reconfigurable computing using automated translation
CN101441674A (en) * 2008-12-15 2009-05-27 浙江大学 Chip allocation method of dynamic reconfigurable system based on FPGA
CN104615488A (en) * 2015-01-16 2015-05-13 华为技术有限公司 Task scheduling method and device on heterogeneous multi-core reconfigurable computing platform
CN106843948A (en) * 2017-01-11 2017-06-13 上海鲲云信息科技有限公司 Chip architecture and execution method for generating hardware configuration information on chip

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007264B1 (en) * 2003-05-02 2006-02-28 Xilinx, Inc. System and method for dynamic reconfigurable computing using automated translation
CN101441674A (en) * 2008-12-15 2009-05-27 浙江大学 Chip allocation method of dynamic reconfigurable system based on FPGA
CN104615488A (en) * 2015-01-16 2015-05-13 华为技术有限公司 Task scheduling method and device on heterogeneous multi-core reconfigurable computing platform
CN106843948A (en) * 2017-01-11 2017-06-13 上海鲲云信息科技有限公司 Chip architecture and execution method for generating hardware configuration information on chip

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李鹏等: "FPGA动态局部重构技术研究进展", 《信息工程大学学报》 *
许骏等: "基于模块的动态可重构系统设计", 《计算机工程与设计》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505361A (en) * 2021-07-16 2021-10-15 无锡安可芯信息技术有限公司 Encryption digital IP core authorization method facing ASIC and FPGA device

Also Published As

Publication number Publication date
CN107808031B (en) 2020-07-24

Similar Documents

Publication Publication Date Title
CN107077521B (en) System-on-chip configuration metadata
So BORPH: An operating system for FPGA-based reconfigurable computers
Cong et al. Bandwidth optimization through on-chip memory restructuring for HLS
US11163558B2 (en) Multiprocessor programming toolkit for design reuse
Beck et al. Adaptable embedded systems
Arnold et al. Tomahawk: Parallelism and heterogeneity in communications signal processing MPSoCs
CN101573687B (en) Reconfiguring a secure system
Bergmann et al. QUKU: a dual-layer reconfigurable architecture
US9805152B1 (en) Compilation of system designs
Qiu et al. Fdra: A framework for a dynamically reconfigurable accelerator supporting multi-level parallelism
CN107003838A (en) decoding information base
US11238199B1 (en) High-level synthesis vector library for single-instruction multiple data programming and electronic system design
Nguyen et al. PR-HMPSoC: A versatile partially reconfigurable heterogeneous Multiprocessor System-on-Chip for dynamic FPGA-based embedded systems
Limberg et al. A heterogeneous MPSoC with hardware supported dynamic task scheduling for software defined radio
CN107808031B (en) Reconfigurable computing system implementation method based on FPGA
CN107665281B (en) An FPGA-Based Processor Simulation Method
Chattopadhyay et al. Language-driven exploration and implementation of partially re-configurable ASIPs
Owaida et al. Massively parallel programming models used as hardware description languages: The OpenCL case
CN107766286A (en) A kind of Systemon-board implementation method based on FPGA
Krishnakumar et al. Domain-specific architectures (DSAs): Research problems and promising approaches
Yan et al. SoC design
Bishop Configurable computing for mainstream software applications
Weng et al. Assassyn: A Unified Abstraction for Architectural Simulation and Implementation
US12073155B2 (en) Method and system for building hardware images from heterogeneous designs for electronic systems
US11886854B1 (en) Acceleration-ready program development and deployment for computer systems and hardware acceleration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant