计算机组成原理 —— 存储系统(主存储器基本组成)

计算机组成原理 —— 存储系统(主存储器基本组成)

  • 0和1的硬件表示
  • 整合结构
  • 寻址
    • 按字寻址和按字节寻址
      • 按字寻址
      • 按字节寻址
      • 区别总结
    • 字寻址到字节寻址转化

我们今天来看一下主存储器的基本组成

0和1的硬件表示

我们知道一个主存储器是由存储体,MAR,MDR 组成的:
在这里插入图片描述
存储体中,我们存储了许多的二进制数据,这些二进制数据都是存储在一个存储单元上的,一个存储单元可以存放一个1或者0
在这里插入图片描述
这里MOS管可以理解为一个开关,当电压足够大时,MOS管就会开通

假如我在电容上充了1v的电压,这个时候,如果我要读取这个1v,那我就要给MOS管施加一个高电压,使之流通,这样在检测端就可以检测到这个1v的电压
在这里插入图片描述
0也是这样储存的。

通过这样的原理,我们将一个一个的存储元排排站,就可以存储连续的二进制数:
在这里插入图片描述其中红色的线是挑选线(字选线),只要往红线上通高电压,我就可以选中这一行的数据,绿色的线是数据的运送线(数据线),将数据(0或1)运送出去。

我们称一行的存储元,为一个存储单元
在这里插入图片描述很多个存储单元,为一个存储体
在这里插入图片描述
在这里插入图片描述

整合结构

现在我们知道0和1是怎么存储的了,现在的问题是,怎么设计呢?
在这里插入图片描述首先第一个问题:选线,我该怎样实现我想选那一条线就选那一条线呢?

这就是MAR的功能,MAR会储存我们要选的线的序号,通过译码器,传送到对应的线(字选线)上
在这里插入图片描述
接下来就是,我读出来的数据,该放到哪里呢?,这就是MDR的功能了,读出来的数据通过位线(数据线),放到MDR中,然后CPU通过数据总线,读取数据:
在这里插入图片描述
同时我们还要增加一个控制电路,控制MAR,译码器和MDR:
在这里插入图片描述控制电路主要是为了保证电流稳定,稳定之后,再由个部分部件处理

除了这些,我们还要增加片选线(当有多块芯片时,方便我们选择我们想要的芯片)
在这里插入图片描述
还有读写控制线,有时候是两条,有时候是一条:
在这里插入图片描述最后封装出来可能是这样的:
在这里插入图片描述

寻址

按字寻址和按字节寻址

按字寻址和按字节寻址是计算机系统中两种不同的数据访问方式,它们分别适用于不同的情景和需求,下面详细解释两者的特点和区别:

按字寻址

  1. 定义:按字寻址是指处理器直接访问内存中与自身字长相同大小的数据块(即一个“字”)。例如,在32位系统中,处理器一次处理的数据为32位,那么按字寻址就是一次性访问4字节的数据。
  1. 优势:提高数据处理效率,减少访存次数,尤其适合进行大规模数据操作和高性能计算,因为减少了指令执行和数据传输的开销。
  1. 限制:要求数据必须按照处理器字长对齐存放,否则可能导致无法直接访问或需要额外的处理步骤来调整数据对齐。

按字节寻址

  1. 定义:按字节寻址是指处理器能够直接访问内存中的每一个字节。这意味着可以灵活地读取或写入任意字节,而不必受限于字长。
  1. 优势:灵活性高,适用于处理字符串、字符数据或需要精确控制数据读写位置的场景。它允许对数据进行细粒度的操作。
  1. 限制:相比按字寻址,按字节寻址可能会降低数据处理速度,尤其是在需要处理大量连续数据时,因为它可能需要更多的访存操作。

