打印

电脑主板上的bios芯片和U盘的存储芯片是不是一种芯片,都叫nand

[复制链接]
3493|15
手机看帖
扫描二维码
随时随地手机跟帖
沙发
ittechbay|  楼主 | 2016-2-17 17:36 | 只看该作者
想起来了,nand芯片的读写是串行了,需要有特殊电路和驱动程序来读写,所以电脑BIOS不可能用nand了,bios用的叫nor-flash吧

使用特权

评论回复
板凳
ningling_21| | 2016-2-17 17:36 | 只看该作者
本帖最后由 ningling_21 于 2016-2-17 18:11 编辑

早期的PC主板上的BIOS芯片多为EPROM,而后来逐渐由flash ROM 取代

使用特权

评论回复
地板
chunyang| | 2016-2-17 17:50 | 只看该作者
NAND和NOR是FLASH的两种构型,不能称之为“芯片”,对电子工程师而言,这样的错误太低级了。现在主板上存储BIOS的存储器都是FLASH,至于是NAND构型还是NOR构型,需要具体根据型号判断。因为成本控制的原因,越来越多的主板采用串口FLASH作为BIOS存储器,NAND构型居多,在产的绝大多数主板已经如此。在串行接口的FLASH存储器芯片中,NAND构型和NOR构型都有,所以不能简单从接口判断,必须根据型号查证。

使用特权

评论回复
5
ittechbay|  楼主 | 2016-2-17 18:25 | 只看该作者
chunyang 发表于 2016-2-17 17:50
NAND和NOR是FLASH的两种构型,不能称之为“芯片”,对电子工程师而言,这样的错误太低级了。现在主板上存储 ...

用nand做的BIOS存储,CPU能直接寻址吗?也就是说nand能“片内执行”吗

使用特权

评论回复
6
chunyang| | 2016-2-17 18:28 | 只看该作者
ittechbay 发表于 2016-2-17 18:25
用nand做的BIOS存储,CPU能直接寻址吗?也就是说nand能“片内执行”吗

无需什么片内执行,启动时先读出再映射到内存中执行,PC平台本就如此设计。

使用特权

评论回复
7
ittechbay|  楼主 | 2016-2-17 18:38 | 只看该作者
chunyang 发表于 2016-2-17 18:28
无需什么片内执行,启动时先读出再映射到内存中执行,PC平台本就如此设计。 ...

那也得有一片能片内执行的存储,由这片存储中的程序把nand中的程序加载到内存,记得现在都是这么应用

使用特权

评论回复
8
chunyang| | 2016-2-17 19:11 | 只看该作者
在PC刚刚面世时,即8088时代,PC的BIOS确实是“芯片运行模式”。那时BIOS使用EPROM存储,早期用的是2764即仅有8K的容量。当时PC的内存不大,从128K到640K不等,最大也只有640K(我用过的最低内存PC是512K的金山XT,就是当年求伯君的香港老板做的,后来“金山”成了求伯君的品牌)。不久之后,到了286时代,PC开始支持BIOS内存映射。因为286可以最大支持2M的内存寻址,所以640K以上的内存空间可以拿来做BIOS映射,而当时的DOS操作系统仅支持640K内存,BIOS映射后可以显著提升系统的运行效率,多出的640K以上的内存不用白不用。不仅如此,显卡的BIOS也可以被映射到内存中运行了。1985年,386面世,可以支持4M内存,而DOS操作系统依然是仅支持640K,故而BIOS的内存映射成了“标配”。另外,从386时代起,Cache技术被用到主板中,更快的BIOS执行方法是将部分指令从内存再写入Cache中执行。从此,BIOS里会有“映射”和“缓存”两组BIOS执行选项。在Windows XP面世之前,即使是Win95、Win98、Win ME等也都是采用“变通的”办法来突破640K内存的限制,所以那时的主板在BIOS处理上跟386时代没什么差别,BIOS设置里一定有关于映射和缓存的选项。XP时代来临之后,虽然PC操作系统的内存管理机制发生了根本性的改变,但出于上对下兼容,对于BIOS的映射、缓存等的处理仍然采用386时代的做法,但主板的BIOS选项中开始逐渐去除映射和缓冲使能项,即一律默认开通。后XP时代的主板,特别是目前的图形化BIOS里则彻底去除了这些选项(至少近几年我用的华硕主板均如此),所以,现在的年轻人因为不知道这一历史演变,拿嵌入式平台的一些相关概念来套,从而感到困惑也完全可以理解。

