从 01 开始 从 01 开始
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • 数据库
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Node
  • Windows 使用技巧
  • 最全面的输入法教程
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 各大平台
  • 远程控制
  • RSS
  • 图片类工具
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 反腐
  • GFW
  • 404 内容
  • 审查与自我审查
  • 互联网
  • 2022
  • 2023
  • 2024
  • 2025
  • 关于本站
  • 关于博主
  • 网站动态
  • 公告栏
  • 友人帐
  • 从零开始搭建一个博客
  • 搭建邮件服务器
  • 本站分享
  • 文章分类
  • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • 数据库
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Node
  • Windows 使用技巧
  • 最全面的输入法教程
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 各大平台
  • 远程控制
  • RSS
  • 图片类工具
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 反腐
  • GFW
  • 404 内容
  • 审查与自我审查
  • 互联网
  • 2022
  • 2023
  • 2024
  • 2025
  • 关于本站
  • 关于博主
  • 网站动态
  • 公告栏
  • 友人帐
  • 从零开始搭建一个博客
  • 搭建邮件服务器
  • 本站分享
  • 文章分类
  • 文章归档
  • 计算机历史

  • 数字电路

  • 计算机组成原理

    • 网课-计算机组成原理(北大-陆俊林)

      • 概述-计算机组成原理(北大-陆俊林)
      • 第1周-计算机组成章节视频简介
      • 101-电子计算机的兴起
      • 102-冯·诺依曼结构的要点
      • 103-冯·诺依曼结构的小故事
      • 104-计算机结构的简化模型
      • 105-计算机执行指令的过程
      • 106-计算机输入和输出
      • 107-冯诺依曼结构和具体实现
      • 201-设计自己的计算机
      • 202-x86 体系结构
      • 203-x86 指令简介
      • 204-复杂的 x86 指令举例
      • 205-MIPS 体系结构
      • 206-MIPS 指令简介
      • 301-算术运算和逻辑运算
      • 302-门电路的基本原理
      • 303-寄存器的基本原理
      • 304-逻辑运算的实现
      • 305-加法和减法的实现
      • 306-加法器的优化
      • 401-乘法的运算过程
      • 402-乘法器的实现
      • 403-乘法器的优化 1
      • 404-乘法器的优化 2
      • 405-除法的运算过程
      • 406-除法器的实现
      • 407-除法器的优化
      • 501-处理器的设计步骤
      • 502-数据通路的建立
      • 503-运算指令的控制信号
      • 504-访存指令的控制信号
      • 505-分支指令的控制信号
      • 506-控制信号的集成
      • 601-流水线的基本原理
      • 602-流水线的优化
      • 603-超标量流水线
      • 604-流水线的冒险
      • 605-数据冒险的处理
      • 606-控制冒险的处理
      • 701-存储层次结构概况
      • 702-DRAM 和 SRAM
      • 703-主存的工作原理
      • 704-主存技术的发展
      • 705-高速缓存的工作原理
      • 706-高速缓存的组织结构
      • 707-存储容量的计算
        • 本节小结
      • 801-中断和异常的来源
      • 802-中断向量表的结构
      • 803-中断向量表的发展
      • 804-中断的处理过程
      • 805-内部中断分类说明
      • 806-基于中断的功能调用
      • 901-输入输出接口的基本功能
      • 902-输入输出接口的编址方式
      • 903-输入输出的控制方式
      • 904-中断控制方式
      • 905-外部中断的处理过程
      • 906-直接存储器访问方式
  • 操作系统

  • Linux

  • 计算机网络

  • Git

  • 计算机小知识

  • 数据库

  • 计算机基础
  • 计算机组成原理
  • 网课-计算机组成原理(北大-陆俊林)
2023-06-13
目录

707-存储容量的计算

# 707-存储容量的计算

对于存储器,我们既关心它的性能, 也关心它的容量,那么现在,在存储器容量的计算方面,却有了一些争议。 这又是怎么回事呢?我们一起来看一看。

‍

我们来看一个关于 U 盘的怪事,有一天我想把我电脑上的一些文件随身带走 我先查看了一下文件的大小总共有 3.8GB, 于是我就找了一个 4G 的 U 盘,这应该可以轻松地存下了。 于是我插上 U 盘就开始复制文件。 结果,弹出了这么个对话框,说空间不足。 我明明是个 4G 的 U 盘,结果系统却说可用大小总共只有 3.72GB, 存不下我这 3.8G 的文件。这到底是怎么回事呢?

​

‍

‍

于是我就点右键,看这个 U 盘的属性,确实显示是 3.72GB。 这里系统也统计了这个 U 盘总共有多少个字节, 然后就自己算一算,4GB 应该是多少个字节,那么学计算机的都知道, 所谓 32 位的 CPU 可以访问 4Gbyte(位)内存空间。 这就是指,32 位的信号总共可以产生 2 的 32 次方个地址。 你因此可以访问 2 的 32 次方个 byte。所以 4G 个 byte 就等于 2 的 32 次方个 byte, 也就相当于 4 乘以 1024 的 3 次方, 那总共应该是四十二亿九千四百多万个字节, 而这个 u 盘足足给我少个两亿九千多万个字节,这不是太明显的偷工减料嘛?

