CN103268282A - 基于远程计算机硬件实验系统的cpu设计方法及系统 - Google Patents
基于远程计算机硬件实验系统的cpu设计方法及系统 Download PDFInfo
- Publication number
- CN103268282A CN103268282A CN2013101724773A CN201310172477A CN103268282A CN 103268282 A CN103268282 A CN 103268282A CN 2013101724773 A CN2013101724773 A CN 2013101724773A CN 201310172477 A CN201310172477 A CN 201310172477A CN 103268282 A CN103268282 A CN 103268282A
- Authority
- CN
- China
- Prior art keywords
- test result
- cpu
- client
- fpga
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种基于远程计算机硬件实验系统的CPU设计方法,包括以下步骤:实验FPGA接收待测CPU的CPU设计代码,并将CPU设计代码烧写至实验FPGA中;实验FPGA对CPU设计代码进行运行测试,并将测试结果进行存储;控制FPGA在接收到客户端发送的访问请求后,对测试结果进行压缩处理后发送至服务器;服务器将测试结果转发给客户端;客户端对测试结果进行分析以生成测试结果波形图,并根据测试结果波形图判断CPU设计代码是否满足预定要求。本发明的实施例不受时间和空间的限制,大大方便用户设计CPU的过程,提高了开发效率,同时也减少了硬件维护的开销。本发明还提出了一种基于远程计算机硬件实验系统的设计系统。
Description
技术领域
本发明涉及计算机实验教学技术领域,特别涉及一种基于远程计算机硬件实验系统的CPU设计方法及系统。
背景技术
目前用于学生设计CPU的实验平台都是PC机直接连接到开发板上,也就是必须到现场开发CPU,从而限制了开发者必须到特定的场合去进行相关的开发,带来了极大的不便。
发明内容
本发明旨在至少解决上述技术问题之一或至少提供一种有用的商业选择。
为此,本发明的一个目的在于提出一种基于远程计算机硬件实验系统的CPU设计方法,该方法不受时间和空间的限制,大大方便用户设计CPU的过程,提高了开发效率,同时也减少了硬件维护的开销。
本发明的另一个目的在于提出一种基于远程计算机硬件试验系统的CPU设计系统。
为了实现上述目的,本发明第一方面的实施例提出了一种基于远程计算机硬件实验系统的CPU设计方法,包括以下步骤:实验FPGA接收待测CPU的CPU设计代码,并将所述CPU设计代码烧写至所述实验FPGA中;所述实验FPGA对所述CPU设计代码进行运行测试,并将测试结果进行存储;控制FPGA在接收到客户端发送的访问请求后,对所述测试结果进行压缩处理后发送至服务器;所述服务器将所述测试结果转发给所述客户端;所述客户端对所述测试结果进行分析以生成测试结果波形图,并根据所述测试结果波形图判断所述CPU设计代码是否满足预定要求。
根据本发明实施例的基于远程计算机硬件实验系统的CPU设计方法,利用软件的方式连接远程运行的CPU开发板,将设计好的CPU设计代码传送至开发板上,并将运行结果反馈客户端,客户端根据运行结果判断CPU设计是否合理,因而本发明的实施例不受时间和空间的限制,大大方便了用户设计CPU的过程,提高了开发效率,同时也能减少硬件维护的开销。
另外,根据本发明上述实施例的基于远程计算机硬件实验系统的CPU设计方法还可以具有如下附加的技术特征:
在本发明的实施例中,所述实验FPGA对所述CPU设计代码进行运行测试,并将测试结果进行存储,进一步包括:将所述测试结果进行本地存储和/或存储至共享SRAM中,以便从所述本地存储中读取所述测试结果或者由控制FPGA从所述共享SRAM中读取所述测试结果,其中,所述测试结果包括中间结果和最终结果。
在本发明的实施例中,所述服务器将所述测试结果转发给所述客户端,进一步包括:所述服务器接收所述控制FPGA发送的测试结果,进一步对所述测试结果进行压缩处理,并将压缩处理后的测试结果转发给所述客户端。
在本发明的实施例中,所述客户端为PC、PAD或智能手机,且所述客户端为多个,其中,所述多个客户端和所述服务器通过有线或无线的方式进行通信。
在本发明的实施例中,所述客户端对所述测试结果进行分析以生成测试结果波形图,具体包括:所述客户端接收所述服务器转发的测试结果,并对所述测试结果进行解压和解码处理,并分析解压和解码后的测试结果,以得到相应的测试结果波形图。
本发明第二方面的实施例提出了一种基于远程计算机硬件实验系统的CPU设计系统,包括:实验FPGA,所述实验FPGA用于接收待测CPU的CPU设计代码,并烧写所述CPU设计代码,并对所述CPU设计代码进行运行测试,将测试结果进行存储;控制FPGA,所述控制FPGA用于在接收客户端发送的访问请求后,对所述测试结果进行压缩处理后发送至服务器;服务器,所述服务器用于将所述测试结果转发给所述客户端;以及客户端,所述客户端用于对所述测试结果进行分析以生成测试结果波形图,并根据测试结果波形图判断所述CPU设计代码是否满足预定要求。
根据本发明实施例的基于远程计算机硬件实验系统的CPU设计系统,利用软件的方式连接远程运行的CPU开发板,将设计好的CPU设计代码传送至开发板上,并将运行结果反馈客户端,客户端根据运行结果判断CPU设计是否合理,因而本发明的实施例不受时间和空间的限制,大大方便了用户设计CPU的过程,提高了开发效率,同时也能减少硬件维护的开销。
另外,根据本发明上述实施例的基于远程计算机硬件实验系统的CPU设计系统还可以具有如下附加的技术特征:
在本发明的实施例中,所述实验FPGA对所述CPU设计代码进行运行测试,并将测试结果进行存储,进一步包括:将所述测试结果进行本地存储和/或存储至共享SRAM中,以便从所述本地存储中读取所述测试结果或者由控制FPGA从所述共享SRAM中读取所述测试结果,其中,所述测试结果包括中间结果和最终结果。
在本发明的实施例中,所述服务器用于将所述测试结果转发给所述客户端,进一步包括:所述服务器接收所述控制FPGA发送的测试结果,进一步对所述测试结果进行压缩处理,并将压缩处理后的测试结果转发给所述客户端。
在本发明的实施例中,所述客户端为PC、PAD或智能手机,且所述客户端为多个,其中,所述客户端和所述服务器通过有线或无线的方式进行通信。
在本发明的实施例中,所述客户端用于对所述测试结果进行分析以生成测试结果波形图,具体包括:所述客户端接收所述服务器转发的测试结果,并对所述测试结果进行解压和解码处理,并分析解压和解码后的测试结果,以得到相应的测试结果波形图。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计方法的流程图;
图2为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计方法的原理示意图;
图3为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计方法的远程硬件实验系统的CPU实验界面示意图;
图4为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计方法的带CACHE的流水线CPU流水线的数值示意图;
图5为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计系统的结构图;和
图6为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计方法的带CACHE的CPU运行效果示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
以下结合附图详细描述根据本发明实施例的基于远程计算机硬件实验系统的CPU设计方法及系统。
图1为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计方法的流程图。
如图1所示,根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计方法,包括以下步骤:
步骤S101,实验FPGA接收待测CPU的CPU设计代码,并将该CPU设计代码烧写至实验FPGA中。具体而言,实验FPGA接收来自客户端的待测CPU设计代码,并烧写该CPU设计代码。其中,待测CPU设计代码由用户输入至客户端,经过客户端相关软件发送至实验FPGA。
步骤S102,实验FPGA对CPU设计代码进行运行测试,并将测试结果进行存储。具体而言,在接收并烧写CPU设计代码后,实验FPGA根据CPU设计代码运行CPU以对CPU设计代码进行测试,并将输出的测试结果进行存储。具体地,将测试结果进行本地存储和/或存储至共享SRAM中,以便本地的输入输出设备从本地存储中读取测试结果,或者由控制FPGA从共享SRAM中读取测试结果。其中,测试结果包括中间结果和最终结果。共享SRAM用于存储运行在实验FPGA上的CPU输出数据,供实验FPGA和控制FPGA读写数据。
步骤S103,控制FPGA在接收到客户端发送的访问请求后,对测试结果进行压缩处理后发送至服务器。具体而言,客户端欲查看测试结果,向控制FPGA发送访问请求,控制FPGA在接收到客户端发送的访问请求后,采集并获取存储在共享SRAM上的相应地址上的测试结果,并对该测试结果进行压缩、编码等处理,并将处理后的压缩数据发送给服务器。
步骤S104,服务器将测试结果转发给客户端。即服务器接收控制FPGA发送的压缩数据(即压缩处理的测试结果),将该测试结果转发给客户端。进一步地,在本发明一个实施例中,在服务器接收到控制FPGA发送的压缩处理的测试结果后,进一步对该测试结果进行压缩、编码等处理,并将该进一步压缩处理后的测试结果转发给客户端。
步骤S105,客户端对测试结果进行分析以生成测试结果波形图,并根据测试结果波形图判断CPU设计代码是否满足预定要求。其中,客户端为但不限于PC、PAD或智能手机等支持上网的设备,且客户端的数量为多个。进一步地,客户端通过有线或无线的方式与服务器进行通信,例如:客户端可通过网线与服务器相连进行相互通信,也可以通过WIFI与服务器进行相互通信。需要说明的是,服务器是通过其上的相关应用程序实现与客户端的相互通信。
具体而言,客户端接收到服务器转发的测试结果,对该测试结果进行解压缩和解码等处理,并分析解压、解码后的各个时序逻辑关系,得到相应的测试结果波形图,用户可根据测试结果波形图判断该CPU设计代码是否正常、合理。
图2为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计方法的原理示意图。
如图2所示,该方法中涉及用于运行所设计CPU的实验FPGA、用来获取所设计CPU运行产生的中间结果和最终结果的控制FPGA、运行在服务器上的服务器中转软件、和多个客户端,图中的数据库即实验FPGA和控制FPGA的共享SRAM。
具体地,服务器与多个客户端通过有线或无线进行相互通信,服务器与数据库通过网络进行通信,控制FPGA通过USB与服务器相连,实验FPGA与控制FPGA之间相互通信。其中,多个客户端可以为PC、PAD或智能手机等支持上网的设备。图2所示的具体原理为:实验FPGA接收从客户端软件发送来的CPU设计代码,将该CPU设计代码烧写后,将CPU运行起来,产生运行结果,并将实验结果发送到本地接口和共享SRAM(即数据库),控制FPGA采集共享SRAM上的相应地址上的数据并对数据进行压缩编码,然后响应客户端相关软件的请求将压缩后的实验结果发送至服务器,服务器对实验结果进一步压缩处理后转发至多个客户端,多个客户端上的相关软件接收从服务器中转的CPU运行的中间结果和最终结果,对数据进行解码,分析CPU各个部件之间的运行中间结果和最终结果,并显示相应的波形图,用户可通过观察波形图判断CPU设计代码是否正确,从而可快速方便的检测出CPU设计是否合理,提高了开发效率。
作为一个具体地示例,本发明实施例的设计方法基于远程计算机硬件实验系统的CPU设计方法主要涉及三部分:运行在远程PC机上的CPU设计调试显示客户端软件、中转结果和请求的服务器软件、运行实验CPU的开发板硬件。其中,开发板硬件包括运行CPU的实验FPGA、采取CPU运行中间结果和最终结果的控制FPGA、用来和服务器相连的USB硬件芯片逻辑、共享SRAM等。
具体地,CPU设计中大量采用“申请——反馈”的方法,即一个部件向另一个部件发送请求,然后根据反馈执行操作。为了提高CPU工作效率,不同部件在不同的时钟边沿触发。在带Cache的CPU中,Cache取数据采用下边沿触发,可以在命中的情况下,确保在1个周期内完成取指令。首先确定CPU的总体结构和各个部分之间的接口,然后对各个部分进行设计。允许不同部分不断修改自己的接口,然后根据这些修改,改进总体结构的设计。由于CPU最初的设计就是这样不断改进而来的,比如指令集的设计,就是在译码器编写过程中修改而来。这样就让用户了解了CPU设计的这个过程,并且开发出了一套属于自己的CPU。编写完成CPU设计代码后,通过远程硬件实验系统上传实验代码,远程硬件实验系统的CPU实验界面如图3所示。如图4所示为带CACHE的流水线CPU流水线的数值。
进一步地,以下对本发明实施例涉及到的CPU的结构、功能及其性能分析进行详细说明。
对于CPU结构:CPU结构采用4级流水线,分别为:取指令、译码、执行、写寄存器。其中执行段共分为4个部件:通用部件、逻辑部件、访存部件、乘除法部件。
一、取指令段:负责维护PC寄存器,每个周期向主存控制器发送读取指令的请求。
二、译码段:每周期从主存控制器读入一条指令,根据指令的标志位判断数据相关、判断指令长度,同时还负责从指令中提取操作码和操作数。
三、执行段:通用部件负责停机、赋值、加减、跳转等指令,还负责维护跳转标记;逻辑部件负责逻辑运算;访存部件负责读写内存,如果需要访问内存,它就会向主存控制器发送访问请求;乘除法部件负责乘法和除法的前一部分。这4个部件每个周期从译码器的输出信号读取指令和操作数,如果需要本部件执行,就按照要求执行指令。这4个部件分别输出到4个流水段寄存器,通用部件和逻辑部件的输出做了寄存器编址,可以用作ByPass。每个流水段寄存器包含有效位、要写入的寄存器编号、要写入的内容三部分。4个器件的设置使得CPU有更大的改进空间,只要重新编写取指令和译码段,就能做成超标量多发射的CPU。
四、写寄存器段:从执行段的4个流水段寄存器中读取数据,并按照要求写入寄存器。如果访存部件的寄存器有效,且读主存标志位有效,则从主存控制器接收数据并写入寄存器;如果乘除法部件有效,且计算的是除法,则根据中间结果继续进行计算并将最终结果写入寄存器;其他情况下会将流水段寄存器中的数据写入寄存器。
进一步地,访存系统有2个输入和2个输出。即译码段和执行段的访存部件分别控制2个输入,译码段和写寄存器段分别获得2个输出。主存控制器负责协调2个申请和共享SRAM之间的通讯。
指令系统:在本发明的实施例中,每一条指令最多可修改1个寄存器(用A表示),最多可读取两个寄存器(用B和C表示,可以与A相同),并可附带一个立即数(至多32位,用D表示)。每一条机器指令由以下几部分构成:
(1)部件编号(2位):执行段中要进入的部件编号。
(2)指令编号(3位):每一个部件至多可支持8条完全不同的指令。
(3)ABC有效位(3位):分别表示A、B、C三个寄存器是否有效,用于译码器检查数据相关。只要将SUB、AND等指令中的A置为无效,就可以实现CMP、TEST等指令。
(4)长指令标志位(1位):表示指令是否为64位指令,如果此标志有效,则D为紧跟此条指令之后的32位数据,否则D为本条指令的低11位数据(符号扩展到32位)。
(5)A编号(4位):表示寄存器A的编号。
(6)B编号(4位):表示寄存器B的编号。
(7)C编号(4位):表示寄存器C的编号。
(8)短立即数(11位):当长指令标志无效时,D即为此11位进行符号扩展得到的32位立即数。
(9)当A、B、C都无效时,A、B、C编号共12位也可用来存放立即数,跳转指令就用到了这一点。
寄存器系统:在本发明的一个实施例中,寄存器编址用4个二进制位,共16个寄存器。具体如下:
0000~1011为通用寄存器,可以进行读写操作,由写寄存器流水段控制;
1100为标志位寄存器Flags,Flags总共9位,每一位分配如下:
(1)逻辑运算全0+逻辑运算全1+有符号大于(S=V且Z=0)+有符号小于(S!=V)+无符号大于(C=0且Z=0)+无符号小于(C)+等于(Z)+有符号溢出(V)+负数(S)。其中高2位由执行段逻辑部件控制,低7位由执行段通用部件控制。读取1100号寄存器时,会将Flags高位补0扩展为32位读取。
(2)1101为指令指针寄存器PC。PC总共为19位,读取时会根据当前的PC算出指令所在的处的地址,并将其高位补0扩展成32位数据,由取指令段对其进行控制维护。
(3)1110为ByPass0,即执行段通用部件的流水段寄存器的一部分,由通用部件控制。
(4)1111为ByPass1,即执行段逻辑部件的流水段寄存器的一部分,由逻辑部件控制。
对于CPU的功能:CPU_cache中使用了两个1024×32的存储单元作为I-Cache和D-Cache。Cache采用直接相连映像,即主存地址的低10位作为Cache地址,高9位保存在每个Cache行中。另外,对于每个Cache要有1024个标记位,表示每一行是否有效。由于希望这些标志位在reset信号有效时能异步清零,因此没有使用FPGA板载的时序内存单元。另外,为简单起见,此系统中没有做I-Cache和D-Cache的同步,即假定程序不会修改自己的代码。Cache全部采用下降沿读取/写入数据,采用写透式算法写主存。
取指令段/访存部件与Cache的交互如下:
时钟上升沿时,有取指令段或访存部件发送访存请求;
时钟下降沿时,Cache中读出数据;
时钟下降沿过后一点(用组合电路实现),生成访存失败信号:如果Cache命中则访问成功,否则访问失败;
时钟上升沿时,流水线响应访存失败信号;如果访存失败,则要重新发送访存请求并进行必要的流水线停滞;如果访存成功则继续进行。
Cache与主存的交互如下:
为了表现出Cache的优势,在这个系统中将主存抽象成为反复运转的状态机,总共有8个状态,每8个周期至多访问1次主存。如果在流水段与Cache的交互中发生了访存失败,则向主存发送访问信号。
每次遇到状态7,会将主存的访问结果写入Cache,这样在下个周期时,流水段发送的访存信号就可以命中Cache,从而访存成功。
在这种访存机制下,有可能一个取指令访问需要等十几个时钟周期。但是,对于循环较多的程序来说,即使在这样的访存机制下,执行效率也能得到大幅提高。
对于CPU性能分析:
(1)主频分析:
在本发明的实施例中,提升CPU主频所遇到的瓶颈有两个:一是乘除法,二是内存访问。
对于乘法,采用非常快速的并行乘法。首先将第二个32位操作数分成8个4位二进制数,并与第一个操作数相乘,然后再将得到的8个乘积相加。在短乘法中,对4位二进制数进行枚举,当短整数为1111时计算量最大,需把4个数加和,共2个加法器延迟。因此,计算两个32位二进制数相乘只需要5个加法器的延迟多一点。
对于除法,在CPU中实现16位二进制数之间的除法运算。将除法分到两个流水段执行,使得主频提升了1倍。
对于访存,使用Cache解决。制作了1024×32的I-Cache和D-Cache,能够很大程度上避免访存,使得流水线连续运行。
(2)CACHE分析:
通过计算可以知道,所用测试程序总共执行了2977条语句,输出数据18次。如果不使用Cache,则总共需要访存将近3000次。以每次访存8周期计,总共需要24000周期运行。
在仿真波形文件中,可以看出程序总共执行了大约180us。在20MHz的主频下,每个时钟周期为50ns,程序总共运行了3600个时钟周期。
Cache的加入,使得程序的运行时间有了质的飞跃,如图6所示,左侧部分比较密集的RamR线表示程序一开始读取指令,即循环体执行第一次;中间RamR线非常稀疏,表示程序读取过一遍指令之后,就会连续执行,不会再读取指令。对比可以看出,第一次执行循环占的比例非常大,这也说明Cache具有非常明显的加速作用。
最后将设计的CPU代码上传至实验FPGA进行运行。即完成了一套全新的机器指令和汇编指令的设计。其中,机器指令特别方便于译码器工作,只需要检查几个标志位就可以判断出所读取的寄存器编号、所写入的寄存器编号、指令长度、附带立即数的位置等。
同时指令系统给了程序员非常大的自由空间,比如跳转指令。成功完成了1024×32的I-Cache和同样大小的D-Cache。Cache对于循环较多和需要反复访问同一段内存的程序起到了大幅加速效果。
根据本发明实施例的基于远程计算机硬件实验系统的CPU设计方法,利用软件的方式连接远程运行的CPU开发板,将设计好的CPU设计代码传送至开发板上,并将运行结果反馈客户端,客户端根据运行结果判断CPU设计是否合理,因而本发明的实施例不受时间和空间的限制,大大方便了用户设计CPU的过程,提高了开发效率,同时也能减少硬件维护的开销。
图5为根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计系统的结构图。
如图5所示,根据本发明一个实施例的基于远程计算机硬件实验系统的CPU设计系统500,包括:实验FPGA510、控制FPGA520、服务器530和客户端540。
实验FPGA510用于接收待测CPU的CPU设计代码,并烧写该CPU设计代码,并对该CPU设计代码进行运行测试,将测试结果进行存储。具体地,实验FPGA510接收来自客户端540的待测CPU设计代码,并烧写该CPU设计代码。在接收并烧写CPU设计代码后,实验FPGA510根据CPU设计代码运行CPU以对CPU设计代码进行测试,并将输出的测试结果进行存储。具体而言,将测试结果进行本地存储和/或存储至共享SRAM中,以便本地的输入输出设备从本地存储中读取测试结果,或者由控制FPGA520从共享SRAM中读取测试结果。其中,测试结果包括中间结果和最终结果。共享SRAM用于存储运行在实验FPGA510上的CPU输出数据,供实验FPGA510和控制FPGA520读写数据。
控制FPGA520用于在接收到客户端540发送的访问请求后,对测试结果进行压缩处理后发送至服务器530。具体而言,当客户端540欲查看测试结果时,向控制FPGA520发送访问请求,控制FPGA520在接收到客户端540发送的访问请求后,采集并获取存储在共享SRAM上的相应地址上的测试结果,并对该测试结果进行压缩、编码等处理,并将处理后的压缩数据发送给服务器530。
服务器530用于将测试结果转发给客户端540。具体而言,服务器530接收控制FPGA520发送的压缩数据(即压缩处理的测试结果),将该测试结果转发给客户端540。进一步地,在本发明一个实施例中,在服务器530接收到控制FPGA520发送的压缩处理的测试结果后,进一步对该测试结果进行压缩、编码等处理,并将该进一步压缩处理后的测试结果转发给客户端540。
客户端540用于将测试结果进行分析以生成测试结果波形图,并根据该测试结果波形图判断CPU设计代码是否满足预定要求。其中,客户端540为但不限于PC、PAD或智能手机等支持上网的设备,且客户端540的数量为多个。进一步地,客户端540通过有线或无线的方式与服务器530进行通信,例如:客户端540可通过网线与服务器530相连进行相互通信,也可以通过WIFI与服务器530进行相互通信。需要说明的是,服务器530是通过其上的相关应用程序实现与客户端540的相互通信。
具体而言,客户端540接收到服务器530转发的测试结果,对该测试结果进行解压缩和解码等处理,并分析解压、解码后的各个时序逻辑关系,得到相应的测试结果波形图,用户可根据测试结果波形图判断该CPU设计代码是否正常、合理。
根据本发明实施例的基于远程计算机硬件实验系统的CPU设计系统,利用软件的方式连接远程运行的CPU开发板,将设计好的CPU设计代码传送至开发板上,并将运行结果反馈客户端,客户端根据运行结果判断CPU设计是否合理,因而本发明的实施例不受时间和空间的限制,大大方便了用户设计CPU的过程,提高了开发效率,同时也能减少硬件维护的开销。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
Claims (10)
1.一种基于远程计算机硬件实验系统的CPU设计方法,其特征在于,包括以下步骤:
实验FPGA接收待测CPU的CPU设计代码,并将所述CPU设计代码烧写至所述实验FPGA中;
所述实验FPGA对所述CPU设计代码进行运行测试,并将测试结果进行存储;
控制FPGA在接收到客户端发送的访问请求后,对所述测试结果进行压缩处理后发送至服务器;
所述服务器将所述测试结果转发给所述客户端;
所述客户端对所述测试结果进行分析以生成测试结果波形图,并根据所述测试结果波形图判断所述CPU设计代码是否满足预定要求。
2.如权利要求1所述的基于远程计算机硬件实验系统的CPU设计方法,其特征在于,所述实验FPGA对所述CPU设计代码进行运行测试,并将测试结果进行存储,进一步包括:
将所述测试结果进行本地存储和/或存储至共享SRAM中,以便从所述本地存储中读取所述测试结果或者由控制FPGA从所述共享SRAM中读取所述测试结果,其中,所述测试结果包括中间结果和最终结果。
3.如权利要求1所述的基于远程计算机硬件实验系统的CPU设计方法,其特征在于,所述服务器将所述测试结果转发给所述客户端,进一步包括:
所述服务器接收所述控制FPGA发送的测试结果,进一步对所述测试结果进行压缩处理,并将压缩处理后的测试结果转发给所述客户端。
4.如权利要求1-3任一项所述的基于远程计算机硬件实验系统的CPU设计方法,其特征在于,所述客户端为PC、PAD或智能手机,且所述客户端为多个,其中,所述多个客户端和所述服务器通过有线或无线的方式进行通信。
5.如权利要求1所述的基于远程计算机硬件实验系统的CPU设计方法,其特征在于,所述客户端对所述测试结果进行分析以生成测试结果波形图,具体包括:
所述客户端接收所述服务器转发的测试结果,并对所述测试结果进行解压和解码处理,并分析解压和解码后的测试结果,以得到相应的测试结果波形图。
6.一种基于远程计算机硬件实验系统的CPU设计系统,其特征在于,包括:
实验FPGA,所述实验FPGA用于接收待测CPU的CPU设计代码,并烧写所述CPU设计代码,并对所述CPU设计代码进行运行测试,将测试结果进行存储;
控制FPGA,所述控制FPGA用于在接收客户端发送的访问请求后,对所述测试结果进行压缩处理后发送至服务器;
服务器,所述服务器用于将所述测试结果转发给所述客户端;以及
客户端,所述客户端用于对所述测试结果进行分析以生成测试结果波形图,并根据测试结果波形图判断所述CPU设计代码是否满足预定要求。
7.如权利要求6所述的基于远程计算机硬件实验系统的CPU设计系统,其特征在于,所述实验FPGA对所述CPU设计代码进行运行测试,并将测试结果进行存储,进一步包括:
将所述测试结果进行本地存储和/或存储至共享SRAM中,以便从所述本地存储中读取所述测试结果或者由控制FPGA从所述共享SRAM中读取所述测试结果,其中,所述测试结果包括中间结果和最终结果。
8.如权利要求6所述的基于远程计算机硬件实验系统的CPU设计系统,其特征在于,所述服务器用于将所述测试结果转发给所述客户端,进一步包括:
所述服务器接收所述控制FPGA发送的测试结果,进一步对所述测试结果进行压缩处理,并将压缩处理后的测试结果转发给所述客户端。
9.如权利要求6-8任一项所述的基于远程计算机硬件实验系统的CPU设计系统,其特征在于,所述客户端为PC、PAD或智能手机,且所述客户端为多个,其中,所述客户端和所述服务器通过有线或无线的方式进行通信。
10.如权利要求6所述的基于远程计算机硬件实验系统的CPU设计方法,其特征在于,所述客户端用于对所述测试结果进行分析以生成测试结果波形图,具体包括:
所述客户端接收所述服务器转发的测试结果,并对所述测试结果进行解压和解码处理,并分析解压和解码后的测试结果,以得到相应的测试结果波形图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310172477.3A CN103268282B (zh) | 2013-05-10 | 2013-05-10 | 基于远程计算机硬件实验系统的cpu设计方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310172477.3A CN103268282B (zh) | 2013-05-10 | 2013-05-10 | 基于远程计算机硬件实验系统的cpu设计方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103268282A true CN103268282A (zh) | 2013-08-28 |
CN103268282B CN103268282B (zh) | 2016-03-23 |
Family
ID=49011913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310172477.3A Expired - Fee Related CN103268282B (zh) | 2013-05-10 | 2013-05-10 | 基于远程计算机硬件实验系统的cpu设计方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103268282B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105024884A (zh) * | 2015-07-28 | 2015-11-04 | 深圳市同创国芯电子有限公司 | 一种可编程逻辑器件pld调试系统及方法 |
CN105717847A (zh) * | 2016-04-22 | 2016-06-29 | 兰州大学 | 嵌入式开发中硬件输入模块和外部接口的远程控制技术 |
CN106453485A (zh) * | 2016-08-12 | 2017-02-22 | 北京邮电大学 | 基于分时共享技术的嵌入式远程实验平台工作方法及系统 |
CN106647583A (zh) * | 2017-01-19 | 2017-05-10 | 北京理工大学 | 一种基于远程实验的移动实验教学管理平台 |
CN114676064A (zh) * | 2022-04-08 | 2022-06-28 | 浙江大学 | 一种面向硬件语言代码的通用测试系统和方法 |
WO2023000938A1 (zh) * | 2021-07-22 | 2023-01-26 | 深圳英集芯科技股份有限公司 | 一种流水线cpu架构图的绘制方法及终端设备 |
CN116540270A (zh) * | 2023-07-07 | 2023-08-04 | 成都云智北斗科技有限公司 | 一种集成前端解算终端的gnss接收机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814248A (zh) * | 2010-04-07 | 2010-08-25 | 清华大学 | 一种计算机硬件系列课程的远程实验系统 |
CN102306089A (zh) * | 2011-07-04 | 2012-01-04 | 清华大学 | 用于计算机硬件实验的远程vga显示的装置及方法 |
CN102680886A (zh) * | 2011-03-11 | 2012-09-19 | 清华大学 | 远程逻辑分析系统 |
-
2013
- 2013-05-10 CN CN201310172477.3A patent/CN103268282B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814248A (zh) * | 2010-04-07 | 2010-08-25 | 清华大学 | 一种计算机硬件系列课程的远程实验系统 |
CN102680886A (zh) * | 2011-03-11 | 2012-09-19 | 清华大学 | 远程逻辑分析系统 |
CN102306089A (zh) * | 2011-07-04 | 2012-01-04 | 清华大学 | 用于计算机硬件实验的远程vga显示的装置及方法 |
Non-Patent Citations (1)
Title |
---|
陈永强,全成斌,李山山: "基于远程硬件实验系统的多流水带Cache CPU设计", 《实验技术与管理》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105024884A (zh) * | 2015-07-28 | 2015-11-04 | 深圳市同创国芯电子有限公司 | 一种可编程逻辑器件pld调试系统及方法 |
CN105717847A (zh) * | 2016-04-22 | 2016-06-29 | 兰州大学 | 嵌入式开发中硬件输入模块和外部接口的远程控制技术 |
CN106453485A (zh) * | 2016-08-12 | 2017-02-22 | 北京邮电大学 | 基于分时共享技术的嵌入式远程实验平台工作方法及系统 |
CN106453485B (zh) * | 2016-08-12 | 2019-08-02 | 北京邮电大学 | 基于分时共享技术的嵌入式远程实验平台工作方法及系统 |
CN106647583A (zh) * | 2017-01-19 | 2017-05-10 | 北京理工大学 | 一种基于远程实验的移动实验教学管理平台 |
WO2023000938A1 (zh) * | 2021-07-22 | 2023-01-26 | 深圳英集芯科技股份有限公司 | 一种流水线cpu架构图的绘制方法及终端设备 |
CN114676064A (zh) * | 2022-04-08 | 2022-06-28 | 浙江大学 | 一种面向硬件语言代码的通用测试系统和方法 |
CN114676064B (zh) * | 2022-04-08 | 2024-08-23 | 浙江大学 | 一种面向硬件语言代码的通用测试系统和方法 |
CN116540270A (zh) * | 2023-07-07 | 2023-08-04 | 成都云智北斗科技有限公司 | 一种集成前端解算终端的gnss接收机 |
Also Published As
Publication number | Publication date |
---|---|
CN103268282B (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103268282B (zh) | 基于远程计算机硬件实验系统的cpu设计方法及系统 | |
CN1885295B (zh) | 使用逻辑单元建置集成电路 | |
CN101763245A (zh) | 用于对直接存储器存取引擎进行编程的方法和装置 | |
CN101763246A (zh) | 用于对直接存储器存取引擎进行编程的方法和装置 | |
CN104978284A (zh) | 处理器子程序高速缓冲存储器 | |
CN102841837A (zh) | 一种基于模拟器的软硬件协同验证方法及系统 | |
CN103714190B (zh) | 简单高效的在线仿真方法及接口电路 | |
CN104169886A (zh) | 通过地址的运行时间检测间接采样 | |
CN109891395B (zh) | 调试系统和方法 | |
CN105027089B (zh) | 内核功能性检查器 | |
US11119892B2 (en) | Method, device and computer-readable storage medium for guiding symbolic execution | |
CN100388187C (zh) | 可变群组组合分支目标地址快取传送每一快取列多目标地址的装置和方法 | |
US7110934B2 (en) | Analysis of the performance of a portion of a data processing system | |
CN101727513A (zh) | 一种超长指令字处理器的设计和优化方法 | |
Vaugon et al. | Programming microcontrollers in ocaml: the ocapic project | |
CN115858092A (zh) | 时序仿真方法、装置及系统 | |
CN113672555B (zh) | 处理器核、处理器、片上系统和调试系统 | |
Karmore et al. | Universal methodology for embedded system testing | |
CN106970825A (zh) | 一种基于gdb可配置框架的arm7仿真目标机实现方法 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
US7308548B2 (en) | Processor organizing apparatus and method for organize a pipeline processor | |
Prete et al. | The ChARM tool for tuning embedded systems | |
CN108846248B (zh) | 一种应用建模及性能预测方法 | |
CN103186977A (zh) | 微处理器中实现遥控信号发射指令控制的电路结构 | |
Pallister | Exploring the fundamental differences between compiler optimisations for energy and for performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160323 Termination date: 20210510 |