CN103677965B - 一种全数字快速仿真方法 - Google Patents

一种全数字快速仿真方法 Download PDF

Info

Publication number
CN103677965B
CN103677965B CN201410003561.7A CN201410003561A CN103677965B CN 103677965 B CN103677965 B CN 103677965B CN 201410003561 A CN201410003561 A CN 201410003561A CN 103677965 B CN103677965 B CN 103677965B
Authority
CN
China
Prior art keywords
technology
simulation
instruction
depositor
speed
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
Application number
CN201410003561.7A
Other languages
English (en)
Other versions
CN103677965A (zh
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.)
Beijing Shenzhou Aerospace Software Technology Co.,Ltd.
Original Assignee
BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co Ltd
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 BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co Ltd filed Critical BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co Ltd
Priority to CN201410003561.7A priority Critical patent/CN103677965B/zh
Publication of CN103677965A publication Critical patent/CN103677965A/zh
Application granted granted Critical
Publication of CN103677965B publication Critical patent/CN103677965B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公布了一种全数字快速仿真技术,其特征在于:包括以下技术部分:1)、倒序流水线技术;2)、寄存器备份技术;3)、存储***写时分配技术;4)、功能部件寄存器缓存延迟技术;5)、指令译码缓冲技术;6)、高速缓存数据仿真与延迟模拟分离技术。本发明通过组合应用,实现全数字快速仿真,满足基于全数字仿真环境的嵌入式软件开发、调试、测试等工作,显著提高研发效率,降低成本,提高质量,缩短上市时间。

Description

