2021-09-04

主存中存储单元地址的分配

上B站计算机组成原理(哈工大刘宏伟)课程时,对于主存中存储单元地址的分配比较疑惑,整理了老师的课件还有几篇博客.

存储器的基本组成

在这里插入图片描述

概念整理

1.主存的核心部件是存储体,用来存放数据;
2.存储体由许多存储单元构成;
3.每个存储单元包含若干个存储元件;
4.每个存储元件可以寄存一位0/1代码;
5.每8位作为一个存储单位即字节;
6.一个存储单元可以存放一串二进制代码,这串代码即为一个存储字,简称字,代码的位数称为存储字长.
7.存储单元有编号,这些编号为存储单元的字地址.

存储体的另一种示意图

忽略存储元件

在这里插入图片描述

条件

假设字长为32位即4个字节.(0123四个小方格为一个存储单元,存放一个存储字,该存储单元的地址为字地址)

假设主存的编址单位为字节,即每个字节都有一个地址(0,1,2,3),称为字节地址

问题

现在要存储16进制数12345678H.

分析:16进制数转化位二进制刚好32位,一个字长.

解决

有两种方式存储

  1. 大端/大尾方式

在这里插入图片描述

高位字节存放在低地址,地位字节存放在高地址,并将高位字节作为字地址

  1. 小段/小尾方式

在这里插入图片描述

低位放在低地址,高位放在高地址,将低位字节作为字地址

另一个问题

假设地址线24根,按字节进行编址(即每个字节对应一个地址),

若按字节寻址,2^24=16MB//那么访问的范围可以用16MB表示

若字长为16位且按字寻址 8MW(字节为8位,字长为16位,则数值为8,单位为MW)

若字长为32位,按字寻址 4MW(同理可得)

使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值