CN105550443B - 一种基于SystemC周期精确的统一染色器阵列TLM模型 - Google Patents
一种基于SystemC周期精确的统一染色器阵列TLM模型 Download PDFInfo
- Publication number
- CN105550443B CN105550443B CN201510926303.0A CN201510926303A CN105550443B CN 105550443 B CN105550443 B CN 105550443B CN 201510926303 A CN201510926303 A CN 201510926303A CN 105550443 B CN105550443 B CN 105550443B
- Authority
- CN
- China
- Prior art keywords
- module
- instruction
- systemc
- scoreboard
- issue
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
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)
- Advance Control (AREA)
Abstract
本发明涉及一种基于SystemC周期精确的统一染色器阵列TLM模型,本发明的统一染色器阵列内部集成多个物理、逻辑相互独立的染色处理单元。本发明只需采用SystemC语言对1个染色处理单元进行建模,然后将模型实例化5遍,就可以完成对统一染色阵列的建模。
Description
技术领域
本发明涉及计算机硬件建模技术领域,尤其涉及一种基于SystemC周期精确的统一染色器阵列TLM模型。
背景技术
对于***的软/硬件协调设计和协同验证(Co-verification),模拟速度非常重要。以寄存器传输级(RTL)建模为基础的传统方法速度慢,并且只有在设计过程的后期阶段才能获得所需的***模型。为了提高效率,必须在设计过程的早期阶段启用有效的硬件/软件***模拟。为了克服在RTL级建模的局限性,可以采用两个方法:(1)在比RTL级高的抽象级别建模。(2)使用一个通用的语言S ystemC建模不同抽象级别,包括寄存器传输级。SystemC2.0的事务级是比RTL级更高的抽象级别,在此级别可以根据***的初始功能规范快速建立硬件的可执行规范,快速创建***模型。在此级别中高的模拟速度允许提前开发和验证硬件相关的应用软件。通过在事务级模型(Trans-action Level Models,T LMs)中加入时序细节,可以评估***的性能、探索***的结构。S ystemC的模块本质也促进了所开发构件在***间的复用。
SystemC是OSCI(Open SystemC Initiative)组织制定和维护的一种基于C++的建模平台,它完全是用C++语言编写的,由经过精心设计的C++类库和仿真内核构成,支持门级、RTL级、***级等各个抽象层次上硬件的建模和仿真,而且是开放源代码的。SystemC支持硬件/软件协同设计,能够描述由硬件和软件组成的复杂***的结构,支持在C++环境下对硬件、软件和接口的描述。用SystemC可以实现功能模块、通信模块、软件模块和硬件模块在各种***级层次上的抽象,其引进的端口和信号的数据类型描述、时钟和延时的概念,正是基于要把软硬件的描述统一到一种建模语言的思想。用SystemC可以快速有效地建立软件算法的精确模型、硬件的体系结构、SoC的接口和***级的设计,并对设计进行仿真、验证和优化(用SystemC建模,其仿真速度一般是用VHDL或Verilog建模的10~100倍)。SystemC最基本的结构单元是模块(module),模块可以包含其他模块或过程(process)和方法(method),过程如同C语言中的函数用以实现某一行为。模块通过接口(port)与其他模块通信,接口之间用信号(Signal)相连。一个完整的***由多个模块组成,每个模块包含一个或多个过程和方法,过程是平行工作的,它们之间通过信号来通信。时钟Clock是一种特殊的信号在仿真时用以控制时序及使过程同步。基于SystemC的设计方法支持设计者在不同层次上建模,减小了代码量和工作量,提供了更高的工作效率,也就是说利用SystemC与传统的方法相比可以更为高效快速地进行仿真。但目前仍未发现基于SystemC周期精确的统一染色器阵列的建模方法。
发明内容
本发明为解决背景技术存在的上述技术问题,而提供一种基于SystemC周期精确的统一染色器阵列TLM模型,只需采用SystemC语言对1个染色处理单元进行建模,然后将模型实例化5遍,就可以完成对统一染色阵列的建模。
本发明的技术解决方案是:本发明为一种基于SystemC周期精确的统一染色器阵列TLM模型,其特殊之处在于:所述统一染色器阵列内部集成多个物理、逻辑相互独立的染色处理单元。
上述染色处理单元包括Control Status Register模块、Fetch模块、Decode模块、Issue模块、Execute模块、Load Store模块、Write Back模块、Scoreboard模块、RegisterFile模块、Constant Cache模块、Local Sram模块、Share Sram模块和Instruction Cache模块;所述Fetch模块通过事务接口与CSR、Instruction Cache和Decode模块相连;所述Decode模块通过事务接口与Fetch、Issue和Scoreborad模块相连;所述Issue模块通过事务级接口与Decode、Execute、Load Store和Scoreboard模块相连;所述Execute模块通过事务级接口与Issue和Write Back模块相连;所述Load Store模块通过事务级接口与Issue、Write Back、Constant Cache、Local Sram、Share Sram和Scoreboard模块相连;所述WriteBack模块通过事务级接口与Execute、Load Store和Register File模块相连;所述Scoreboard模块通过事务级接口与Decode、Issue和Load Store模块相连。
上述Fetch模块负责监控CSR模块的状态,从Instruction Cache模块中取指令,然后将取出的指令传递给Decode单元。
上述Decode模块负责对指令进行译码,同时将指令信息填入Scoreboard模块。
上述Issue模块根据Scoreboard中记录的已发射、执行的指令状态,来决定当前的指令是否被发射,当判断指令可以被发射后,读取Register File中相关的操作数,将2条指令发射给Execute或Load Store模块,然后将被发射的指令信息写入Scoreboard模块。
上述Execute模块根据发射下来的指令,执行相关的算术、逻辑运算,再将运算结果传递给Write Back模块。
上述Load Store模块根据发射下来的指令,执行Load指令或Store指令。当执行完load、store指令后通知Scoreboard更新指令状态。
上述Write Back模块接收Execute模块或Load Store模块的写回数据,将其写入Register File的相应位置。
上述Scoreboard模块记录所有正在执行指令的状态,便于Issue模块根据状态信息以决定是否发射下一条指令。
上述染色处理单元为5个。
本发明提供的基于SystemC周期精确的统一染色器阵列TLM模型,采用SystemC语言和TLM建模方法,对统一染色阵列进行周期精确的建模。在TLM建模方法中,各个模块之间是通过事务级接口的函数、而不是通过硬件信号的连接来实现通信的。各个模块内部都包含了各自独立、并行执行的进程,每个进程都只有一个共同的事件触发——时钟上升沿;每个进程都可以调用各自模块的事务级接口中的函数,来相互传递信息。
附图说明
图1是本发明中事务级SystemC周期精确建模的基本结构框图;
图2是本发明中统一染色阵列的结构框图;
图3是本发明中染色处理单元的事务级结构框图。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
参见图1,事务级SystemC建模的基本结构包含TLM接口、事务发起者(Initiator)和事务受动者(Target)。图中描述的TLM接口initiator_target_tlm_if是一个包含了读、写函数的虚类,其内部只对接口操作的函数进行申明,不涉及任何数据、行为的具体定义。事务Initiator内部定义了两个接口A和B,申明了一个内部循环进程initiator_process()。接口A、B的类型都是sc_port<initiator_target_tlm_if>,内部进程initiator_process属于一个SystemC的SC_CTHREAD类型,该进程在软件运行时具有单独的stack,并且在程序整个生命周期内存在。当该进程顺序执行到wait()语句时,进程挂起;只有在该进程事先声明的敏感列表中的clock.pos()触发后,该进程才会继续顺序向下执行。
事务Target继承了initiator_target_tlm_if接口类,其内部定义了两个接口a和b,其都是sc_export<initiator_target_tlm_if>类型。事务Target在其内部具体实现了initiator_target_tlm_if接口类中申明函数的行为。
参见图2,本发明具体实施例中统一染色器整列的事务级结构包含了5个物理、逻辑相互独立的染色处理单元。
参见图3,本发明的染色处理单元的建模机制是以图1所示内容为基础的。染色处理单元由Control Status Register模块、Fetch模块、Decode模块、Issue模块、Execute模块、Load Store模块、Write Back模块、Scoreboard模块、Register File模块、ConstantCache模块、Local Sram模块、Share Sram模块和Instruction Cache模块组成。
述Fetch模块负责监控CSR模块的状态,从Instruction Cache模块中取指令,然后将取出的指令传递给Decode单元。其中Fetch模块通过事务接口与CSR、Instruction Cache和Decode模块相连;
Decode模块负责对指令进行译码,同时将指令信息填入Scoreboard模块。其中Decode模块通过事务接口与Fetch、Issue和Scoreborad模块相连;
Issue模块根据Scoreboard中记录的已发射、执行的指令状态,来决定当前的指令是否被发射。当判断指令可以被发射后,读取Register File中相关的操作数,将2条指令发射给Execute或Load Store模块,然后将被发射的指令信息写入Scoreboard模块。其中Issue模块通过事务级接口与Decode、Execute、Load Store和Scoreboard模块相连。
Execute模块根据发射下来的指令,执行相关的算术、逻辑运算,再将运算结果传递给Write Back模块。其中Execute模块通过事务级接口与Issue和Write Back模块相连;
Load Store模块根据发射下来的指令,执行Load指令或Store指令。当执行完load、store指令后通知Scoreboard更新指令状态。其中Load Store模块通过事务级接口与Issue、Write Back、Constant Cache、Local Sram、Share Sram和Scoreboard模块相连;
Write Back模块接收Execute模块或Load Store模块的写回数据,将其写入Register File的相应位置。其中Write Back模块通过事务级接口与Execute、Load Store和Register File模块相连;
Scoreboard模块记录所有正在执行指令的状态,便于Issue模块根据状态信息以决定是否发射下一条指令。其中Scoreboard模块通过事务级接口与Decode、Issue和LoadStore模块相连;
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种基于SystemC周期精确的统一染色器阵列TLM模型,其特征在于:所述统一染色器阵列内部集成多个物理、逻辑相互独立的染色处理单元;
所述染色处理单元包括Control Status Register模块、Fetch模块、Decode模块、Issue模块、Execute模块、Load Store模块、Write Back模块、Scoreboard模块、RegisterFile模块、Constant Cache模块、Local Sram模块、Share Sram模块和Instruction Cache模块;所述Fetch模块通过事务接口与CSR、Instruction Cache和Decode模块相连;所述Decode模块通过事务接口与Fetch、Issue和Scoreborad模块相连;所述Issue模块通过事务级接口与Decode、Execute、Load Store和Scoreboard模块相连;所述Execute模块通过事务级接口与Issue和Write Back模块相连;所述Load Store模块通过事务级接口与Issue、Write Back、Constant Cache、Local Sram、Share Sram和Scoreboard模块相连;所述WriteBack模块通过事务级接口与Execute、Load Store和Register File模块相连;所述Scoreboard模块通过事务级接口与Decode、Issue和Load Store模块相连;
所述Fetch模块负责监控CSR模块的状态,从Instruction Cache模块中取指令,然后将取出的指令传递给Decode单元。
2.根据权利要求1所述的基于SystemC周期精确的统一染色器阵列TLM模型,其特征在于:所述Decode模块负责对指令进行译码,同时将指令信息填入Scoreboard模块。
3.根据权利要求2所述的基于SystemC周期精确的统一染色器阵列TLM模型,其特征在于:所述Issue模块根据Scoreboard中记录的已发射、执行的指令状态,来决定当前的指令是否被发射,当判断指令可以被发射后,读取Register File中相关的操作数,将2条指令发射给Execute或Load Store模块,然后将被发射的指令信息写入Scoreboard模块。
4.根据权利要求3所述的基于SystemC周期精确的统一染色器阵列TLM模型,其特征在于:所述Execute模块根据发射下来的指令,执行相关的算术、逻辑运算,再将运算结果传递给Write Back模块。
5.根据权利要求4所述的基于SystemC周期精确的统一染色器阵列TLM模型,其特征在于:所述Load Store模块根据发射下来的指令,执行Load指令或Store指令,当执行完load、store指令后通知Scoreboard更新指令状态。
6.根据权利要求5所述的基于SystemC周期精确的统一染色器阵列TLM模型,其特征在于:所述Write Back模块接收Execute模块或Load Store模块的写回数据,将其写入Register File的相应位置。
7.根据权利要求6所述的基于SystemC周期精确的统一染色器阵列TLM模型,其特征在于:所述Scoreboard模块记录所有正在执行指令的状态,便于Issue模块根据状态信息以决定是否发射下一条指令。
8.根据权利要求1至7任一权利要求所述的基于SystemC周期精确的统一染色器阵列TLM模型,其特征在于:所述染色处理单元为5个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510926303.0A CN105550443B (zh) | 2015-12-11 | 2015-12-11 | 一种基于SystemC周期精确的统一染色器阵列TLM模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510926303.0A CN105550443B (zh) | 2015-12-11 | 2015-12-11 | 一种基于SystemC周期精确的统一染色器阵列TLM模型 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105550443A CN105550443A (zh) | 2016-05-04 |
CN105550443B true CN105550443B (zh) | 2019-05-28 |
Family
ID=55829632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510926303.0A Active CN105550443B (zh) | 2015-12-11 | 2015-12-11 | 一种基于SystemC周期精确的统一染色器阵列TLM模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105550443B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708473B (zh) * | 2016-12-12 | 2019-05-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种统一染色器阵列多warp取指电路 |
CN106683158B (zh) * | 2016-12-12 | 2020-06-09 | 中国航空工业集团公司西安航空计算技术研究所 | 一种GPU纹理映射非阻塞存储Cache的建模*** |
CN108133452B (zh) * | 2017-12-06 | 2021-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种统一染色器阵列的指令发射处理电路 |
CN109599135B (zh) * | 2018-11-14 | 2021-02-09 | 西安翔腾微电子科技有限公司 | Gpu帧缓冲区存储硬件、存储方法、存储***和存储介质 |
CN109634583B (zh) * | 2018-11-14 | 2022-07-19 | 西安翔腾微电子科技有限公司 | 一种基于SystemC和TLM模型的GPU颜色存储Cache模块的硬件及存储装置 |
CN109346028B (zh) * | 2018-11-14 | 2021-03-23 | 西安翔腾微电子科技有限公司 | 一种基于tlm的三角形光栅化扫描结构 |
CN111026528B (zh) * | 2019-11-18 | 2023-06-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高性能大规模染色阵列程序调度分发*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388109A (zh) * | 2008-01-25 | 2009-03-18 | 威盛电子股份有限公司 | 绘图处理***、快取***以及数据处理方法 |
CN102648449A (zh) * | 2009-09-29 | 2012-08-22 | 辉达公司 | 用于并行处理单元的陷阱处理器架构 |
CN103198505A (zh) * | 2013-04-23 | 2013-07-10 | 四三九九网络股份有限公司 | 一种基于gpu渲染游戏角色及角色换装的方法和装置 |
CN104503950A (zh) * | 2014-12-09 | 2015-04-08 | 中国航空工业集团公司第六三一研究所 | 一种面向OpenGL API的图形处理器 |
CN103246770B (zh) * | 2013-05-08 | 2015-10-14 | 南京大学 | 一种基于活动图模型的***行为仿真方法 |
-
2015
- 2015-12-11 CN CN201510926303.0A patent/CN105550443B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388109A (zh) * | 2008-01-25 | 2009-03-18 | 威盛电子股份有限公司 | 绘图处理***、快取***以及数据处理方法 |
CN102648449A (zh) * | 2009-09-29 | 2012-08-22 | 辉达公司 | 用于并行处理单元的陷阱处理器架构 |
CN103198505A (zh) * | 2013-04-23 | 2013-07-10 | 四三九九网络股份有限公司 | 一种基于gpu渲染游戏角色及角色换装的方法和装置 |
CN103246770B (zh) * | 2013-05-08 | 2015-10-14 | 南京大学 | 一种基于活动图模型的***行为仿真方法 |
CN104503950A (zh) * | 2014-12-09 | 2015-04-08 | 中国航空工业集团公司第六三一研究所 | 一种面向OpenGL API的图形处理器 |
Non-Patent Citations (1)
Title |
---|
面积带宽优化的嵌入式 GPU 可编程着色器体系结构研究;常轶松;《中国博士学位论文全文数据库 工程信息辑》;20141215;第31-36页 |
Also Published As
Publication number | Publication date |
---|---|
CN105550443A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105550443B (zh) | 一种基于SystemC周期精确的统一染色器阵列TLM模型 | |
US10180850B1 (en) | Emulating applications that use hardware acceleration | |
US7650273B2 (en) | Performance simulation of multiprocessor systems | |
US7437282B2 (en) | Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator | |
US7979822B2 (en) | Apparatus and method for performing a sequence of verification tests to verify a design of a data processing system | |
CN109669832A (zh) | 一种面向gpu芯片图形管线单元性能验证方法及平台 | |
US11734480B2 (en) | Performance modeling and analysis of microprocessors using dependency graphs | |
Angepat et al. | FPGA-accelerated simulation of computer systems | |
WO2015187635A1 (en) | Extracting system architecture in high level synthesis | |
US20020066065A1 (en) | Method, apparatus, and program for multiple clock domain partitioning through retiming | |
US11934825B2 (en) | Event-driven design simulation | |
US11275582B2 (en) | Event-driven design simulation | |
CN108845829A (zh) | 一种***寄存器访问指令的执行方法 | |
CN103914333B (zh) | 基于片上网络互连的多核存储***仿真器 | |
CN109710229A (zh) | 一种面向gpu芯片图形管线单元架构验证方法及平台 | |
US8600722B1 (en) | Method and apparatus for providing program-based hardware co-simulation of a circuit design | |
Nguyen et al. | Using model checking to identify timing interferences on multicore processors | |
Biancolin et al. | Accessible, FPGA resource-optimized simulation of multiclock systems in firesim | |
CN109583051B (zh) | 一种基于SystemC的面向GPU硬件的glCallList TLM模型 | |
TW201232408A (en) | Cycle-count-accurate (CCA) processor modeling for system-level simulation | |
JP2001256048A (ja) | データ処理装置のシミュレーション | |
Lantreibecq et al. | Model checking and co-simulation of a dynamic task dispatcher circuit using CADP | |
Xiang et al. | Parameterized design and formal verification of multi-ported memory | |
US11048843B1 (en) | Dynamic netlist modification of compacted data arrays in an emulation system | |
Kallel et al. | Monitoring transaction level SystemC models using a generic and aspect-oriented framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |