- 博客(5)
- 收藏
- 关注
原创 反转链表java解法
反转链表这几天在刷算法题目时,做到了关于链表反转的问题。例如在做回文链表的时候。这里做一个回顾。我喜欢设定一个指向NULL的指针,然后去反转链表下面就是我的代码。// 反转链表// 反转链表public ListNode reverseList(ListNode head) {// 简便的记法:你会发现交换的过程是一个阶梯型的,等号的右边结果 在接下来的等式的左边 while ( head == null ) return null;// 如果head是空,那直接返回
2021-11-10 20:40:31
611
原创 高速缓存存储器组织结构
我们首先假设一个存储器结构,CPU,L1高速缓存,主存。一个存储器地址有m位,形成个不同的地址。高速缓存可组织成个高速缓存组的数组。每个组包含E个高速缓存行,每一个行由字节的数据块构成。有效位代表本行是否有意义。m位的地址可以被分为 t位(标记),s位(组索引),b位(块偏移)。高速缓存的结构用元组表示,大小。当一条加载指令指示CPU从主存地址A读出一个字时,假设L1高速缓存包含地址A处那个字的副本,高速缓存的结果使得它能通过检查地址位寻找到请求的字。类似于简单的哈希表。地址A被..
2021-07-20 19:30:12
741
原创 CPU如何访问磁盘
CPU利用“内存映射I/O”的技术访问I/O设备。I/O设备包括USB控制器,图形适配器和主机总线适配器(连接多个磁盘,连接的接口分为SCSI和SATA两种接口)等。I/O总线的数据传输速度小于系统总线和内存总线。I/O端口:为与I/O设备通信保留的地址空间中的地址。当设备连接到I/O总线,它会与端口相关联。以上图为例,磁盘控制器映射到端口0xef。CPU会实行三条指令从而读取磁盘。发送命令字,指名要读的逻辑块,指明应该存储磁盘内容的主存地址;当CPU读取磁盘后,磁盘接受指令,执行DMA数据传送
2021-07-14 14:57:18
3120
原创 DRAM(动态随机储存器)的内部工作原理简述
内部结构DRAM芯片(动态随机储存器)可被分为d个超单元,每个超单元由w个DRAM单位组成。这样的芯片储存了dw位信息。超单元被组织成阵列。每个超单元都有自己的地址:(i,j)。i表示行,j表示列。在上图的DRAM芯片中,由16个超单元,每个超单元的w=8(所含字节的位数),4行4列。信息可以通过引脚进行传输。每个引脚携带一位的信号。图中有两组引脚,2个addr引脚,用于传输超单元的行与列的地址。8个data引脚,可传送一个字节的信息。DRAM芯片会与内存控制器相连,内存控制器可以与DRAM芯片进
2021-07-11 14:18:19
7291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人