【系统架构设计】计算机组成与体系结构(二)

news2024/9/21 4:25:46

计算机组成与体系结构

  • 计算机系统组成
  • 存储器系统
    • 前言
    • 主存储器
      • 存储器存储数量(计算)
    • 辅助存储器(以磁盘为例)
    • Cache存储器
  • 流水线

计算机系统组成

存储器系统

前言

存储器用来存放程序和数据的部件,是一个记忆装置,也是计算机能够实现“存储程序控制”的基础。在计算机系统中,规模较大的存储器往往分成若干级,称为存储器系统。

传统存储器系统一般分为 高速缓冲存储器(Cache)、主存、辅存 三级。

  • 主存:可由CPU直接访问,存取速度快,但容量小,一般用来存放当前正在执行的程序和数据
  • 辅存:在主机外部,存储容量大,价格较低,但存取速度较慢,一般用来存放暂时不参与运行的程序和数据,CPU不可以直接访问辅存,辅存中的程序和数据在需要时才传送到主存,因此它是主存的补充和后援;
  • Cache:存取速度比主存更快,但容量更小,用来存放当前最急需处理的程序和数据,以便快速地向CPU提供指令和数据。

因此,计算机采用多级存储器体系,确保能够获得尽可能高的存取速率,同时保持较低的成本。而多层次存储体系之所以能用低投入换来较高的存取速率,得益于局部性原理

局部性原理是指程序在执行时呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分。相应地,它所访问的存储空间也仅局限于某个区域。程序局部性包括时间局部性空间局部性

  • 时间局部性:是指程序中的某条指令一旦执行,不久以后该指令可能再次执行。产生时间局部性的典型原因是由于程序中存在着大量的循环操作;
  • 空间局部性:是指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,典型情况就是程序顺序执行

存储器中数据常用的存取方式顺序存储、直接存取、随机存取、相联存取四种。

  1. 顺序存取:存储器的数据以记录的形式进行组织,对数据的访问必须按照特定的线性顺序进行。存取时间是固定的磁带存储器采用的就是顺序存取的方式。
  2. 直接存取:使用一个共享的读写装置对所有的数据进行访问,与顺序存取相似。但是,每个数据块都拥有唯一的地址标志,读写装置可以直接移动到目的数据块所在位置进行访问。存取时间也是可变的磁盘存储器采用直接存取的方式。
  3. 随机存取:存储器的每一个可寻址单元都有唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。存取时间是固定的主存储器采用随机存储的方式。
  4. 相联存取:也是一种随机存取的形式,但是选择某一个单元进行读写是取决于内容而不是其地址。与普通的随机存取方式一样,每个单元都有自己的读写装置,读写时间也是一个常数。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问。为提高地址映射的速度,Cache 采用相联存取的方式

ps: 随机存取和相联存取由于每个单元都有唯一的读写装置,因此存取时间是固定的;顺序存取访问路线是确定的,因此存取时间也是固定的;直接存取由于磁头起始位置不同等因素,存取时间可变。

主存储器

由于CPU 要频繁访问主存,主存的性能在很大程度上影响了整个计算机系统的性能。根据工艺和技术的不同,主存可分为随机存取存储器 和 只读存储器

  1. 随机存取存储器(Random Access Memory,RAM):既可以写入也可以读出,但断电不保存,因此只能用于暂存数据。RAM 又可分为DRAM (Dynamic RAM,动态RAM)和SRAM(Static RAM,静态RAM)两种:
  • DRAM :信息会随时间逐渐消失,因此需要定时对其进行刷新维持信息不丢失;
  • SRAM:在不断电情况下信息能够一直保持而不会丢失

DRAM 密度大于SRAM,且更加便宜,但SRAM速度快,电路简单(不用刷新电路),然而容量小,价格高

  1. 只读存储器(Read Only Memory,ROM):可以看作RAM一种特殊的形式,存储器内容只能随机读出而不能写入。常用来存放那些不需要改变的信息。由于信息一旦写入存储器就固定不变了,即使断电,写入的内容也不会丢失,所以又称为固定存储器。ROM一般用于存放系统程序BIOS(Basic Input Output System,基本输入输出系统)。

存储器存储数量(计算)

不同计算机存储器编址方式不同,主要有字编址和字节编址。内存一般以字节(8位)为单位,或者以字为单位(字的长度可大可小,例如16位或32位)。