使用特权

评论回复
9
chunyang| | 2016-2-17 19:15 | 只看该作者
ittechbay 发表于 2016-2-17 18:38
那也得有一片能片内执行的存储,由这片存储中的程序把nand中的程序加载到内存,记得现在都是这么应用 ...

系统内存就是,所以无需什么“一片能片内执行的存储器”。而且不仅仅用内存,Cache也会被用到,具体见上文科普。

使用特权

评论回复
10
1210| | 2016-2-17 20:11 | 只看该作者
电脑主板一般用SPI NOR FLASH,并且基本上用UEFI取代传统的BIOS,看图:

UEFI-BIOS.png (208.04 KB )

UEFI-BIOS.png

使用特权

评论回复
11
huangqi412| | 2016-2-17 21:23 | 只看该作者
ittechbay 发表于 2016-2-17 18:38
那也得有一片能片内执行的存储,由这片存储中的程序把nand中的程序加载到内存,记得现在都是这么应用 ...

很多数码产品的主控都支持nand  spi  sd等方式引导  原理就是主控内有个模块上电时候读取外部存储器一段进内存并执行  这段可以用来放boot  通过这段代码再搬运其他存储内容进内存执行  整个系统可以没有线性地址存储器 也就是没有你说的片内执行的存储  

使用特权

评论回复
12
大道至简| | 2016-2-18 13:28 | 只看该作者
bios还有 nor flash

使用特权

评论回复
13
ittechbay|  楼主 | 2016-7-30 22:19 | 只看该作者
本帖最后由 ittechbay 于 2016-7-30 22:20 编辑
huangqi412 发表于 2016-2-17 21:23
很多数码产品的主控都支持nand  spi  sd等方式引导  原理就是主控内有个模块上电时候读取外部存储器一段 ...

你说的这种方式,我似乎在哪个开发板上看到过,不过,我当时的理解是,开发板的处理器内集成了一个小的flash存储,在这个小flash存储内有一个小小的loader,上电后,cpu线执行这个loader的程序,然后由这个loader读取nand的一块区域到内存,然后由nand的这一块的程序读取nand里的操作系统到内存。也就是三级加载过程:小loader加载大loader,大loader在加载操作系统
也可能我理解错了,就向你说的,主控内有个模块,直接把外部nand读取到内存。您是否能提供个使用方案的例子

使用特权

评论回复
14
cjseng| | 2016-7-31 18:03 | 只看该作者
在当年CIH病毒横行的时候,我把主板上的BIOS芯片拔了下来,把/WE引脚反过来折向芯片上方,再串了一个电阻接到了电源端,从此以后,妈妈再也不担心CIH病毒能伤害我的电脑了。

使用特权

评论回复
15
chunyang| | 2016-8-1 00:14 | 只看该作者
ittechbay 发表于 2016-7-30 21:42
"因为286可以最大支持2M的内存寻址,所以640K以上的内存空间可以拿来做BIOS映射,而当时的DOS操作系统仅 ...

呵呵,你说的暴露了你的年龄。DOS是有版本的,显然,我前面提到的是286推出之前的,640K限制是首版DOS留下的“老毛病”。关于这个640K限制,网上应该还能找到资料,而1980s的DOS书籍就讲的很详细了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

296

主题

635

帖子

3

粉丝