区别总结

  • 数据单位:按字寻址处理的数据单位是处理器字长的整数倍,而按字节寻址处理的是单个字节。
  • 效率与灵活度:按字寻址在处理大数据块时效率高,但不如按字节寻址灵活;按字节寻址虽灵活,但在大规模数据操作时效率较低。
  • 对齐要求:按字寻址通常要求数据对齐,而按字节寻址没有此限制。
  • 应用场合:按字寻址适用于高性能计算、大规模数据处理;按字节寻址更适合文本处理、数据解析等需要精细数据操作的场景。

在这里插入图片描述
在实际应用中,现代处理器通常支持这两种寻址方式,系统根据具体任务的需求选择最合适的访问模式。

字寻址到字节寻址转化

比如之前我是按照字寻址的,那么对应的图应该是这样:
在这里插入图片描述我们想通过字的地址来反推出字节的地址,这里我们1字是32bit,1个字节是8bit,所以我们只要将字地址乘4就可以得出字节地址
在这里插入图片描述其他寻址方式,以此类推:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第174题地下城游戏

题目&#xff1a; 题解&#xff1a; class Solution { public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int n dungeon.size(), m dungeon[0].size();vector<vector<int>> dp(n 1, vector<int>(m 1, INT_MAX));dp[n][m …

基于状态机与时间片轮的51单片机电子钟设计 程序Proteus仿真

在对分层思想、时间片轮转和状态机思想进行[简单应用] ## 二、主函数 主函数如下&#xff1a; 整个主函数的中心任务为功能选择切换任务&#xff0c;负责切换显示内容&#xff0c;控制ui变化等&#xff0c;其余任务函数除提醒任务外都是通过全局变量的形式给功能选择切换任务提…

MongoDB Map-Reduce 简介

MongoDB Map-Reduce 简介 MongoDB 是一个流行的 NoSQL 数据库,它使用文档存储数据,这些数据以 JSON 格式存储。MongoDB 提供了多种数据处理方法,其中 Map-Reduce 是一种用于批量处理和聚合数据的功能强大的工具。Map-Reduce 允许用户对大量数据进行自定义的聚合操作,适用于…

【大数据 复习】第7章 MapReduce(重中之重)

一、概念 1.MapReduce 设计就是“计算向数据靠拢”&#xff0c;而不是“数据向计算靠拢”&#xff0c;因为移动&#xff0c;数据需要大量的网络传输开销。 2.Hadoop MapReduce是分布式并行编程模型MapReduce的开源实现。 3.特点 &#xff08;1&#xff09;非共享式&#xff0c;…

MySQL学习笔记-进阶篇-视图和存储过程

四、视图和存储过程 视图 存储过程 基本语法 创建 CREATE PROCEDURE ([参数列表]) BEGIN --SQL END; 调用 CALL 存储过程名&#xff08;[参数列表]&#xff09; 查看 --查看指定数据库的存储过程及状态信息 SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SHCEMA…

构建高可用Java微服务架构的秘籍

构建高可用Java微服务架构的秘籍 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 随着云计算和分布式系统的快速发展&#xff0c;微服务架构已成为构建大型应用…

indexedDB---掌握浏览器内建数据库的基本用法

1.认识indexedDB IndexedDB 是一个浏览器内建的数据库&#xff0c;它可以存放对象格式的数据&#xff0c;类似本地存储localstore&#xff0c;但是相比localStore 10MB的存储量&#xff0c;indexedDB可存储的数据量远超过这个数值&#xff0c;具体是多少呢&#xff1f; 默认情…

【软件设计】详细设计说明书(word原件,项目直接套用)

软件详细设计说明书 1.系统总体设计 2.性能设计 3.系统功能模块详细设计 4.数据库设计 5.接口设计 6.系统出错处理设计 7.系统处理规定 软件全套资料&#xff1a;本文末个人名片直接获取或者进主页。

C语言笔试题:实现把一个无符号整型数字的二进制序列反序后输出

目录 题目 实例 方法一&#xff1a;直接交换 方法二&#xff1a;间接交换 拓展 题目 编写一个函数&#xff0c;将一个无符号整数的所有位逆序&#xff08;在32位机器下&#xff09; 实例 例如有一个无符号整数 unsigned int num 32; unsigned int 在32位系统中占4个字…

