.某机字长32位,主存按字节编址,现有4种不同长度的数据(字节、半字、单字、双字),请采用一种既节省存储空间,又能保证任何长度的数据都在单个存储周期内完成读写的方法,将一批数据顺序地存入准,画出主存中数据的存放示意图。 这批数据共有10个,依次是字节、半字、双字、单字、字节、单字、双字、半字、单字、字节。
时间: 2023-07-04 17:18:48 浏览: 262
可以采用字节交错存储的方式,将每个数据按照字节顺序插入到主存中,每个数据的不同长度的部分分别存储在不同的字节地址中,这样既节省了存储空间,又能够保证任何长度的数据都在单个存储周期内完成读写。
具体实现是,将每个数据的不同长度的部分按照字节顺序插入到主存中,每个数据存储的字节数都是4的整数倍,不足时在后面补0,这样可以保证任何长度的数据都能够在单个存储周期内完成读写。
对于题目中给出的10个数据,按照上述方式存储在主存中的存储示意图如下:
```
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| byte | byte | byte | byte | half | half | half | half | dbl | dbl | dbl | dbl | byte | byte | byte | byte | dbl | dbl | dbl | dbl | half | half | half |
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| byte |byte+1|byte+2|byte+3|half |half+2|half |half+2|dbl+0 |dbl+4 |dbl+8 |dbl+12|byte |byte+1|byte+2|byte+3|dbl+0 |dbl+4 |dbl+8 |dbl+12|half |half+2|half |half+2|
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
```
其中,"byte"表示一个字节,"half"表示半个字(2个字节),"dbl"表示一个双字(4个字节)。每个数据存储的首地址为4的整数倍,由于主存按字节编址,因此每个数据的不同长度的部分可能跨越4字节边界,需要注意处理。
阅读全文