于是我就向生产厂商投诉,说你们给我的东西怎么少了这么多呢? 我们原本买了一个 4GB 的 U 盘,你上面标的也是 4GB 为什么实际只有 3.72GB 呢?可没想到,人家慢条斯理地跟我说了一大番道理。 说我们这个就是 4GB,是这么算的。 当然你看到的这个 41 的字节并没有错,但我们的计算方法是这样的, 这 41 个字节就大约等于 4 乘以一千的 3 次方,这就是 4GB。 其实,我们还多送了你一百多万个字节呢, 你占了便宜,反倒来投诉我们偷工减料,这又是何道理? 这我哪能轻易罢休,计算机里明明应该用 1024 作为底数。 你怎么能 1000 作为底数呢,所以你应该给够我 1 乘以 1024 的 3 次方,这才是一个 4GB 的 U 盘。 不然所谓 32 位的地址可以访问 4GB 的存储空间岂不成为了一句笑话? 于是我们双方各执一词,谁也说服不了谁。

​

‍

‍

那虽然刚才讲的这个故事是虚构的。 但是这样的争议却是真实存在的,那么就从头来看一看。 刚才提到的 4GB,其中 B,也就是 byte, 是一个数据的单位,而 G 则是这个单位的前缀。 比如说,我们经常使用的长度 1km 也就是一公里,或者叫一千米。 那它就相当于 1000m,m 就是米,这是长度的单位, 而 K 就是一个单位前缀,用来指代 1000。

那么类似的,1KG 就是一千克。 那我们在学习到的计算机的知识中也经常有这样的单位前缀。 比如说我们形容高速缓存的容量,我们会说它是 32KB, 这就等于 32 乘以 1024,在这里 K 指的是 2 的十次方。

而 M,也就是我们平常所说的兆,指的是 2 的 20 次方, 而 G 指的是 2 的 30 次方,因此我们说一个内存是 4GB 的, 这就是说它一共有 4 乘以 1024 的三次方这么多 byte。 但是按刚才 U 盘的生产厂商的说法,4GB 的 u 盘则是指 4 乘以 1000 的三次方的 byte。 因此,至少从市值看来,4GB 的 u 盘和 4GB 的内存, 虽然它们用了同样的容量标记,但实际上它们真正的容量是不一样的。 另外,如果你用同样的方法检查硬盘的容量,你也会发现硬盘的容量, 似乎也没有它标称的那么多。这也是同样的原因。好,我们在计算机系统中检查硬盘的属性。 肯定会发现,它不到 1T,那这个矛盾到底是怎么回事呢? 究竟是谁对谁错呢?

另外除了存储的容量,还有一些别的地方, 也用到了这些前缀,那他们究竟又表达的是什么含义呢?

​

‍

要确定这些单位前缀的含义,我们就得从国际单位开始说起。 第一个是温度的单位,kelvin,用 k 来表示。 第二个是时间的单位,秒,用 s 来表示。 第三个是长度的单位,米,用 m 来表示。 第四个是质量的单位,千克,用 kg 来表示。 这里我们要注意到,其实克也是一个单位, 而千则是一个单位前缀,另外还有几个其他的单位,我们就不一一说明了。

​

‍

接着我们来看国际单位制的前缀,刚才我们已经提到了 k 这种前缀。 它所代表的是一千,也就是 10 的三次方, 因为一千的这个数量并不大,人的日常生活中经常会遇到,所以这个前缀很早就确定下来了 我们要注意的是这个 k 是小写的。 当然随着社会的发展进步,人们所需要记录和计算的数也越来越大, 这也需要有新的单位前缀。比 k 更大的就是 M,就相当于 1000 的平方, 更大一级的是 G,相当于 1000 的三次方。 再高一级的是 T,是 1000 的四次方,这都是在 1960 年确定的。 也就是说在那个时代这个量级的单位的前缀就基本够用了。

​

‍

当然在后来,这些前缀又不够用了的时候,我们又必须要加新的。 75 年增加了 P 和 E,分别是 1000 的 5 次方和 6 次方。 到了 91 年,又增加了 Z 和 Y,分别是 1000 的 7 次方和 8 次方。 这就是目前最大的单位前缀了,那么有大也有小。

​

‍

‍

‍

当我们想表达更小的数时,就需要有另一个方向的前缀。 比如说 m 就是 1000 的负 1 次方,也就是千分之一。 那 mm 就是我们常用的毫米,而 ms 就是毫秒。 这些也都是人所能直接感知的范围内,所以也在很早就确定下来了。

