![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机系统
麓山君陌
在校科研生
展开
-
计算机系统实验:模型机(十六)另一篇?
这一篇文章也是写模型机的,但是为什么我会有两个?保险起见还是上传一下记录下来,免得我又把资料搞丢了。这一篇就不分成很多篇了。来个大的!一、设计目的系统掌握计算机的组成和工作原理,能够自助熟练准确地阐述计算机执行机器指令的工作过程,熟练应用并设计微指令、微程序的设计及调试。二、设计内容模型机与程序运行试验是一个综合性整机实验。该模型机包含7条机器指令,它能够依照用户执行微程序完成由加、与、非...原创 2020-03-16 15:57:34 · 6173 阅读 · 0 评论 -
计算机系统原理实验:模型机(十五)总结
五、总结首先,按照惯例,上资源传送门:博客传送门:设计与架构节拍部分IR部分seg部分CPU16部分MADD部分PC部分RAM部分SM部分ttime部分gg部分c部分led部分系统测试资源传送门:03版本ps:到本博客发出来为止,该资源仍在审核,建议等待一段时间。个人心得体会总的来说,在做完前面的四个实验之后,cpu各个组件的实现已经不再是十分困难的存在了...原创 2020-03-16 15:32:51 · 3431 阅读 · 0 评论 -
计算机系统原理实验:模型机(十四)系统测试
四、系统测试4.1 测试环境采用基于FPGA进行数字逻辑电路设计的方法。采用的软件工具是QuartusII软件仿真平台。4.2 测试代码数据初始值为:A寄存器:11111100B寄存器:00000111C寄存器:01100011D寄存器:00,指向a寄存器测试程序为:00000000 0 无操作11110110 246 将c寄存器中的值移动到b寄存器//MOV111111...原创 2020-03-16 15:12:49 · 2568 阅读 · 0 评论 -
计算机系统原理实验:模型机(十三)led部分
12)led部分library ieee;use ieee.std_logic_1164.all;entity led isport(input:in std_logic_vector(7 downto 0):="ZZZZZZZZ"; en:in std_logic; clock:in std_logic; output:out std_logic_vector(7 downto ...原创 2020-03-16 15:11:42 · 2081 阅读 · 0 评论 -
计算机系统原理实验:模型机(十二)c部分
11)c部分library ieee;use ieee.std_logic_1164.all;entity c isport(input:in std_logic; en:in std_logic; clock:in std_logic; output:out std_logic:='0');end c;architecture st of c issignal i:std...原创 2020-03-16 15:11:07 · 2107 阅读 · 0 评论 -
计算机系统原理实验:模型机(十一)gg部分
10)gg部分library ieee;use ieee.std_logic_1164.all;entity gg isport(we:in std_logic; input:in std_logic_vector(7 downto 0); clock:in std_logic; en:in std_logic; output:out std_logic_vector(7 dow...原创 2020-03-16 15:10:31 · 2030 阅读 · 0 评论 -
计算机系统原理实验:模型机(十)ttime部分
9)ttime部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ttime isport(clock:in std_logic; sm:out std_logic);end ttime;architecture st of ttime issignal s:std...原创 2020-03-16 15:09:49 · 1949 阅读 · 0 评论 -
计算机系统原理实验:模型机(九)SM部分
8)SM部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sm isport(input_a,input_b:in std_logic_vector(3 downto 0); sm,clock,c,z:in std_logic; ld_pc:out std_logic;...原创 2020-03-16 15:09:09 · 2588 阅读 · 0 评论 -
计算机系统原理实验:模型机(八)RAM部分
7)RAM部分纯芯片,无代码:接口设计:address:传入的指令地址数据inclock:时钟信号memenab:总控制信号we,outenab:控制信号dio:数据的输出和写数据的写入功能实现:在地址指令的指导下,读取mif文件中适当位置的数据。并发送给ir中进行存储,简单的讲,其实就是一个非常大的寄存器,可以从外部文件mif中读取数据,写入数据,然后给整个cpu提供控制指令...原创 2020-03-16 15:08:07 · 2683 阅读 · 0 评论 -
计算机系统原理实验:模型机(七)PC部分
6)PC部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pc isport(LD_PC,IN_PC,clock:in std_logic; input:in std_logic_vector(7 downto 0); sm:in std_logic; output:...原创 2020-03-16 15:07:30 · 2206 阅读 · 0 评论 -
计算机系统原理实验:模型机(六)MADD部分
5)MADD部分library ieee;use ieee.std_logic_1164.all;entity madd isport(madd:in std_logic_vector(1 downto 0); input_0,input_1,input_2:in std_logic_vector(7 downto 0); output:out std_logic_vector(7 ...原创 2020-03-16 15:06:29 · 2500 阅读 · 0 评论 -
计算机系统原理实验:模型机(五)CPU16部分
4)cpu16部分LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cpu16 ISPORT(CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC);E...原创 2020-03-16 15:05:28 · 1983 阅读 · 0 评论 -
计算机系统原理实验:模型机(四)seg部分
3)seg部分library ieee;use ieee.std_logic_1164.all;entity seg isport(input:in std_logic_vector(3 downto 0); en:in std_logic; output:out std_logic_vector(7 downto 0));end seg;architecture ru of s...原创 2020-03-16 15:04:32 · 2325 阅读 · 0 评论 -
计算机系统实验汇总
在整理资料的时候发现我有一些做的比较好的实验,个人感觉还行,于是上传上来做一个记录,以防止日后资料丢失导致这段难忘的记忆被抹去吧。如果能对各位同好有帮助更好了。博客传送门:总线实验存储器实验时序电路实验模型机正在跟进资源传送门:总线实验运算器实验存储器实验数据通路时序电路实验微程序控制器实验模型机等博客更新完后会进行上传...原创 2020-03-16 15:00:36 · 3650 阅读 · 10 评论 -
计算机系统原理实验:模型机(三)IR部分
2)IR部分library ieee;use ieee.std_logic_1164.all;entity ir isport( ldir:in std_logic; clr:in std_logic; in3:in std_logic; in2:in std_logic; in1:in std_logic; ir7:out std_logic; ir6:out std_l...原创 2020-03-13 17:02:21 · 2411 阅读 · 1 评论 -
计算机系统原理实验:模型机(二)节拍部分
1)节拍部分LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY jiepai IS PORT ( clk : IN STD_LOGIC; tj : IN STD_LOGIC := '0'; dp : IN STD_LOGIC := '0'; qd : IN STD_LOGI...原创 2020-03-13 17:00:55 · 2452 阅读 · 0 评论 -
计算机系统原理实验:模型机(一)设计与架构
写在前面:这个实验很难,即便我当初做完了CPU实验,而且自认为做的很不错,但仍旧感觉很难。所以,这个实验和CPU实验一样,我会做很多期,希望能够比较详细的讲完怎么做。当然,如果有错误或者有不理解的地方,欢迎私信我或者评论。一、设计内容模型机与程序运行试验是一个综合性整机实验。该模型机包含7条机器指令,它能够依照用户执行微程序完成由加、与、非运算以及数据组合的任意复合运算。用户测试程序可以通过...原创 2020-03-13 16:57:47 · 4830 阅读 · 0 评论 -
计算机系统实验:时序电路实验
2019年3月21日题目:时序电路实验解释:时序电路的实现相对来讲较为简单,并没有什么特别的东西,唯一需要新学的就是如果用quartus画一张状态机图,并产生相应的vhdl文件。如图所示:生成的vhdl文件如图所示:题目:微程序控制器实验1解释:首先通过模拟器进行操作,模拟器的文件下载下来后如图所示:其中HexEdit可执行程序是用来对user_prog文件进行查看后修改,查...原创 2020-03-12 15:53:56 · 4907 阅读 · 0 评论 -
计算机系统实验:存储器实验
2019年3月11日题目:存储器实验解释:我在大约3月8号的时候就已经完成了存储器的实验,总的来说并不是很难,只要能够将书上的代码和图画到quartus里面在进行仿真和编译就可以了,下载对于我也已经不是什么难事了,总的来说完成的不错,结果如下。题目:数据通路解释:数据通路的实验也不是很难,主要就是引脚比较多,需要附加电路的支持才可以达到效果,要不然很难做。而附加电路是需要自己去学的。我...原创 2020-03-12 15:48:23 · 7589 阅读 · 1 评论 -
计算机系统实验:总线实验
2019年3月6日活动:总线实验解释:3月5日时我同时写了VHDL和dbf文件两种格式,发现通过vhdl可以很轻松的实现总线要求的所有操作,同时可以很轻松的完成实验要求的r1和r2寄存器的交换操作,但是。在通过dbf格式实现总线实验的时候出了一些状况,不知道为什么我和我的组员的现象不一致,他没有le~result这个输出而我有,而且我的总线怎么也没有输出,不知道为什么。推测是因为对三态门那个芯...原创 2020-03-12 15:46:16 · 5546 阅读 · 0 评论 -
HNU计算机系统实验缓存7&缓存8
一、test-trans 64x64矩阵转置实验:1、64×64矩阵,每行64元素,每8一组32位分8个组,故cache每4行填满整个cache。2、测试传统8分块,结果如图,发块与不分快结果一样,没有优化。这是因为A数组8x8读取数据的时候与之前一样,都是每组第一个miss以后hit,但是B数组按列存的时候,因为每四行一个块,在访问后四行的时候将前四行驱逐miss,然后访问第二列的时候...原创 2019-11-08 12:45:37 · 1638 阅读 · 0 评论 -
HNU计算机系统实验缓存5&缓存6
一、test-trans实验:1、使用./test-trans -M 32 -N 32命令根据自己在trans.c文件中设计的函数实现一个32x32矩阵的转置,此处测试函数注册等功能仅仅将示例代码(最简单的转置函数)写入,得到两个结果如图,本应同时生成两个文件trace.f0与trace.f1,包含函数运行过程中的所有操作L,S具体执行情况,但由于我的电脑问题,f0无法展示如图:2、使用./c...原创 2019-11-08 12:43:43 · 2059 阅读 · 0 评论 -
HNU计算机系统实验缓存3&缓存4
1、编写更新LRU计数值函数:当缓存成功时,本行系数LRU_count为最大值(人为设置),其他LRU_count-12、编写查找某组中牺牲行函数遍历找到LRU_count数值最小的一行,作为牺牲行3、编写命中判断函数当符合要求的时候(组索引匹配,标记位(tag)相同,且该行有效值<valid_bit>为1),调用之前的updateLru函数对Lru_count进行更新...原创 2019-11-08 12:40:13 · 1650 阅读 · 0 评论 -
HNU计算机系统实验缓存1&缓存2
1、valgrind安装:通过下载安装包,并在linux系统中进行解压,然后在里面找到运行configure可执行文件就可以进行安装安装结束后通过valgrind --log-fd=1 --tool=lackey -v --trace-mem=yes ls -l指令检测,如果有图下结果就说明安装成功实际上也可以通过linux自带的sudo apt-get valgrind instal...原创 2019-11-08 12:38:20 · 2885 阅读 · 0 评论 -
计算机系统——汇编语言基础
个人总结vim 可以新建文件,文件类型通过文件名来设置gedit 可以新建文件,文件类型通过文件名来设置as linux下的编译器as -gstabs -o 新文件名 文件名.s,生成一个新的.o文件ld -o 新文件名 文件名.o,生成一个可执行文件gcc 可以对代码进行编译,如果没有特殊标注的话直接生成.out文件,即可以直接运行的文件,具体格式如下:gcc 文件名,将会生成a....原创 2019-11-03 18:13:40 · 1012 阅读 · 0 评论 -
HNU计算机系统实验shlab7&shlab8
此为本人在进行实验时所做的实验日志,仅供参考。一、比较trace09~10执行不同结果,编程实现内建命令bg和fg的do_bgfg()处理函数:首先在之前实验的基础上执行trace09~10比较不同,得到结果如下:可以看到缺少了对bg和fg指令的处理,直接跳过,于是查看bg和fg指令的用法得到:bg指令可以将一个在后台暂停的命令变成继续执行,fg可以将后台中的命令调制到前台继续运行,...原创 2019-11-02 17:15:51 · 1905 阅读 · 0 评论 -
HNU计算机系统实验shlab5&shlab6
此为本人在进行实验时所做的实验日志,仅供参考。1、比较trace06执行不同结果,编程实现sigint_handler捕获INT响应、waitfg()等待、sigchld_handler回收僵死:首先在之前实验的基础上执行trace06比较不同,得到结果如下:可以看到少了一条指令,之前的myspin都可以正常执行,于是查看trace06文件:可以看到就是最后一条INT指令没有执行,说...原创 2019-11-02 17:12:03 · 2656 阅读 · 0 评论 -
HNU计算机系统实验shlab3&shlab4
此为本人在进行实验时所做的实验日志,仅供参考。一、编程实现eval()的后台作业管理功能并使用trace04验证:写出来eval的代码如下:接下来使用trace04跟踪文件进行测试trace04跟踪文件为:首先打印三行字符串,然后在后台运行myspin函数,计算机沉睡一秒。验证的结果如下:标准结果先打印三行字符串,然后运行./myspin 1,并通过[1]表示后台运行测试...原创 2019-11-02 17:09:19 · 3203 阅读 · 6 评论 -
HNU计算机系统实验shlab1&shlab2
此为本人在进行实验时所做的实验日志,仅供参考。1、学会编译tsh.c,调用tsh文件traceXX.txt的功能验证方法:通过make clean和make指令来对tsh.c文件进行编译,如果没有语法错误将会如上图所示,编译成功。在tracexx.txt文件中都是一条一条已经写好的命令行语句,将会通过文件流输入的方式给予我们写好的shell代码,然后与给的tshref运行结果进行比较,如果...原创 2019-11-02 17:06:44 · 4094 阅读 · 0 评论 -
HNU计算机系统实验perflab3
此为本人在进行实验时所做的实验日志,仅供参考。这个应该是汇总版的实验报告,具体的忘了。PART A代码一:void naive_rotate1(int dim,pixel *src,pixel *dst){ int i,j,tmp;//设置一个中间变量tmp,用来存储中间值 for(j=0;j<dim;j++){ tmp=dim-1-j;//由于dim-1-j会经常...原创 2019-11-02 17:03:31 · 2124 阅读 · 0 评论 -
HNU计算机系统实验perflab2
此为本人在进行实验时所做的实验日志,仅供参考。代码一:void naive_smooth1(int dim, pixel *src, pixel *dst){ int i, j; for (i = 0; i < dim; i++) for (j = 0; j < dim; j=j+2){//改变步长,尽可能多的利用循环 dst[RIDX(i, j, di...原创 2019-10-27 14:27:54 · 2732 阅读 · 0 评论 -
HNU计算机系统试验perflab1
此为本人在做实验时所记载的实验日志,仅供参考。代码一:void naive_rotate1(int dim,pixel *src,pixel *dst){ int i,j,tmp;//设置一个中间变量tmp,用来存储中间值 for(j=0;j<dim;j++){ tmp=dim-1-j;//由于dim-1-j会经常使用,所以这里进行提前计算,省去了每次计算的时间 ...原创 2019-10-27 14:21:33 · 2939 阅读 · 0 评论 -
深入理解计算机系统复习系统c++源代码
此为本人在大二下学期准备深入理解计算机系统时于闲暇时间所创,里面有部分本人自己的理解,仅供参考。此系统包含c++代码和八个txt文件,支持dev编译运行。c++主程序源码:#include <iostream>#include <windows.h>#include <fstream> using namespace std;int main()...原创 2019-10-26 20:20:30 · 888 阅读 · 1 评论 -
计算机系统总结(下·五到九章)
第五章、优化程序性能:1、优化;切入点:选择一组合适的算法和数据结构,编写出编译器能够有效优化以转换成高效可执行的源代码,多线程并行处理运算性能表示:处理器活动的顺序由时钟控制,时钟提供某个频率的规律信号,用时钟周期来表示,度量值是执行了多少条指令,而不是时钟运行的有多快优化性能从两个方面:一方面与机器无关,主要是:消除循环的低效率(将每次循环中执行多次而结果不改变的部分剔除循环);...原创 2019-10-26 20:10:56 · 638 阅读 · 0 评论 -
计算机系统总结(上·前四章)
第一章、计算机系统漫游:1、信息:信息就是位+上下文,系统中所有的信息都是由一串位表示的,区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文2、程序:源文件到目标文件的转化是由编译器驱动程序完成的,分为预处理阶段(预处理器)、编译阶段(编译器)、汇编阶段(汇编器)、链接阶段(链接器):预处理阶段修改原始的C程序,将头文件中的内容直接插入到程序文本中,得到.i文件;编译阶段将.i...原创 2019-10-26 20:08:55 · 866 阅读 · 0 评论