存储名词科普

      我们经常都把手机的存储卡说成是“内存卡”,偶尔也听说内存几百G的,而还有名词flash, nor flash, nand flash等等,相信蛮多人都晕坨坨的。这里科普一下。

       我们都知道存储器是用来存数据的,而数据又包括代码数据和一般意义上的数据。存储器的访问方式有两种,一种是随机访问,即可以任意读取某一字长长度内容,另一种是块访问,即每次访问都是以扇区(512字节,或者扇区的整数倍)进行。而代码的执行可能会随意跳转地址,因为只能够使用支持随机读的存储介质。

         一、支持代码执行的存储器

        1. RAM

         RAM即是我们常说的内存,而RAM分两种,一种是SDRAM(同步动态随机存储器),电脑的内存条就是SDRAM,现在都普遍4G了,手机的内存也是SDRAM,千元机2G。另外一种是SRAM(静态随机存储器)。动态是指存储阵列需要不断的刷新来保证数据不丢失,而静态则不需要刷新,因此静态的设计工艺要求高,成本也相对高,一般SRAM的规模比较小,集成到芯片的内部(SOC),大小是K级或者M级。

         RAM是易失性存储,即掉电后数据会丢失。

        2.ROM

         ROM即只读存储器,代码是固化到ROM中,永不能改变。因此一般由ROM中的代码负责启动,再把操作系统的代码引导到RAM中执行。很多大量量产的低端电子产品的代码是全部固化的,如一些语音玩具狗等等。

        3.OTP

         OTP(One Time program)是一次性编程,即只能编程一次,写入后就跟ROM一样了。可见,其比ROM要灵活一点,一般是固化之前用于调试代码的,或者是为了增加产品差异性的一种手段。

         4. nor flash

         flash(flash eeprom memroy)即闪存,其是非易失存储,也可以EIP(Excute in Place)即芯片内执行。其接口比SDRAM要简单,大小在M级别,所以绝大部分的单片机、处理器的开发板都会使用nor flash作为内存来烧写或者运行代码。早期的非智能机使用nor flash作为内存也很广泛。

         二、不支持代码执行的存储器

        不支持代码执行的存储都属于外存储器介质了。

        1. nand flash

         nand flash也是闪存的一种,但其读取只能以块来读取,但其擦写速度比nor flash要快很多,所以nand flash作为大容量的数据存储有绝对的优势。mp3,u盘等产品的存储就是用它来做。

         2. SD-MMC CARD

         这个就是开头所讲的“内存卡”,实际是外存储介质。其也是大容量的数据存储的解决方案,因为卡的接口方便,可以拆卸,更换方便,而nand flash是死死地焊在板子上的。所以手机上可以换的就是SD-MMC卡了。不过大家也要清楚,除了这个卡之外,手机的存储也有几G空间的,这个并不是内存,而是内置的nand flash或者nor flash。

         3. 硬盘

          这个不用说啦,就是电脑的硬盘,典型的外存储。

         4. EEPROM

          EEPROM也是闪存的一种,不过一般意义上说闪存是不包括EERPOM,是比较老的工艺了,也是字节访问的。很少的数据可以考虑用eeprom。

转载于:https://www.cnblogs.com/yueqian-scut/p/3952266.html

```cpp #include <QtWidgets> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建主窗口 QWidget mainWidget; mainWidget.setWindowTitle("名词解释"); mainWidget.resize(800, 600); // 创建三个 QListWidget QListWidget *nounList = new QListWidget(&mainWidget); QListWidget *imageList = new QListWidget(&mainWidget); QListWidget *definitionList = new QListWidget(&mainWidget); // 布局 QHBoxLayout *layout = new QHBoxLayout(&mainWidget); layout->addWidget(nounList); layout->addWidget(imageList); layout->addWidget(definitionList); // 创建 QMap 存储名词、对应的图片和解释 QMap<QString, QPair<QString, QString>> nounMap; // 添加数据 nounMap.insert("Apple", QPair<QString, QString>("apple.jpg", "苹果")); nounMap.insert("Banana", QPair<QString, QString>("banana.jpg", "香蕉")); nounMap.insert("Cherry", QPair<QString, QString>("cherry.jpg", "樱桃")); nounMap.insert("Grape", QPair<QString, QString>("grape.jpg", "葡萄")); // 遍历 QMap ,添加数据到 QListWidget 中 for (auto it = nounMap.constBegin(); it != nounMap.constEnd(); ++it) { QListWidgetItem *nounItem = new QListWidgetItem(it.key()); nounList->addItem(nounItem); QListWidgetItem *imageItem = new QListWidgetItem; imageItem->setIcon(QIcon(it.value().first)); imageList->addItem(imageItem); QListWidgetItem *definitionItem = new QListWidgetItem(it.value().second); definitionList->addItem(definitionItem); } mainWidget.show(); return app.exec(); } ``` 这个示例中使用了QMap来存储名词、对应的图片和解释,QListWidget用于显示这些数据。其中,QPair用于存储对应的图片和解释。在遍历QMap时,分别将名词、图片和解释添加到对应的QListWidget中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值