一种全数字快速仿真方法
技术领域
本发明属于计算机仿真技术领域,具体地说,涉及一种全数字快速仿真技术。
背景技术
C67X系列DSP是嵌入式***中普遍采用的高性能数字信号处理芯片,其采用16级流水线,8发射超长指令字等技术,以高吞吐率、低延迟、高稳定性等特点成为多种***设计的首选。但是由于该DSP高度复杂的指令集和流水线结构,数字化仿真技术面临诸多挑战,尤其是全数字快速仿真技术是解决其可用性的基础。当前DSP C67X的数字仿真只有国外TI公司的仿真软件,但是属于商业机密,且仿真性能非常低,无法满足应用需求。
发明内容
为解决背景技术中的问题,本发明提供了一种全数字快速仿真技术,通过组合应用,实现全数字快速仿真,满足基于全数字仿真环境的嵌入式软件开发、调试、测试等工作,显著提高研发效率,降低成本,提高质量,缩短上市时间。
本发明的技术方案是:
一种全数字快速仿真技术,其特征在于:包括以下技术部分:1)、倒序流水线技术;2)、寄存器备份技术;3)、存储***写时分配技术;4)、功能部件寄存器缓存延迟技术;5)、指令译码缓冲技术;6)、高速缓存数据仿真与延迟模拟分离技术。
所述倒序流水线技术是虚拟机流水线各个阶段的模拟需要储存当前模拟指令,采用倒序模拟可以有效减小程序内存消耗。
所述寄存器备份技术在模拟流水线的之前和之后,分别是寄存器备份和寄存器恢复操作。
所述存储***写时分配技术是采取用时分配的方式,即每一段地址空间,如果用户程序不进行访问,就不予分配空间,在程序执行过程中完成存储空间的分配。
所述功能部件寄存器缓存延迟技术中的功能部件,包括算术逻辑运算、浮点运算和存储器访问,最多包含10级流水线,采用倒序流水线技术需要10个函数调用。
所述指令译码缓冲技术是虚拟内核分配一片内存区域用来专门存储这些循环指令的译码信息;当下一个指令包的地址和指令译码缓存中的指令包地址一致时,那么在流水线前六个阶段就不需要进行任何操作,执行时使用指令译码缓存中的各条指令的译码信息。
所述高速缓存数据仿真与延迟模拟分离技术是处理器核在进行数据访问时,可以直接通过存储空间的快速通路进行数据的存储,保证程序运行的正确性,但是在进行***级精确模拟,需要获得时序等性能信息时,可以选择性的添加存储层次延迟模拟。
由于采用了上述技术方案,与现有技术相比较,本发明通过组合应用,实现全数字快速仿真,满足基于全数字仿真环境的嵌入式软件开发、调试、测试等工作,显著提高研发效率,降低成本,提高质量,缩短上市时间。
具体实施方式
实施例
一种全数字快速仿真技术,包括以下技术部分:1)、倒序流水线技术;2)、寄存器备份技术;3)、存储***写时分配技术;4)、功能部件寄存器缓存延迟 技术;5)、指令译码缓冲技术;6)、高速缓存数据仿真与延迟模拟分离技术。
技术一:倒序流水线技术。
C67XX的虚拟机流水线各个阶段的模拟需要储存当前模拟指令,采用倒序模拟可以有效减小程序内存消耗。由于在同一时钟中,流水线的各个阶段在实际中是同时进行的,顺序模拟和倒序模拟对结果没有关系,但是采取倒序模拟时,E1阶段上一个时钟中执行的是指令N,而DC模拟执行的是指令N+1,因此在这个时钟周期内,E1先于DC执行,DC还储存指令N+1,所以E1只需复制DC阶段指令覆盖原来的指令N;但如果如右边的顺序模拟,DC先于E1执行,DC不仅需要内存存储需要模拟的指令,同时还需要存储指令N+1为E1阶段模拟执行,由此可见,在流水线模拟阶段,倒序模拟比顺序模拟可以节省近50%的内存空间。
流水线倒序模拟可以更好保证跳转指令的正确执行,加入流水线E1模拟时正在模拟跳转指令N,倒序模拟和顺序模拟的各个阶段,左边的倒序模拟,此时PS正在模拟第N+5条执行,E1的跳转指令可以在这个时钟周期直接影响流水线PG的模拟,因此跳转指令的延迟槽为5,符合C67X跳转指令执行。
技术二:寄存器备份技术
在模拟16级流水线的之前和之后,分别是寄存器备份和寄存器恢复操作,这是因为C67X DSP采用8发射VLIW技术,即每个时钟周期最多可以执行8条指令,可能存在多条指令并行对同一寄存器的读和写,但是软件仿真平台采用高级语言编写,模拟指令执行时只能一条一条执行,因此无法模拟多条指令的并行读写寄存器操作,可能造成寄存器数值的读写错误。
C67X仿真平台采用寄存器备份技术,即在每次执行一个VLIW内多条指令之前,对寄存器进行备份,***维护两份寄存器文件,多条指令并行执行时从 一份文件中读,向另一份文件中写,从而保证了不会发生读写覆盖情况,保持程序执行语义的正确性。
技术三:存储***写时分配技术
DSP C67X支持32地址寻址空间,最多需要4G的存储空间大小,而仿真环境在模拟时不可能为每个用户程序都开辟4G的空间,而且也是不必要的。C67X仿真平台采取用时分配的方式,即每一段地址空间,如果用户程序不进行访问,就不予分配空间,在程序执行过程中完成存储空间的分配。存储空间的管理机制,在仿真平台初始化时,只是包含一系列存储块的空指针,而当实际内存读写访问到相应存储块时,才对存储区指针进行分配空间,然后运行用户程序进行操作,从而避免了空间开辟的浪费。
技术四:功能部件寄存器缓存延迟技术
功能部件,包括算术逻辑运算、浮点运算和存储器访问等,最多包含10级流水线,采用倒序流水线技术需要10个函数调用,而且只有少数指令能达到五级以上流水,鉴于高级语言的串行特征,将导致大量的无效函数调用开销;当采用解释执行进行指令模拟时,每条指令均采用一个函数进行模拟,对于多周期指令,需要将其功能进行划分,分解到多个流水级模拟函数中,鉴于上述分析,在实现时,将在Pipeline_e1完成指令的模拟执行,而E2~E10仅仅用于模拟指令执行延迟,以精确模拟时序周期,因此可用一个延迟缓冲实现,Register_Latency_Buffer,将Pipeline_e1完成的指令计算结果进行缓冲,根据DSPC67XX微结构对指令延迟的定义,在约定时钟周期后将结果写回寄存器文件。
功能部件延迟缓冲可以有效减少函数调用,集中指令模拟过程,增加片上存储***的利用率,提高模拟效率。
技术五:指令译码缓冲
DSP C67XX处理器流水线一共分为16级,分别为计算指令包地址、发送指令包地址,等待获得指令包、收取指令包、指令分派、指令译码和十个执行阶段。
虚拟内核每条指令都将模拟前六个阶段,而根据指令特点模拟其余十个阶段。因此在循环次数较大情况下,会有前六个阶段大量重复的模拟执行。而这些操作并不需要每次都完整进行,其实指令获取和译码只需要一次,也就是第一次循环时的指令获取和译码所得的译码信息。
指令译码缓存是虚拟内核分配一片内存区域用来专门存储这些循环指令的译码信息。当下一个指令包的地址和指令译码缓存中的指令包地址一致时,那么在流水线前六个阶段就不需要进行任何操作,E1阶段模拟执行时使用指令译码缓存中的各条指令的译码信息。
技术六:高速缓存数据仿真与延迟模拟分离技术
按照冯诺依曼体系结构定义,存储空间存放着所有指令和数据等计算状态信息,理论上处理器核可以直接通过存储器访问完成程序执行;但是半导体发展导致数字逻辑和存储单元的访问速度存在巨大差异,因此存储***越来越复杂,但是对于程序而言,不论是硬件Cache层次,抑或是虚拟存储管理,都是透明的,程序本身可见的只有地址空间。
Cache层次仅仅对存储***硬件设计的性能存在较大影响,而对于软件模拟器而言,其最大效果是延迟信息的获得,因此在实际设计过程中,将存储***的原始功能,即数据存储作为独立的模块,而存储层次等性能模拟作为独立的模块进行处理。
处理器核在进行数据访问时,可以直接通过存储空间的快速通路进行数据的存储,保证程序运行的正确性,但是在进行***级精确模拟,需要获得时序 等性能信息时,可以选择性的添加存储层次延迟模拟。这种功能与性能模拟分离的方式,为虚拟内核的使用提供了更大的灵活自由度。
本发明不局限于上述的优选实施方式,任何人应该得知在本发明的启示下做出的变化,凡是与本发明具有相同或者相近似的技术方案,均属于本发明的保护范围。

