今天心情好,新建团,就在你身上拿第一个采纳答案。
主板可以按电路分为三大模块:
1.CPU模块
CPU模块包括CPU芯片、CPU插座和风扇。CPU的类型不同,CPU的插座也不一样。
2.内存模块
内存模块包括内存插槽和内存条。
内存插槽是连接和放置内存条的地方,它决定着所安装的内存条类型,目前的形式有168线槽(DIMM槽)和184线槽(RIMM槽)。
3.芯片组
3.芯片组(Chipset)
芯片组称为控制芯片组(Chipset),由一片或多片超大规模集成电路芯片构成。主要包括以下功能电路。
1)总线控制器
其主要功能是执行CPU的命令,根据CPU的状态信号译码出各种控制命令,并代替CPU去下达命令,送往各功能电路
2)计时/计数器
计时/计数器是计算机电路中的辅助时钟发生器,用硬件电路实现分频并产生其他时钟脉冲,供给除CPU以外的其他电路使用。
3)中断控制器
控制各种硬件向CPU申请中断的优先权。
4)DMA通道控制器
芯片组中含有DMA通道控制器,实现8条数据通道DQR0~DQR7的控制和管理。目前用DMA通道与计算机直接进行数据交换的设备有软盘、IDE接口的Ultra
DMA硬盘、SCSI硬盘和光驱等外部设备
5)实时计时器时钟和CMOS
RAM
实时计时器时钟为系统提供日期和时间,当系统关机后,将日期和时间储存在CMOS
RAM中,由电池供电,并继续走时。
目前随着集成度的发展,芯片组大多被集成为北桥芯片和南桥芯片。北桥芯片是主板上离CPU最近的一块芯片,掌管着L2或L3
Cache、内存接口、CPU接口、AGP高速图形接口及ECC纠错等。南桥芯片负责KBC(键盘控制器)、RTC(实时时钟控制器)、PCI、ISA、USB、Ultra
DMA/33(66)EIDE数据传输方式和ACPI(高级能源管理)等。其中北桥芯片起着主导性的作用,也称为主桥。
近年来,AMD和INTER都在CPU中集成了内存控制器,很大一部分主板,包括h61以后的绝大部分主板取消了北桥,将北桥的功能集成到CPU中。以后可能大家很少见到北桥了。
4.BIOS基本输入输出系统
BIOS主要用于控制管理整个计算机系统的输入输出,BIOS被固化在ROM中,ROM是焊在或插在主板上的一个集成电路芯片,其中保存有计算机系统最重要的基本输入/输出程序、系统设置程序、开机上电自检程序。目前主板上的BIOS
ROM芯片都是用Flash
ROM,所以可以对它进行升级。
5.总线扩展槽
可插放各种用途的功能板卡,如显卡、声卡、网卡、视频转接卡等。根据不同的标准,扩展槽有:ISA、PCI
和AGP扩展槽总线。
6.外设接口
基本上可以理解为机箱裸露在外面的鼠标键盘显示器等接口。
模块就是程序中固定的代码模块。
1.这个函数首先查找 package.loaded 表, 检测 modname 是否被加载过。 如果被加载过,require 返回 package.loaded[modname] 中保存的值。 否则,它试着为模块寻找 加载器 。
require 遵循 package.searchers 序列的指引来查找加载器。 如果改变这个序列,我们可以改变 require 如何查找一个模块。 下列说明基于 package.searchers 的默认配置。
首先 require 查找 package.preload[modname] 。 如果这里有一个值,这个值(必须是一个函数)就是那个加载器。 否则 require 使用 Lua 加载器去查找 package.path 的路径。 如果查找失败,接着使用 C 加载器去查找 package.cpath 的路径。 如果都失败了,再尝试 一体化 加载器 (参见 package.searchers)。
2.每次找到一个加载器,require 都用两个参数调用加载器: modname 和一个在获取加载器过程中得到的参数。 (如果通过查找文件得到的加载器,这个额外参数是文件名。) 如果加载器返回非空值, require 将这个值赋给 package.loaded[modname]。 如果加载器没能返回一个非空值用于赋给 package.loaded[modname], require 会在那里设入 true 。 无论是什么情况,require 都会返回 package.loaded[modname] 的最终值。
3.如果在加载或运行模块时有错误, 或是无法为模块找到加载器, require 都会抛出错误。
一个描述有一些为包管理准备的编译期配置信息的串。 这个字符串由一系列行构成:
第一行是目录分割串。 对于 Windows 默认是 '\' ,对于其它系统是 '/' 。
第二行是用于路径中的分割符。默认值是 '' 。
第三行是用于标记模板替换点的字符串。 默认是 '?' 。
第四行是在 Windows 中将被替换成执行程序所在目录的路径的字符串。 默认是 '!' 。
第五行是一个记号,该记号之后的所有文本将在构建 luaopen_ 函数名时被忽略掉。 默认是 '-'。
这个路径被 require 在 C 加载器中做搜索时用到。
让宿主程序动态链接 C 库 libname 。
当 funcname 为 "*", 它仅仅连接该库,让库中的符号都导出给其它动态链接库使用。 否则,它查找库中的函数 funcname ,以 C 函数的形式返回这个函数。 因此,funcname 必须遵循原型 lua_CFunction (参见 lua_CFunction)。
这是一个低阶函数。 它完全绕过了包模块系统。 和 require 不同, 它不会做任何路径查询,也不会自动加扩展名。 libname 必须是一个 C 库需要的完整的文件名,如果有必要,需要提供路径和扩展名。 funcname 必须是 C 库需要的准确名字 (这取决于使用的 C 编译器和链接器)。