【计算机组成原理】实验4:存储器读写实验

2023-11-14

实验内容

一、实验原理

存储器是计算机的存储部件,用于存放程序和数据。存储器是计算机信息存储的核心,是计算机必不可少的部件之一,计算机就是按存放在存储器中的程序自动有序不间断地进行工作。

本系统从提高存储器存储信息效率的角度设计数据通路,按现代计算机中最为典型的分段存储理念把存储器组织划分为程序段、数据段等,由此派生了数据总线(DBus)、指令总线(IBus)、微总线(μBus)等与现代计算机设计规范相吻合的实验环境。

实验所用的存储器电路原理如下图所示,该存储器组织由二片6116构成具有奇偶概念的十六位信息存储体系,该存储体系AddBus由PC指针和AR指针分时提供,E/M控位为“1”时选通PC,反之选通AR。

image

二、存储器分类与寻址

1. 存储器组织分类表

本系统主存储器由两个部分组成,详见下表:

分类 存储容量 寻址范围
程序段 2K 0~7FFh
数据段 2K 0~7FFh

2. 存储器程序段和数据段源寻址

image

3. 存储器程序段和数据段目的寻址

image

三、存储器读写手动搭接实验

1. 将系统状态设置为“手动”、“搭接”。

2. 实验连线

连线 信号孔 接入孔 作用 有效电平
1 DRCK CLOCK 单元手动实验状态的时钟来源 上升沿打入
2 W K6(M6) 总线字长:0=16位字操作,1=8位字节操作
3 XP K7(M7) 源部件奇偶标志:0=偶寻址,1=奇寻址
4 X2 K10(M10) 源部件定义译码端X2 三八译码 八中选一 低电平有效
5 X1 K9(M9) 源部件定义译码端X1
6 X0 K8(M8) 源部件定义译码端X0
7 E/M K23(M23) 存储器地址段定义:0=AR指针,1=PC指针
8 MWR K21(M21) 存储器写使能:0=存储器写,1=存储器读
9 LDAR K17(M17) AR地址寄存器写使能 低电平有效
10 LDPC K22(M22) PC装载与PC+1 低电平有效

3. 存储器数据段读写操作

(1) 数据段写操作(字)

在进行数据存储器字操作时,地址线A0必须为0(偶地址)。向数据段的0~0005h存储单元写入1122h 3344h 5566h 三组数据,以0址单元写入数据1122h为例表述操作流程。

image

按照上述操作流程完成0002~0005h单元分别写入3344h 5566h的操作。

image

image

(2) 数据段读操作(字)

依次读出数据段0~0005h单元的内容,这里以0址单元读出为例阐述操作流程。

image

执行上述流程总线单元应显示1122h,若正确可按上述流程读出0002~0005h单元的内容。

image

4. 存储器程序段读写操作

(1) 程序段字节写操作

① 计算机规范的取指操作均以字节为单位。所以本实验以字节操作方式展开。程序段写入必须从定义地址入手,然后再进入程序存储器的写入。

② PC指针是带预置加法计数器,因此在输入起始地址后一旦后续地址为PC+1的话就不需重装PC,用PC+1指令完成下续地址的读写操作。

③ PC地址装载写入与PC+1写入流程

image

④ 按照上述PC装载写入与PC+1写入的流程分别对0000~0001h写入1234h。

image

(2) 程序段字节读操作

PC地址装载读出及PC+1读出流程
image
按照上述PC装载读出与PC+1读出的流程分别读出0000~0001h单元内容,应为1234h。

image

四、存储器读写手动在线实验

1. 将系统状态设置为“手动”、“在线”。

2. 数据段读写操作

(1) 数据存储器字写

在进行数据存储器字操作时,地址线A0必须为0(偶地址)。向数据段的0~0005h存储单元写入1122h 3344h 5566h 三组数据,以0址单元写入数据1122h为例表述操作流程。

image

按照上述操作流程完成0002~0005h单元写入3344h 5566h的操作。

(2) 数据段读操作(字)

依次读出数据段0~0005h单元的内容,这里以0址单元读出为例阐述操作流程。

image