Claims (1)

1.一种全数字快速仿真方法,其特征在于:包括以下部分:
1)、倒序流水线技术;2)、寄存器备份技术;3)、存储***写时分配技术;4)、功能部件寄存器缓存延迟技术;5)、指令译码缓冲技术;6)、高速缓存数据仿真与延迟模拟分离技术;
所述倒序流水线技术是虚拟机流水线各个阶段的模拟需要储存当前模拟指令,采用倒序模拟可以有效减小程序内存消耗;
所述寄存器备份技术在模拟流水线的之前和之后,分别是寄存器备份和寄存器恢复操作;***维护两份寄存器文件,多条指令并行执行时从一份文件中读,向另一份文件中写,从而保证了不会发生读写覆盖情况,保持程序执行语义的正确性;
所述存储***写时分配技术是采取用时分配的方式,即每一段地址空间,如果用户程序不进行访问,就不予分配空间,在程序执行过程中完成存储空间的分配;
所述功能部件寄存器缓存延迟技术中的功能部件,包括算术逻辑运算、浮点运算和存储器访问,最多包含10级流水线,采用倒序流水线技术需要10个函数调用;
所述指令译码缓冲技术是虚拟内核分配一片内存区域用来专门存储这些循环指令的译码信息;当下一个指令包的地址和指令译码缓存中的指令包地址一致时,那么在流水线前六个阶段就不需要进行任何操作,执行时使用指令译码缓存中的各条指令的译码信息;
所述高速缓存数据仿真与延迟模拟分离技术是处理器核在进行数据访问时,可以直接通过存储空间的快速通路进行数据的存储,保证程序运行的正确性,但是在进行***级精确模拟,需要获得时序等性能信息时,可以选择性的添加存储层次延迟模拟。
CN201410003561.7A 2014-01-03 2014-01-03 一种全数字快速仿真方法 Active CN103677965B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410003561.7A CN103677965B (zh) 2014-01-03 2014-01-03 一种全数字快速仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410003561.7A CN103677965B (zh) 2014-01-03 2014-01-03 一种全数字快速仿真方法