例如:内存地址从AC000H 到C7FFFH,则共有C7FFFH-AC000H=1BFFFH个地址单元(转换为十进制为 112KB)。如果该内存地址按字(16bit)编址,则共有112KB * 16 位。假设该内存由28片存储器芯片构成,已知构成此内存的芯片每片有16KB 个存储单元,则该芯片每个存储单元存储(112KB * 16) /(28 * 16KB)=4位

辅助存储器(以磁盘为例)

在这里插入图片描述

硬盘存储器在硬盘中,信息分布呈以下层次:记录面、圆柱面、磁道、扇区

一台硬盘驱动器中有多个磁盘片,每个盘片有2个记录面,每个记录面对应一个磁头,所以记录面号就是磁头号,如图1-2(a)。所有的磁头安装在一个公用的传动设备或支架上,磁头一致地沿盘面径向移动,单个磁头不能单独移动。在记录面上,一条条磁道形成一组同心圆,最外圈的磁道为0号,往内侧磁道号逐渐增加,如图1-2(b)。在一个盘组中,各记录面上相同编号(位置)的各磁道构成一个柱面,如图1-2(c)。

每个磁道片有m个磁道,则该硬盘有m个柱面引入柱面的概念是为了提高硬盘的存储速度。当主机要存入一个较大的文件时,若一条磁道存不完,就需要存放在几条磁道上。这时应该将一个文件尽可能存到同一个柱面上,如果仍存放不完,再存入相邻的柱面内

ps: 同一柱面,磁头不用移动。

通常将一条磁道划分若干段,每段称为一个扇区或扇段,每个扇区存放一个定长信息块。具体怎么划分一般由操作系统决定。磁道上扇区编号从1开始

在磁盘上进行信息读写时,首先需要定位到目标磁道,这个过程称为寻道。寻道消耗时间为寻道时间,定位到目标磁道后,需要定位到目标扇区,此过程通过旋转盘片完成,平均旋转半圈可到目标位置。故磁道访问时间为:
磁盘访问时间(存取时间) = 寻道时间 + 旋转延迟时间

Cache存储器

流水线

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

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

相关文章

Michael.W基于Foundry精读Openzeppelin第63期——Initializable.sol