执行上述流程总线单元应显示2211h,若正确可按上述流程读出0002~0005h单元的内容。

3. 存储器程序段读写操作

(1) 程序段字节写操作

① 计算机规范的取指操作均以字节为单位。所以本实验以字节操作方式展开。程序段写入必须从定义地址入手,然后再进入程序存储器的写入。

② PC指针是带预置加法计数器,因此在输入起始地址后一旦后续地址为PC+1的话就不需重装PC,用PC+1指令完成下续地址的读写操作。

③ PC地址装载写入与PC+1写入流程

image

按照上述PC装载写入与PC+1写入的流程分别对0000~0003h写入1234h 5678h。

(2) 程序段字节读操作

PC地址装载读出及PC+1读出流程
image

按照上述PC装载读出与PC+1读出的流程分别读出0000~0003h单元内容,应为1234h和5678h。

实验报告

学院、系: 计算机学院
专业名称: 软件工程
学生姓名: 小何学长

一、实验题目

存储器读写手动在线实验

(1) 数据存储器字写
(2) 数据段读操作(字)

存储器程序段读写操作

(1) 程序段字节写操作
(2) 程序段字节读操作

二、实验目的与要求

熟悉和了解存储器组织与总线组成的数据通路。
按照实验步骤完成实验项目,掌握存储部件在原理计算机中的运用。

三、实验步骤

1.数据段读写操作

数据存储器字写

在进行数据存储器字操作时,地址线A0必须为0(偶地址)。向数据段的0~0005h存储单元写入1122h、 3344h 、 5566h 三组数据,以0址单元写入数据1122h为例表述操作流程。

image
1122:
image
相同流程完成0002~0005h单元写入3344h 5566h的操作

3344:
image
5566:
image

数据段读操作(字)

依次读出数据段0~0005h单元的内容,这里以0址单元读出为例阐述操作流程。

image

执行上述流程总线单元应显示2211h,则正确。

image

2.存储器程序段读写操作

程序段字节写操作

①计算机规范的取指操作均以字节为单位。程序段写入必须从定义地址入手,然后再进入程序存储器的写入。

②PC指针是带预置加法计数器,因此在输入起始地址后一旦后续地址为PC+1的话就不需重装PC,用PC+1指令完成下续地址的读写操作。

③PC地址装载写入与PC+1写入流程

image

image

程序段字节读操作

PC地址装载读出及PC+1读出流程

image

image

四、心得体会

这次实验干货满满,我熟悉了解了存储器组织与总线组成的数据通路。虽然一些概念还是比较抽象和难懂,相信自己今后随着知识的增长,也能重新对这些知识再认识,淦就对了!

文档获取

完整版的实验内容+实验报告的Word文档

下载地址:https://download.csdn.net/download/HXBest/21561593?spm=1001.2014.3001.5503

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【计算机组成原理】实验4:存储器读写实验 的相关文章