Publications (2)

Publication Number Publication Date
CN103677965A CN103677965A (zh) 2014-03-26
CN103677965B true CN103677965B (zh) 2017-03-22

Family

ID=50315622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410003561.7A Active CN103677965B (zh) 2014-01-03 2014-01-03 一种全数字快速仿真方法

Country Status (1)

Country Link
CN (1) CN103677965B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101276B (zh) * 2018-08-14 2020-05-05 阿里巴巴集团控股有限公司 在cpu中执行指令的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1153933A (zh) * 1995-09-29 1997-07-09 松下电工株式会社 可编程控制器
CN101788919A (zh) * 2010-01-29 2010-07-28 中国科学技术大学苏州研究院 片上多核处理器时钟精确并行仿真***及仿真方法
CN103440373A (zh) * 2013-08-25 2013-12-11 浙江大学 一种多dsp***的互联配置模拟方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093594A1 (en) * 2001-11-14 2003-05-15 Smith Patrick J. Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1153933A (zh) * 1995-09-29 1997-07-09 松下电工株式会社 可编程控制器
CN101788919A (zh) * 2010-01-29 2010-07-28 中国科学技术大学苏州研究院 片上多核处理器时钟精确并行仿真***及仿真方法
CN103440373A (zh) * 2013-08-25 2013-12-11 浙江大学 一种多dsp***的互联配置模拟方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《基于SimpleScalar的龙芯CPU模拟器Sim-Godson》;张福新等;《计算机学报》;20070130;第30卷(第1期);第69-72页 *
《高性能、时钟精确C67X DSP指令模拟技术研究》;潘烽锋;《中国优秀硕士学位论文全文数据库信息科技辑》;20110715(第7期);第18-48页 *

Also Published As

Publication number Publication date
CN103677965A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
CN104049941B (zh) 跟踪指令的控制流程
CN104050012B (zh) 指令模拟处理器、方法和***
CN109643228A (zh) 用于浮点乘加运算的低能耗尾数乘法
CN102750133B (zh) 支持simd的32位三发射的数字信号处理器
CN104995599B (zh) 使用硬件与软件组合的路径概况分析
US20070234016A1 (en) Method and system for trace generation using memory index hashing
CN108351830A (zh) 用于存储器损坏检测的硬件装置和方法
CN100462922C (zh) 利用中间指令集的二进制翻译方法
Bae et al. {FlashNeuron}:{SSD-Enabled}{Large-Batch} training of very deep neural networks
CN109313556A (zh) 可中断和可重启矩阵乘法指令、处理器、方法和***
TW201128534A (en) Method and system for generating software transaction-level modeling (TLM) model
CN102207904B (zh) 用于对可重构处理器进行仿真的设备和方法
CN105930201A (zh) 一种可重构专用处理器核的功能模拟器
CN109146067A (zh) 一种基于FPGA的Policy卷积神经网络加速器
CN109508206A (zh) 向较宽的寄存器进行依赖于模式的部分宽度加载的处理器、方法和***
CN102073480B (zh) 基于时分复用实现多核处理器内核模拟的方法
CN107391796A (zh) 一种基于matlab与ansys的联合优化设计方法
US9171111B1 (en) Hardware emulation method and system using a port time shift register
CN110069418A (zh) 聚集页错误信令和处理
CN108205447A (zh) 使用早期和后期地址以及循环计数寄存器来跟踪架构状态的流引擎
CN105094949B (zh) 一种基于指令计算模型与反馈补偿的模拟方法与***
CN109690536A (zh) 将多核指令踪迹从虚拟平台仿真器取到性能模拟模型的方法和***
CN103677965B (zh) 一种全数字快速仿真方法
CN103440373A (zh) 一种多dsp***的互联配置模拟方法
WO2004017232A2 (en) Method and apparatus for translating to a hardware description language from an architecture description language

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100094 No. 28, Yongfeng Road, Beijing, Haidian District

Patentee after: Beijing Shenzhou Aerospace Software Technology Co.,Ltd.

Address before: 100094 No. 28, Yongfeng Road, Beijing, Haidian District

Patentee before: BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co.,Ltd.