本文主要是介绍对硬盘的设想2:纸存,硬指针,软指针,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
“纸存”是设想中的存储器,它只能改写两次:写一次,再改一次,然后就不能再动了。就像拿着钢笔在纸上写字一样,所以叫纸存。
硬指针P、软指针S
S abcd
S aPcdPx
P aPcdPx S aycd
①一个软指针S,指向数据abcd
②对abcd修改两次,现在是axcd
③P链表过长,修改S,并复制aycd
上述软指针是软件实现的,它对硬盘(纸存)来说还是数据。上述硬指针是硬件实现的,是指,对一块数据进行修改后,标识新的值在哪里的那个指针,每个数据块(例如64比特每块?)都搭配1比特F值,用来区分这个数据块是数据,还是指针。
运用二级软指针,似乎可以提供更多的可修改次数?
S S abcd
S S aPcdPPPPPx
S P aPcdPPPPPx S aycd
P …
①这是二级软指针,第一个S指向第二个S,第二个S指向abcd
②abcd通过多次修改,现在是axcd
③修改第二个S至右边,并复制aycd
④当第二个S的链表也太长时,修改第一个S
三级软指针,同理。
和“纸存”一起出现的概念,是“执行存”,即存储器可以执行简单的指令。这么一来,上述链表的处理,可以在存储器内部完成,而无需通过CPU,有提速效果。如果约定链表长度不超过100,则二级软指针能处理10000次修改,三级软指针能处理100万次修改。应该用不到四级软指针吧?毕竟使用多级软指针,会略微延缓速度。
这篇关于对硬盘的设想2:纸存,硬指针,软指针的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!