后来在 60 年确定了 micro 这个前缀, 在中文里称之为”微“, 对应的有微米、微秒、微克等等,那它是用一个希腊字母 μ 来表示的, 当然在手写的情况下,是没有问题的。 而如果计算机里来输入,则会有一些困难。如果条件允许,我们都应该用插入特殊字符等方式, 正确地输入 μ 这个字母,只有在确实无法输入的情况下, 也可以用英文字母”u“来代替。 那么同一年,它规定了 n 这个前缀, 也就是”纳“,现在的集成电路设计都是在纳米这个尺度上。 而 1G 赫兹的时钟频率对应的时钟周期, 也就是纳秒,那比 n 更小一级的前缀是 p, 中文里译作”皮“,那由晶体管构成的逻辑门的延迟现在都是在皮秒量级的。 那再往后,64 年由设了 f 和 a 这两个单位前缀, 分别是 1000 的负 5 次方和 1000 的负 6 次方, 再到了 91 年,又增加了 z 和 y,分别是 1000 的负 7 次方和 1000 的负 8 次方。 那这些就是现在国际公认的单位和单位前缀。

​

‍

‍

而在计算机领域使用情况有所不同, 内部存储器并没有遵守国际单位制的要求, 而在外部存储器的容量标记上则是遵循了国际单位制的标准。 从这个角度来看,那似乎是外部存储器的这个标记方法才更合理一些。 那内部存储器为什么要采取 1024 为底呢?这个原因其实也很明确。 刚才我们也已经解释过,因为计算器内部采取二进制的计数, 其实最主要的就是 CPU 的运算器采用二进制的计算的方式, 比如说 15 位的地址就正好可以表示 2 的 15 次方那么多个字节, 这 15 位地址线所能表示的每一个地址都正好对应了 sm 中的一个字节, 这样在计算的时候就自然而然应该用 1024 为底

‍

‍

而对于外部存储器,它和 CPU 的距离较远,不像高速缓存和内存那样, 由 CPU 直接的操作,所以他们并没有必要采用 1024 为底的计算方法。 而其他一些参数,比如数据传输率、时钟频率虽然也在计算机内部使用,但它和刚才提到的地址宽度并没有直接的联系, 而都只是在说在一个单位的时间内要完成多少事情,比如说以太网的传输率 100 兆 bps 是指每秒钟要传输 100 兆个比特,所以这里的兆, 指的就是 1000 的二次方,而 CPU 的主频则对应了时钟的信号每秒钟要翻转多少次, 那么 3G 赫兹就是指每秒钟有 30 亿个时钟周期。 因此我们可以看到,计算机当中大多数的单位前缀 都还是采用十进制的形式,并且符合国际单位制的要求。 只有在计算内部存储器容量时,采用了二进制的形式,这样的做法都是合理的

但唯一的问题在于, 只有采取 1024 为底的前缀,也都使用了与国际单位制额前缀相同的字母, 针对这些单位前缀使用上的矛盾,也有一些官方的说法。

​

‍

那美国国家标准协会以及电器和电子工程师协会, 在 1968 年出过标准, 关于 K,它给了两个定义,一就是和国际单位制相同的,是指 1000, 第二条,它特别说明了如果是用来形容计算机存储的容量, 那这个前缀又可以表示 2 的十次方也就是 1024。 类似的,M,也有两个定义。 然而在现实中,大家仍然是各行其是,并没有按照它们的规定执行, 也就按照内存一套,外存一套,各说各话。

‍

​

因此到后来,IEEE 的标准委员会也通过美国国家标准技术研究员发布了声明, 大概意思是说,针对现状, IEEE 的标准将会将会使用大家公认的国际单位制前缀的定义, 那么 mega,也就是我们说的兆,也就是指 100 万,不再有 2 的 20 次方这样另一个定义。当然这里也说了,如果能够明确指出,是以 2 为底的, 也可以作为个例单独处理,直到有一种新的标准专门用于二进制的单位前缀

​

‍

那现在这种单位前缀的标准也已经制定出来了, 是由国际标准化组织 ISO 和国际电工委员会 IEC 制定的, 比如说 Ki 指 1024, 而 Mi 就是指 1024 的平方,Gi 则是指 1024 的三次方, 以此类推, 因此现在标记为 500GB 的硬盘,如果要对应到计算机内部存储器所标记的存储容量, 应该是 466GiB,好,我们现在常说的标记为 512MB 的内存,如果想不引起混淆,那就应该标记出 512MiB, 在这一套标准的影响下, 就不再有混淆的问题了

​

‍

# 本节小结

存储器容量计算标准现在已经有了, 但是执行的怎么样,那就是另一回事了。 现在的 CPU 和内存的厂商, 好像也没有太大的动力去改变原有的存储容量标记方式。 但是对于我们来说,已经了解了它内部的真相到底是怎么回事。 至少,不会把我们自己给搞糊涂了。

上次更新: 2024/9/29 12:08:10
706-高速缓存的组织结构
801-中断和异常的来源

← 706-高速缓存的组织结构 801-中断和异常的来源→

最近更新
01
2025 年 2 月记
02-28
02
最全面的浏览器教程-完结撒花
02-16
03
这个工具可以轻松搞到你的浏览器账户密码!
02-15
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式