随机推荐

  • list.clear()与=null以及new ArrayList<E>()的差异(Map类似)

    1 使用clear 方法 List
  • linux下载命令wget命令详解

    wget是linux最常用的下载命令 一般的使用方法是 wget 空格 要下载文件的url路径 例如 wget http www linuxsense org xxxx xxx tar gz 简单说一下 c参数 这个也非常常见 可以断点续传
  • Angular自定义表单验证

    前端表单验证 为年龄输入框添加了两个验证 并分情况填写了提示语
  • Android开发 之 指纹识别

    指纹识别 在android6 0的时候谷歌对指纹识别开始支持了 现在市面的基本上指纹识别都是在api23以上的版本 涉及到一个系统服务 FingerPrintManager 在使用FingerPrintManager这个类实现的时候发现了很
  • np.meshgrid()函数

    文章目录 1 自己理解 2 官方解释 3 参数 3 1 x1 x2 xn array like 3 2 sparse bool optional 默认false 3 3 copy bool optional 1 自己理解 np meshgr
  • 用GCC开发STM32,正点原子开发板的一个库函数版本例程示例

    GCC环境搭建 首先下载交叉编译环境GCC 这个网上有很多 百度一下就能找到下载 比如 Sourcery G for ARM EABI 我的CSDN资源里 有相关下载 熟悉下Makefile 强力推荐熟悉网络牛人李云的51cto博客 有一篇
  • java 数组的长度_Java初学者:数组,得到数组长度

    得到数组的长度在java里是很简单的 那就是 数组名 length 我们来看一个简单的程序就可以了 如下 这个就是上次的那个程序 我只是把for后面那个4改成了a length 也许有人要问了 那为什么非要求出数组的长度呢 数组在起始的时候
  • Redraiment的遭遇

    描述 Redraiment的老家住在工业区 日耗电量非常大 是政府的眼中钉肉中刺 但又没办法 这里头住的可都是纳税大户呀 今年7月 又传来了不幸的消息 政府要在7 8月对该区进行拉闸限电 但迫于压力 限电制度规则不会太抠门 政府决定从7月1
  • 【CUDA】cuda安装 (windows版)

    CUDA cuda安装 windows10版 一 前言 官方教程 二 安装工具的准备 1 CUDA toolkit Download 2 cuDNN Download 三 CUDA 安装与配置过程 测试环境是否安装成功 四 cuDNN配置
  • JAVA简介

    JAVA简介 java是一种高级的面向对象的程序设计语言 使用java编写的的程序可以在任何计算机 操作系统和支持java的硬件设备上运行 什么是java java语言的发展历程 Java是于1995年由Sun公司推出的一种极富创造力的面向
  • 手撸算法-计算表达式

    牛客原题 描述 请写一个整数计算器 支持加减乘三种运算和括号 示例1 输入 1 2 返回值 3 示例2 输入 2 3 4 5 返回值 10 示例3 输入 3 2 3 4 1 返回值 26 思路 从左向右遍历字符串 1 遇到数字则入栈 注意数
  • C#Winform窗体实现服务端和客户端通信例子(TCP/IP)

    Winform窗体实现服务端和客户端通信的例子 是参考这个地址 http www cnblogs com longwu archive 2011 08 25 2153636 html 进行了一些异常处理 提示信息的补充 还有新增获取本地IP
  • 【docker】docker 实现 的基础

    1 概述 还不懂Docker 一个故事安排的明明白白
  • 大数相加(c++)算法

    有没有想过100位数加100数的数字该如何计算出结果吗 一般计算机是无法直接计算那么大的数字 这个时候我们得模拟我们手算加法的进制过程 如何用代码把它实现 这样子就能实现大数相加了 首先我很感谢汤健同学给我分享的这串代码 我写笔记的初衷是为
  • R 中的with() 函数和 by()函数 的简单使用

    with data expr 函数用于在一个从data构建出的环境中运行R表达式 by data INDICES FUN simplify TRUE 函数用于将data中的数据 按照INDICES里面的内容拆分成若干个小的data fram
  • 提高ubuntu下访问github的速度\加速git clone速度

    这个是真的有用 https blog csdn net hn tzy article details 88903642
  • 实战中的 Promise 和 Future

    上一章介绍了 Future 类型 以及如何用它来编写高可读性 高组合性的异步执行代码 Future 只是整个谜团的一部分 它是一个只读类型 允许你使用它计算得到的值 或者处理计算中出现的错误 但是在这之前 必须得有一种方法把这个值放进去 这
  • Python正则表达式re模块学习遇到的问题

    Python正则表达式处理的组是什么 Python正则表达式处理中的匹配对象是什么 Python匹配对象的groups groupdict和group之间的关系 Python正则表达式re match r a1b2c3 匹配结果为什么是 c
  • Swiper、vue-awesome-swiper 插件使用

    Swiper在PC端和移动端都适用 官方网站 Swiper中文网首页 官方 vue2 配合 swiper5或6版本 vue3 可以使用 swiper8最新版本 一 Swiper插件 Vue React Angular框架都可以使用 1 使用
  • 【计算机组成原理】实验4:存储器读写实验

    实验内容 一 实验原理 存储器是计算机的存储部件 用于存放程序和数据 存储器是计算机信息存储的核心 是计算机必不可少的部件之一 计算机就是按存放在存储器中的程序自动有序不间断地进行工作 本系统从提高存储器存储信息效率的角度设计数据通路 按现