Selenium - 翻页(常用代码)

文章目录 本文基于 macOS 10.15.7 | selenium - Version: 4.21.0 | Python 3.11.5 import time import os import sys from selenium import webdriver from selenium.webdriver.common.by import Bylist_path list.txtdef next_page(driver):# 示例&#xff1a;获取页面列表…

python从入门到精通10:字符串遍历

在Python中&#xff0c;字符串遍历是一个常见的操作&#xff0c;它允许我们逐个访问字符串中的每个字符。下面将详细讲解Python字符串遍历的几种方式&#xff0c;并结合示例代码进行说明。 1. 使用for…in循环遍历字符串 for…in循环是Python中最常用的遍历字符串的方式。这种…

starrocks进行数据的删除

StarRocks 是一个高性能的分析型数据库&#xff0c;它支持对数据进行各种操作&#xff0c;包括删除操作。在 StarRocks 中&#xff0c;您可以使用 DELETE FROM 语句来删除表中满足特定条件的行。 根据 StarRocks 的文档&#xff0c;DELETE 语句的基本语法如下&#xff1a; sq…

洛谷 P10584 [蓝桥杯 2024 国 A] 数学题(整除分块+杜教筛)

题目 思路来源 登录 - Luogu Spilopelia 题解 参考了两篇洛谷题解&#xff0c;第一篇能得出这个式子&#xff0c;第二篇有比较严格的复杂度分析 结合去年蓝桥杯洛谷P9238&#xff0c;基本就能得出这题的正确做法 代码 #include<bits/stdc.h> #include<iostream&g…

测试辅助工具(抓包工具)的使用2 之 抓包工具的基本用法

1.过滤设置: Filters- --- 勾选use Filters- --- 下拉选择show only the following hosts ---- 输入域名或者ip地址(多个地址用;隔开) --- 点击action(Run filterset now) 2.删除数据 方式一:点击Remove all 方式二: 黑窗口输入cls,回车 删除一条数据:选中数据---右键选择Rem…

C++ | Leetcode C++题解之第179题最大数

题目&#xff1a; 题解&#xff1a; class Solution { public:string largestNumber(vector<int> &nums) {sort(nums.begin(), nums.end(), [](const int &x, const int &y) {return to_string(x) to_string(y) > to_string(y) to_string(x);});if (nu…

基于riscv架构的DAYU800开发板套件介绍

一、简介 润和-SCDAYU800 开发平台基于平头哥高性能 RISC-V 开源架构曳影 TH1520 芯片&#xff0c;集成4核高性能RISC-V处理器玄铁C910的平头哥曳影1520&#xff0c;AI算力达4TOPs支持蓝牙、音频、视频和摄像头等功能,支持多种视频输入输出接口,并提供丰富的扩展接口&#xff…

Java中的标准注解与数据校验:深入解析与实例

目录 Java中的标准注解与数据校验&#xff1a;深入解析与实例1. 基础校验注解NonNullNotBlankSize 2. 数值校验注解Min & MaxPositive & Negative 3. 枚举与模式匹配自定义注解示例&#xff08;概念性展示&#xff09; 4. 自定义校验逻辑结论 Java中的标准注解与数据校…

Apple - Cocoa Event Handling Guide

本文翻译整理自&#xff1a;Cocoa Event Handling Guide&#xff08; https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/Introduction/Introduction.html#//apple_ref/doc/uid/10000060i 文章目录 一、导言本文件的组织另见 二、事件…

北京宠物美容护理app,化身奇迹“萌”宠

随着经济与互联网的飞速发展&#xff0c;宠物在短视频领域大放异彩&#xff0c;吸引着越来越多的人开始养宠物&#xff0c;为了让宠物更健康&#xff0c;更可爱的成长&#xff0c;宠物美容护理的需求也不断增加&#xff0c;为了帮助人们更加便捷、高效的进行美容、健康护理&…