Michael.W基于Foundry精读Openzeppelin第63期——Initializable.sol 0. 版本0.1 Initializable.sol 1. 目标合约2. 代码精读2.1 _getInitializedVersion() internal && _isInitializing() internal2.2 modifier initializer()2.3 modifier reinitializer(uint8 version…

Qt 异步实现事件的定时执行 - QTimer和QThread的联合使用

异步实现事件的定时执行 - QTimer和QThread的联合使用 引言一、核心源码二、其信号和槽函数简述三、定时器及其moveToThread简述 引言 在 Qt 中,如果想要定时执行某些事件或函数,通常会使用 QTimer 类。QTimer 允许设置一个时间间隔,当这个时…

聚星文社一键生成工具绘唐3科技AI工具

聚星文社一键生成工具绘唐3科技AI工具 绘唐3.0——用户文档 - 飞书云文档 聚星文社一键生成工具绘唐3科技AI工具是一个基于人工智能技术的辅助创作工具,可以帮助用户快速生成有关唐朝科技的文本内容。该工具利用自然语言处理和机器学习等技术,通过输入一…

opencv读取视频文件夹内视频的名字_时长_帧率_分辨率写入excel-cnblog

看视频的时候有的视频文件名贼长。想要翻看,在文件夹里根本显示不出来,缩短又会丢失一些信息,所以我写了一份Python代码,直接获取视频的名字,时长,帧率,还有分辨率写到excel里。 实际效果如下图…

Cesium自定义着色器构件三角面片【闪烁】问题,但是一移动视角就闪烁

问题:已知各个顶点的坐标信息、颜色和索引信息,并自定义绘制三角面片。 但是绘制的三角面片随着视角稍微改动就会出现闪烁现象!!!why? Cesium数据类型的精度问题,例如下面为了获取能接收到高精度坐标信息…

linux磁盘分区管理

首先关机状态下,先配置硬盘 硬盘分区管理 识别硬盘 》分区规划 》 格式化 》 挂载使用 [rootlocalhost ~]# lsblk 查看硬盘 分区划分(m帮助, p 查看分区, n 创建分区, d 删除分区, q 退出, w 保存, g gpt分区) [roo…

华为云发起,openGemini正式成为CNCF官方项目!

openGemini 正式成为 CNCF 官方项目 北京时间2024年7月9日,云原生计算基金会(CNCF)正式接纳云原生高性能时序数据库项目 openGemini。openGemini的加入,极大地丰富了云原生数据库技术的探索、创新和发展。 openGemini是华为云数据…

打开excel时弹出stdole32.tlb

问题描述 打开excel时弹出stdole32.tlb 如下图: 解决方法 打开 Microsoft Excel 并收到关于 stdole32.tlb 的错误提示时,通常意味着与 Excel 相关的某个组件或类型库可能已损坏或不兼容。 stdole32.tlb 是一个用于存储自动化对象定义的类型库&#x…

BN的 作用

1、背景: 卷积神经网络的出现,网络参数量大大减低,使得几十层的深层网络成为可能。然而,在残差网络出现之前,网络的加深使得网络训练变得非常不稳定,甚至出现网络长时间不更新或者不收敛的情形,…

利用 Selenium 和 Python 实现网页新闻链接抓取

在网络数据分析和信息检索中,爬虫是一项非常重要的技术。爬虫可以自动化地从网页中提取信息,极大地提升数据收集的效率。本文将以一个具体的代码实例,讲解如何使用 Selenium 库进行网页新闻链接的抓取。 前期准备 在开始之前,需…

3-7 使用深度学习解决温度即示数问题

3-7 使用深度学习解决温度即示数问题 直接上代码 %matplotlib inline import matplotlib.pyplot as plt import numpy as np import torch torch.set_printoptions(edgeitems2, linewidth75)设置Jupyter Notebook在单元格中内嵌显示图像,导入所需库并设置PyTorch的…

实时温湿度监测系统:Micropython编码ESP32与DHT22模块的无线数据传输与PC端接收项目

实时温湿度监测系统 前言项目目的项目材料项目步骤模拟ESP32接线连接测试搭建PC端ESP32拷录环境对ESP32进行拷录PC端搭建桌面组件本地数据接收桌面小组件部分 实验总结 前言 人生苦短,我用Python。 由于我在日常工作中经常使用Python,因此在进行该项目…

物流工业三防平板实时跟踪货物位置和状态

在当今全球化和高度数字化的商业环境中,物流行业的高效运作对于企业的成功和经济的繁荣至关重要。货物的准确、实时跟踪不仅能提高物流效率,还能增强客户满意度,降低运营成本。物流工业三防平板的出现,为实现货物位置和状态的实时…

使用redis进行短信登录验证(验证码打印在控制台)

使用redis进行短信登录验证 一、流程1. 总体流程图2. 流程文字讲解:3.代码3.1 UserServiceImpl:(难点)3.2 拦截器LoginInterceptor:3.3 拦截器配置类: 4 功能实现,成功存入redis (黑…

2017年,我成为了技术博主

2017年9月,我已经大三了。 >>上一篇(爪哇,我初窥门径) 我大二学了很多java技术,看似我一会就把javaweb/ssh/ssm这些技术栈给学了。 这些技术确实不难,即便是我,我都能学会,…

深入理解 LXC (Linux Containers)

目录 引言LXC 的定义LXC 的架构LXC 的工作原理LXC 的应用场景LXC 在 CentOS 上的常见命令实验场景模拟总结 1. 引言 在现代 IT 基础设施中,容器技术已经成为一种重要的应用和部署方式。与虚拟机相比,容器具有更高的效率、更轻量的特性和更快的启动速度…

MySQL GROUP_CONCAT 函数详解与实战应用

提示:在需要将多个值组合成一个列表时,GROUP_CONCAT() 函数为 MySQL 提供了一种强大的方式来处理数据 文章目录 前言什么是 GROUP_CONCAT()基本语法 示例使用 GROUP_CONCAT()去除重复值排序结果 前言 提示:这里可以添加本文要记录的大概内容…

第一次作业--数据库-搭建MySQL环境

一、下载 二、进入安装向导 1.选择Custom ,然后点击next 2.选择安装地址 点击第一个MySQL Servers然后依次点击打开到MySQL Server 8.0.37-X64 点击向右的绿色箭头 点击MySQL Server 8.0.37-X64 然后看到下面的蓝色Advanced Options 更改安装路径 然后点击next …

刷题(day02)

1、leetcode136.删除链表的结点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数…

说说iOS苹果的“开发者模式”什么时候需要打开 需不需要提前打开

在 iOS 开发过程中,开发者模式(Developer Mode)是一个非常重要的功能,它允许开发者在设备上运行和调试自己的应用程序。 经常有人私信或在群里问到,“我没有开发者模式,怎么办”,“开发者模式是…