课程实验报告课程名称:计算机组成原理实验名称:树莓派硬件检测及操作院系:计算机科学与技术专业班级:学号:姓名:指导教师:2015 年12 月30 日原创性声明本人郑重声明:所呈交的实验报告,是本人独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
作者签名:日期:年月日目录一、课题背景 (3)1.平台背景 (3)2.实验背景 (3)二、课题目标 (3)1.检测硬件信息 (3)2.超频操作及效果检测 (3)3.动态调整内存主频 (3)三、实验过程记录 (4)1.建立连接 (4)2.硬件信息检测 (6)1)CPU基本信息(静态信息) (6)2)动态信息 (7)3.超频操作 (9)1)原主频 (9)2)第一次超频 (10)3)第二次超频 (10)4.动态调整内存主频 (10)四、实验结论 (10)五、实验中的问题 (11)六、实验总结 (11)一、课题背景1.平台背景在本次计算机组成原理大作业中,我选择了树莓派(raspberry pi)作为开发试验的平台。
树莓派只有信用卡大小的卡片式电脑,其系统基于Linux。
自从其问世以来深受计算机爱好者的喜爱。
其较小的外形使它拥有了便携,易于安装到其他设备上等特点。
在其较小的外表下隐藏着两大的功能:●网卡:10/100 自适应网卡●CPU:Broadcom BCM2836 900MHz 4核 ARM Cortex-A7●GPU:支持 Open GL ES 2.0, OpenVG 硬件加速,1080p30 H.264 高清解码,带宽 1Gpixel/s, 1.5Gtexel/s or 24GFLOPs DMA 纹理解析●内存:1GB正是这些性价比较高的硬件支持,使得树莓派在开发者手中有不俗的表现。
作为计算机专业的学生,正好借此机会学习体验树莓派的强大功能,提升自己对计算机硬件方面的理解。
2.实验背景本次实验主要是通过在树莓派官方的操作系统下实现对cpu频率,温度,内存及硬盘的使用情况的检测,以及对其进行超频并检测器性能上的变化。
二、课题目标1.检测硬件信息通过编写程序或使用系统调用来实现对树莓派硬件信息的实时监控,如cpu占用率,cpu温度,内存使用情况,cpu的频率以及cpu各个核的信息等。
2.超频操作及效果检测对树莓派进行两次不同频率的超频操作,并在每次超频后对系统的功能进行测试分析,总结得出结论。
3.动态调整内存主频将内存主频在CPU和GPU之间动态调整分配可提高CPU与内存之间的交互效率,使超频后的树莓派能更好的适应高频的CPU工作状态。
三、实验过程记录1.建立连接由于树莓派只是一个集成了许多芯片的开发板,并没有鼠标键盘显示器等外设,所以第一步就是将树莓派与本人的笔记本电脑进行连接以实现后续操作。
经过查询资料最终确定了使用ssh(安全外壳协议)连接的方法,采用PuTTY软件进行ssh连接。
由于本连接方法的限制,所以必须将树莓派和笔记本电脑接在一个局域网内(本实验采用接在同意路由器下),通过对树莓派的ip访问建立ssh连接。
图3-1 使用PuTTY软件建立连接第一步图3-2成功连接在建立连接后为方便后续的实验操作,我还安装了生成图形界面投影到笔记本的软件vncserver。
通过在ssh连接的窗口中输入命令语句实现软件的安装与界面的生成。
由于树莓派的官方系统为debain系统,是基于linux的系统所以命令语句与在Ubuntu下的基本相同,操作起来比较习惯。
图3-3建立名为1的界面图3-4将界面投影到笔记本图3-5生成界面2.硬件信息检测1)CPU基本信息(静态信息)通过系统调用来显示CPU的基本信息,具体结果如下:●ARM四核●每个核的MIPS均为38.4mHz其他部分的信息经过查资料后只是能知道其名称,不太理解其具体的作用与含义,在此不做赘述。
图3-6 CPU基本信息2)动态信息动态信息指的是cpu温度,cpu占用率,内存占用情况等信息。
本部分通过使用树莓派的默认开发语言python语言编写的程序来实现。
核心代码为:import os# Return CPU temperature as a character string //CPU温度信息def getCPUtemperature():res = os.popen('vcgencmd measure_temp').readline()return(res.replace("temp=","").replace("'C\n",""))# Return RAM information (unit=kb) in a list# Index 0: total RAM# Index 1: used RAM# Index 2: free RAMdef getRAMinfo()://获取内存信息p = os.popen('free')i = 0while 1:i = i + 1line = p.readline()if i==2:return(line.split()[1:4])# Return % of CPU used by user as a character string //CPU使用率def getCPUuse():return(str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip()))# Return information about disk space as a list (unit included)# Index 0: total disk space# Index 1: used disk space# Index 2: remaining disk space# Index 3: percentage of disk useddef getDiskSpace()://硬盘空间p = os.popen("df -h /")i = 0while 1:i = i +1line = p.readline()if i==2:return(line.split()[1:5])# CPU informatiomCPU_temp = getCPUtemperature()CPU_usage = getCPUuse()# RAM information# Output is in kb, here I convert it in Mb for readability//内存信息RAM_stats = getRAMinfo()RAM_total = round(int(RAM_stats[0]) / 1000,1) //总内存RAM_used = round(int(RAM_stats[1]) / 1000,1) //已用内存RAM_free = round(int(RAM_stats[2]) / 1000,1)//剩余内存# Disk informationDISK_stats = getDiskSpace()DISK_total = DISK_stats[0] //总硬盘容量DISK_used = DISK_stats[1] //已用硬盘容量DISK_perc = DISK_stats[3] //硬盘容量占用率if __name__ == '__main__': //显示输出print('')print('CPU Temperature = '+CPU_temp)print('CPU Use = '+CPU_usage)print('')print('RAM Total = '+str(RAM_total)+' MB')print('RAM Used = '+str(RAM_used)+' MB')print('RAM Free = '+str(RAM_free)+' MB')print('')print('DISK Total Space = '+str(DISK_total)+'B')print('DISK Used Space = '+str(DISK_used)+'B')print('DISK Used Percentage = '+str(DISK_perc))运行结果为:图3-7 动态信息●CPU温度为33.6度●CPU占用率为0.9%●总内存为948.0MB(官方信息为1GB)●总硬盘容量为15GB(树莓派的硬盘是通过SD卡槽中的SD卡实现的硬盘连接,我所使用的SD卡容量为16GB)3.超频操作1)原主频通过系统调用,在终端内显示配置文件内CPU的主频,结果如下:图3-8 CPU主频信息系统默认的CPU主频为900mhz。
运行一个专门编写用于测试运算时间的程序,输出的运行时间为31.197秒,结果图为:图3-9测试程序运行时间2)第一次超频通过系统自带的config修改程序进行超频操作,将频率提高5%即为950mhz图3-10 第一次超频后频率运行测试程序的时间输出为29.576秒,结果图如下:图3-11 第一次超频后运行相同程序的时间3)第二次超频与上一步骤相同,本次选择主频为1000mhz图3-11第二次超频后频率运行相同的测试程序时间输出为28.427秒,结果图如下:图3-12第二次超频后运行相同程序的时间4.动态调整内存主频通过修改config配置文件的方法,咋config.txt文件中加入以下声明文件:gpu_mem_256=160gpu_mem_512=316cma_lwm=16//GPU最少用量cma_hwm=32//GPU最多用量当gpu的内存占用量小于最小值时从arm中获取,当gpu的内存占用量大于最大值时,将多余的内存给arm使用。
四、实验结论试程序得到的时间结果不同,主频越高处理时间越短,相对的CPU温度就越高。
所以CPU的主频不能盲目的提升。
五、实验中的问题a)在本次试验中的第一次超频操作时在设置完新的主频之后进行重启时出现了问题。