信息处理设备及信息处理设备中的设备初始化方法

文档序号:6480726阅读:109来源:国知局
专利名称:信息处理设备及信息处理设备中的设备初始化方法
技术领域
本发明涉及信息处理设备并涉及信息处理设备中的设备初始化方法和设备初始化程序,并且更具体地涉及一种使用通过在执行OS之前由固件执行的设备的初始化过程获取的初始化信息以省略由OS执行的设备初始化过程的一部分的技术。
背景技术
诸如硬盘、图形卡和网卡的许多设备要求在信息处理设备中执行这些设备的初始化过程以使得能够从信息处理设备访问。
信息处理设备中的设备初始化过程涉及将设备设置为允许设备通过识别设备的连接状态从信息处理设备访问的状态、分配诸如I/0 (输入/输出)端口号和IRQ (中断请求)号的重要资源以及在属于所述设备的寄存器中设置寄存器信息。
识别设备的连接状态是检测连接至信息处理设备的设备并获取己被检测到的设备的诸如设备名称等基本信息的过程。检测设备的方法因设备而异。
1/0端口号是从信息处理设备分配给每个设备的设备识别号。
IRQ是电信号,当设备的某些状态发生变化时,设备通过该信号向信息处理设备的CPU (中央处理单元)通知所发生的变化。IRQ号是当向CPU通知设备状态的变化时用于识别哪个设备正在执行所述通知的识别号。
当信息处理设备访问设备时,对诸如"inb"及"outb"的操作码
来说,通过将诸如i/o端口号的访问设备所需的数据的存储位置指定为
操作数来执行所述设备的数据的输入及输出。
通过向以此种方式連接的设备分配I/0端口号或IRQ号,信息处理设备能够识别这些设备,并且通过指定分配给设备的I/0端口号或IRQ号,信息处理设备能够访问这些设备。
在正常的信息处理设备中,上述初始化设备的过程由诸如BIOS(基本输入/输出系统)的固件和OS (操作系统)执行。
用于使能够从固件访问连接至信息处理设备的设备的设备初始化过程(第一初始化过程)在固件中执行。在个人计算机的情况下,用于实现诸如磁盘设备、键盘、鼠标或视频卡的信息处理设备的基本功能的设备的设备初始化过程在固件中实现。固件是一种程序, 一旦向信息处理设备引入电源就首先执行该程序,并且该程序具有例如执行检查信息处理设备的硬件故障及上述设备初始化过程的作用,然后从诸如硬盘的非易失性存储介质向存储器加载OS并执行OS。
另一方面,在OS中,执行设备初始化过程(第二初始化过程),以使能够从OS或运行在OS上的用户应用访问连接至信息处理设备的设备。例如,在个人计算机的情况下,在OS内为使用OS的设备执行初始化过程,例如对应于属于OS的每个设备驱动器的设备。
因此,设备初始化过程必须在信息处理设备启动时在固件及OS中一共执行两次,并且因此,当具有耗时的初始化过程的设备连接至信息处理设备时,信息处理设备的激活花费很长时间。初始化过程需要的时间取决于设备的类型,但是使用SCSI (小型计算机系统接口)连接的SCSI设备是涉及耗时的初始化过程的设备的
一个具体示例。SCSI是用于执行在信息处理设备和设备之间的数据交
换的接口 (标准)。
信息处理设备使用提前己设置到SCSI设备的被称为"SCSI-ID"的识别号,而不是上述I/0端口号,来识别连接的SCSI设备。SCSI-ID可以通过操纵安装在每个SCSI设备内的跳线开关来设置。
在连接的SCSI设备的初始化过程中,信息处理设备按顺序指定每个SCSI-ID,并向SCSI总线传输特殊信号。
当存在具有指定的SCSI-ID的SCSI设备时,该SCSI设备执行对信息处理设备的响应,并且根据来自SCSI设备的该响应,信息处理设备能够检测并识别具有所述SCSI-ID的SCSI设备已连接。
另一方面,当具有指定SCSI-ID的SCSI设备不存在时,信息处理设备等待来自SCSI设备的响应直到提前已经设定的设定时间间隔过去,并且当没有响应时,确定具有此SCSI-ID的SCSI设备未连接。
以此种方式,信息处理设备在SCSI设备初始化过程中为所有SCSI-ID连续执行上述识别SCSI设备的过程,并且利用每个没有设备的SCSI-ID的指定产生设定时间间隔的等待时间,并且因此SCSI设备初始化过程变得非常耗时(参照Sugaya Seiichi, "Detailed Commentary ofSCSI-2" CQ出版,1994年8月15曰,第47-53页)。
如上所述,为实现其中可以从信息处理设备访问设备的状态,在激活信息处理设备的时候必须执行设备初始化过程。然而,当连接至信息处理设备的设备的配置相比于先前激活没有经历任何变化时,在一些情况下部分设备初始化过程是不必要的。
例如,连接至信息处理设备的设备继续使用从信息处理设备分配 的I/0端口号和IRQ号,直到所述设备断开与信息处理设备的连接或直 到新的设备连接至信息处理设备以及连接至信息处理设备的设备的配 置发生变化。
此外,当在特定于设备的寄存器中设置的寄存器信息不是每当激
活信息处理设备时确定的信息时,例如提前设置在设备中的SCSI-ID, 即这样的信息 一旦数值已经被确定,在设备断开与信息处理设备的
连接之前不发生改变,设备继续使用同样的特定于该设备的寄存器信 息。
因此,当所连接的设备的配置没有变化时,信息处理设备访问设
备所需的设备控制信息将没有变化,所述设备控制信息诸如i/o端口号、
IRQ号、及特定于设备的寄存器信息,并且因此,当再次执行设备初始 化过程时,重新使用先前设置的设备控制信息消除了对执行设置设备 控制信息的过程(设备识别过程)的需要。
存在当连接至信息处理设备的设备的配置没有变化时通过使用上 述特征从设备初始化过程中省略设备识别过程的方法,以将曾在设备 中设置的设备控制信息存储在非易失性存储介质中,并且然后当再次 执行设备初始化过程时使用存储在非易失性存储介质中的设备控制信
作为使用此方法的示例,JP-A-2006-259903公幵了一种通过首先将 包括在BIOS中的设备初始化过程中曾在设备中设置的设备控制信息的 设备信息存储在闪速BIOS-ROM中,然后当再次执行设备初始化过程时 使用已存储在闪速BIOS-ROM中的设备信息来省略设备识别过程的技 术。下面使用图l的框图以及图2和图3的流程图进一步解释在
JP-A-2006-259卯3中公开的使用用于省略设备识别过程的技术的系统
的配置及操作。
首先解释该系统的配置。如图l所示,在JP-A-2006-259903中公开 的系统包括闪速BIOS存储器IOOO,在激活信息处理设备时在BIOS中的 设备初始化过程中将诸如存储器信息1001或驱动信息1002的每个设备 的设备信息存储在闪速BIOS存储器1000中,并且然后当BIOS再次执行 设备初始化过程时使用已存储的设备信息。
下面解释使用在JP-A-2006-259卯3中公开的技术的系统的操作。
参照图2的流程图,在S36中,首先将电源施加至信息处理设备(电 源接通)。
然后在S37中,从EC/KBC获取唤醒因素。EC/KBC测量施加电源的 时间间隔,并且基于该时间间隔的长度区分唤醒因素是简化POST过程 还是正常POST过程。POST过程指的是施加电源后自动执行的过程的集 合。该POST过程包括由BIOS实现的设备初始化过程。
然后在S38中,确定所获取的唤醒因素是简化POST过程还是正常 POST过程。
若所获取的唤醒因素是简化POST过程(S38中为"是"),则在 S39中将简化POST过程的标志设置在闪速BIOS-ROM IOOO中。
另一方面,若所获取的唤醒因素是正常POST过程(S38中为"否"), 则在S40中开始存储器设备初始化过程而不设置标志。
11然后在S41中确认是否已在闪速BIOS-ROM 1000中设置标志。
若尚未在闪速BIOS-ROM 1000中设置标志(S41中为"否"),则 在S42中根据作为存储在闪速BIOS-ROM IOOO中的存储设备的设备信 息的存储器信息1001执行存储器初始化过程。
另一方面,若已设置标志(S41中为"是"),则在S43中从存储 器设备获取(读出)存储器信息1001并根据所获取的存储器信息执行 存储器设备初始化过程,并且在S44中,将从存储器设备获取的存储器 信息1001存储在闪速BIOS-ROM IOOO中。
在S45中,存储器设备的初始化过程通过上述过程完成。 过程然后转向图3的流程图,并且在S46中开始驱动设备初始化过程。
然后在S47中,检查在闪速BIOS-ROM 1000中是否已设置标志,并 且若已设置标志(S47中为"是"),则在S48中根据存储在闪速 BIOS-ROM1000中并且作为驱动设备的设备信息的的驱动信息1002执
行驱动设备初始化过程。
另一方面,若未设置标志(S47中为"否"),则在S49中从驱动 设备获取(读出)驱动信息1002并且根据所获取的驱动信息1002执行 驱动设备初始化过程,并且在S50中,将从驱动设备获取的驱动信息 1002存储在闪速BIOS-ROM 1000中。
然后在S51中,BIOS完成驱动设备初始化过程,并且在S52中激活os。
在JP-A-2006-259903中公开的技术中,借助这些操作从BIOS中的设备初始化过程中省略了设备识别过程。
此外,JP-A-2005-284491公开了一种通过首先在OS初始化过程中 将在完成OS初始化过程时的存储器图像存储在非易失性存储介质中, 并且然后当再次执行OS初始化过程时,在存储器中改进(devel叩)所 存储的存储器图像,来从OS初始化过程省略包括设备识别过程的各种 过程的技术。
以此种方式,当从固件或OS中的设备初始化过程中省略了用于设 置设备控制信息的设备识别过程时,可以实现提高信息处理设备的激 活速度。
然而,在JP-A-2006-259903和JP-A-2005-284491中公开的技术存在
问题,如下所述。
在JP-A-2006-259卯3和JP-A-2005-284491中公开的技术使用如下
特征只要连接至信息处理设备的设备的配置没有变化,就能够重新
使用曾获取的设备信息,并且由此縮短了固件或os中设备初始化过程
所需的时间间隔,并实现了信息处理设备的更快激活。
因此,这些技术的缺点在于,当连接至信息处理设备的设备的配 置发生变化时不能实现更高的信息处理设备的激活速度
发明内容
.
本发明的一个目的是提供一种能够解决上述问题的信息处理设备 以及在信息处理设备中的设备初始化方法。
用于实现上述目的的本发明的信息处理设备是一种信息处理设 备,包括初始化单元,该初始化单元通过用于执行使得能够从固件 访问连接至信息处理设备的设备的第一初始化过程的固件的执行来实现;控制单元,该控制单元通过用于在固件的实施之后执行用于使得
能够从操作系统访问设备的第二初始化过程的操作系统的来实现;以
及主存储单元;所述初始化单元包括设备初始化单元,用于在第一 初始化过程中设置对访问作为第一初始化过程的对象的设备所需的设 备控制信息;以及初始化信息存储单元,用于在主存储器单元中存储 包括已由设备初始化单元设置的设备控制信息的初始化信息;并且所
述控制单元包括设备信息应用单元,用于在第二初始化过程中从主 存储器单元获取作为第二初始化过程的对象的设备的初始化信息。
用于实现上述目的的本发明的设备初始化过程简化方法是一种由 信息处理设备执行的设备初始化方法,所述信息处理设备包括初始 化单元,该初始化单元通过用于执行使得能够从固件访问连接至信息 处理设备的设备的第一初始化过程的固件的执行来实现;控制单元, 该控制单元通过用于在固件的执行之后执行使得能够从操作系统访问 设备的第二初始化过程的操作系统的执行来实现;以及主存储器单元; 所述初始化单元包括第一设备初始化步骤,用于在第一初始化过程 中设置访问作为第一初始化过程的对象的设备所需的设备控制信息; 以及存储步骤,用于在主存储单元中存储包括在第一设备初始化步骤 中已设置的设备控制信息的初始化信息;并且所述控制单元包括第 二设备初始化步骤,用于在第二初始化过程中从主存储器单元获取作 为第二初始化过程的对象的设备的初始化信息。
根据本发明,信息处理设备是下列配置,其中通过固件的执行 实现的初始化单元在第一初始化过程中设置作为第一初始化过程的对 象的设备的设备控制信息并在主存储器单元中存储包括已被设置的设 备控制信息的初始化信息;以及通过操作系统的执行实现的控制单元 在第二初始化过程中从主存储器单元获取作为第二初始化过程的对象 的设备的初始化信息。
因此,即使在连接至信息处理设备的设备的配置发生变化的情况下,初始化单元也能够在第一初始化过程中获取反映设备的配置的变 化内容的初始化信息并将该初始化信息存储在主存储器单元中,由此 控制单元能够在第二初始化过程中使用从主存储器单元获取的初始化 信息执行设备初始化过程,以从第二初始化过程中省略设置设备控制 信息的过程。
以此种方式,本发明具有即使当连接至信息处理设备的设备的配 置发生变化时也使得能够实现更快激活信息处理设备的效果。
根据参考图示本发明示例的附图的下面描述,本发明的上述及其 它目标、特征以及优点将变得显而易见。


图l是用于解释在JP-A-2006-259903中描述的系统的配置的框图; 图2是用于解释在图1所示的系统中存储器设备初始化过程的操作 的流程图3是用于解释在图1所示的系统中驱动设备初始化过程的操作的 流程图4是显示本发明的第一示例性实施例的信息处理设备的配置的
框图5是用于解释图4所示的信息处理设备的操作的流程图; 图6是显示本发明的第二示例性实施例的信息处理设备的配置的
框图7示出了图6所示的初始化信息存储区域的配置的具体示例; 图8是用于解释在图6所示的初始化单元中设备初始化过程的操作 的流程图;
图9是用于解释在图6所示的控制单元中设备初始化过程的操作的 流程图10是显示本发明的第三示例性实施例的信息处理设备的配置的
框图;图11示出了图10所示的设备非初始化确定列表的具体示例; 图12是用于解释在图10所示的控制单元中设备初始化过程的操作 的流程图13是用于解释在图10所示的控制单元中设备初始化省略过程的 操作的流程图14是显示实现本发明的第二示例性实施例的工作示例的配置的
框图15示出了图14所示的biosmap (BIOS映射)信息的具体示例;以

图16是用于解释在图14所示的Linux OS中设备初始化过程的操作 的流程图。
具体实施例方式
下面参照附图解释用于使本发明工作的优选实施例。
第一示例性实施例
图4示出了本发明的第一示例性实施例的信息处理设备的配置。
如图4所示,本示例性实施例的信息处理设备包括初始化单元 100、主存储器单元200以及控制单元300。初始化单元100进一步包括 设备初始化单元102以及初始化信息存储单元103,并且控制单元300进 一步包括设备信息应用单元。
初始化单元100通过向信息处理设备引入电源以及通过固件执行 来实现。固件在OS执行之前执行,并且因此在初始化单元100中的过程 都在OS执行之前执行。
初始化单元100首先诊断信息处理设备的硬件故障,并且然后借 助设备初始化单元102执行设备初始化过程(第一初始化过程),以 使得能够从固件访问连接至信息处理设备的设备。在初始化单元ioo中执行设备初始化过程来实现信息处理设备的基本功能,在个人电脑 的情况下,所述信息处理设备诸如是磁盘设备、键盘、鼠标以及视频 卡。
在初始化单元100中的设备初始化过程中,设备初始化单元102 执行设备识别过程来设置诸如I/O端口号、IRQ号及对访问作为初始化 过程的对象的设备必需的特定于设备的寄存器信息的装置控制信息。
初始化信息存储单元103将包括由设备初始化单元102设置的设 备控制信息的初始化信息500存储在主存储器单元200中。
主存储器单元200是属于信息处理设备的主存储器单元,并且在 本示例性实施例中,初始化信息存储单元103将主存储器单元200用 作存储初始化信息500的工具。
控制单元300通过在初始化单元100执行设备初始化过程之后OS 的执行来实现。控制单元300借助设备信息应用单元306执行设备初 始化过程(第二初始化过程),以使得能够从OS访问连接至信息处理 设备的设备。用于初始化由OS使用的设备的过程在控制单元300中执 行。
设备信息应用单元306在控制单元300中的设备初始化过程中从 主存储器单元200获取初始化信息500,由此通过使用所获取的初始化 信息500,设备信息应用单元306能够从设备初始化过程省略用于设置 设备控制信息的过程,即设备识别过程。
下面参照屈5的流程图解释本示例性实施例的操作。
在Sl中,设备初始化单元102首先执行设备初始化过程。在设备 初始化过程中,设备初始化单元102在初始化单元100中执行用于识别作为初始化过程的对象的设备的过程,并且设置设备控制信息。
然后在S2中,初始化信息存储单元103将包括设备初始化单元
102希望设置的设备控制信息的初始化信息500存储在主存储器单元 200中。
然后在S3中,在控制单元300中,设备信息应用单元306在设备 初始化过程中获取存储在主存储器单元200中的初始化信息500。
然后在S4中,在控制单元300中,设备信息应用单元306使用所 获取的初始化信息500执行用于初始化作为初始化过程的对象的设备 的过程。
以此种方式,在控制单元300中,设备信息应用单元306能够从 设备初始化过程中省略设备识别过程。
下面解释本示例性实施例的效果。
如上所述,本示例性实施例的信息处理设备具有下面的配置,其 中在第一初始化过程中,通过固件的执行实现的初始化单元100设 置作为第一初始化过程的对象的设备的设备控制信息并将包含已设置 的设备控制信息的初始化信息500存储在主存储单元200中;以及在 第二初始化过程中,通过操作系统的执行实现的控制单元300从主存 储器单元200获取作为第二初始化过程的对象的设备的初始化信息 500。
因此,即使连接至信息处理设备的设备的配置已经发生变化,初 始化单元100也能够获取反映设备的配置的变化的内容的初始化信息 500,并且在第一初始化过程中将初始化信息500存储在主存储器单元 200中,由此控制单元300能够使用在第二初始化过程中已从主存储器单元200获取的初始化信息500执行设备的初始化过程,并且因此从 第二初始化过程中省略设置设备控制信息的过程。
以此种方式,本示例性实施例获得即使当连接至信息处理设备的 设备的配置已经变化也能够实现更快速激活信息处理设备的效果。
第二示例性实施例
图6示出了本发明的第二示例性实施例的信息处理设备的配置。 如图6所示,本示例性实施例的信息处理设备与图4所示的第一
示例性实施例的不同之处在于初始化单元100包括主存储器区域信
息提供单元101,主存储器单元200包括初始化信息存储区域201,并 且控制单元300包括主存储器区域信息获取单元301、主存储器区域信 息302、初始化信息303、设备驱动器307以及设备识别单元305。此 外,假定设备驱动器307包括设备驱动器初始化功能304。因为除此以 外组成元件与第一示例性实施例中的组成元件等同,所以给出了与图4 中相同的附图标记并且酌情省略了解释。
除了第一示例性实施例中执行的过程之外,本示例性实施例的设 备初始化单元102在初始化单元100中进一步执行用于获取作为初始 化过程的对象的设备的设备名称的过程。
本示例性实施例的初始化信息存储单元103将由设备初始化单元 102获取的设备名称附加至第一示例性实施例中使用的初始化信息 500,并且除了初始化信息500之外将包括诸如设备类型、1/0存储器 地址的信息的设备信息400存储在主存储器单元200的初始化信息存 储区域201中。初始化信息存储单元103进一步将己存储设备信息400 的初始化信息存储区域201的位置信息存储在主存储单元200中作为 主存储器区域信息302,主存储器区域信息是由主存储器区域信息提 供单元101管理的主存储器单元200中每个区域的位置信息。主存储器区域信息提供单元101用作管理主存储器区域信息302
并向控制单元300提供信息的装置。此外,在控制单元300的主存储 器区域信息获取单元301访问主存储器区域信息提供单元101之前, 初始化信息存储单元103将初始化信息存储区域201的位置信息存储 为主存储器区域信息302。
本示例性实施例的主存储器单元200包括用于存储设备信息400 的初始化信息存储区域201。
初始化信息存储区域201是初始化信息存储单元103存储设备信 息400的区域。图7示出了初始化信息存储区域201的构造。如图7 所示,每个设备的设备信息400存储在初始化信息存储区域201中。 而且,如图7所示,假定存储在初始化信息存储区域201中的设备信 息400包括设备名称、设备类型、1/0端口号、IRQ号、1/0存储器地 址以及其它特定于设备的设置信息。
主存储器区域信息获取单元301用作获取由主存储器区域信息提 供单元101提供的主存储器区域信息302的装置。存储设备信息400 的初始化信息存储区域201的位置信息包含在由主存储器区域信息获 取单元301获取的主存储器区域信息302中,并且由设备信息应用单 元306使用。
初始化信息列表303是在其中注册初始化信息500的列表。在初 始化信息列表303中注册的初始化信息500包含设备名称、I/O端口号、 IRQ号以及其它特定于设备的设置信息。
此外,通过使用在初始化信息列表303中注册的每个设备的初始 化信息500, OS能够识别并访问设备。设备驱动器307向OS或运行在OS上的用户应用提供用于访问连 接至信息处理设备的设备的功能。为此目的,设备驱动器307使用设 备驱动器初始化功能304来执行设备的初始化过程。然后,基于设备 初始化过程已获取的初始化信息500,设备驱动器307将作为执行实际 操作的部分的设备的操作功能关联到由控制单元300提供的诸如"读" 和"写"的抽象功能的接口。以此种方式,OS或用户应用能够通过使 用由控制单元300准备的诸如"读"或"写"的功能来访问设备。因 为设置的信息或操作方法因设备而异,所以设备驱动器307被准备为 特定于每个设备的信息。
因此,在OS中的设备初始化过程中(第二初始化过程),因为 OS通过设备驱动器307访问设备,所以执行用于初始化对应于由OS 使用的设备(即对应于由OS持有的每个设备驱动器307)的特定设备 的过程。
设备驱动器初始化功能304由设备驱动器307访问,并且为连接 至信息处理设备的设备中对应于设备驱动器307的特定设备执行初始 化过程。类似于设备驱动器307,设备驱动器初始化功能304特定于每 个设备而准备。
设备识别单元305由设备驱动器初始化功能304访问,并且执行 初始化过程,用于初始化连接至信息处理设备的设备中对应于设备驱 动器307以及设备驱动器初始化功能304的特定设备。
更具体地,设备识别单元305首先确认特定设备的连接状态,并 且获取诸如特定设备的设备名称的基本信息。接着,在执行特定设备 的设备识别过程之前设备识别单元305使设备信息应用单元306确定 在设备信息应用单元306中的特定设备的设备名称是否匹配于从初始 化信息存储区域201获取的设备信息400中包含的设备名称。若设备 名称匹配,则设备识别单元305执行设备识别过程用于识别特定设备,以设置设备控制信息并在初始化信息列表303中注册包括具体设备的
设备名称及设备控制信息的初始化信息500。
一旦从设备识别单元305被通知特定设备的设备名称,本示例性 实施例的设备信息应用单元306就从主存储器区域信息302中提取初 始化信息存储区域201的位置信息,并且使用己提取的初始化信息存 储区域201的位置信息在主存储单元200中指定初始化信息存储区域 201的位置。然后,设备信息应用单元306从为其指定位置的初始化信 息存储区域201中获取设备信息400。
设备信息应用单元306进一步确定特定设备的设备名称是否匹配 于从初始化信息存储区域201获取的设备信息400中包含的设备名称, 并且若设备名称匹配,则从初始化信息存储区域201获取的设备信息 400中提取初始化信息500,并且在初始化信息列表303中将已提取的 初始化信息500注册为特定设备的初始化信息。
下面参照图8及图9的流程图解释本示例性实施例的信息处理设 备的操作。
图8的流程图示出了初始化单元100的每个单元的操作。这些操 作在通过OS的执行实现控制单元300之前提前执行并且设备驱动器初 始化功能304通过设备驱动器307执行。
参照图8的流程图,在S5中,设备初始化单元102首先执行用于 初始化连接至信息处理设备的设备的过程。在设备初始化过程中,在 初始化单元100中的设备初始化单元102既获取作为初始化过程的对 象的设备的设备名称又通过执行用于识别设备的设备识别过程来设置 设备控制信息。
然后在S6中,初始化信息存储单元103将包括下列信息的设备信息400存储在主存储单元200中的初始化信息存储区域201中包括 由设备初始化单元102获取的设备名称的初始化信息500和已设置的 设备控制信息以及诸如设备类型和1/0存储器地址的信息。
然后在S7中,初始化信息存储单元103确定是否剩余有应当初始 化的设备。
当剩余有应当初始化的设备时(S7中为"是"),初始化信息存 储单元103使设备初始化单元102执行用于初始化下一设备的过程。 初始化信息存储单元103重复这些过程直到用于初始化作为初始化过 程的对象的所有设备的过程完成。
当没有剩余有应当初始化的设备时(S7中为"否"),在S8中, 初始化信息存储单元103将已存储每个设备的设备信息400的主存储 单元200中初始化信息存储区域201的位置信息添加至由主存储器区 域信息提供单元101管理的主存储器区域信息302。
图9的流程图示出了控制单元300的每个单元的操作。当由固件 实现的控制单元300通过设备驱动器307执行设备驱动器初始化功能 304时开始这些操作,固件将OS载入主存储器单元200中并在初始化 单元100中的设备初始化过程之后执行OS。
参照图9的流程图,设备驱动器初始化功能304首先访问设备识 别单元305以执行连接至信息处理设备的设备中特定的相应设备的初 始化过程。
当执行初始化特定设备的过程时,设备识别单元305首先检查特 定设备的连接状态,并在S9中获取特定设备的设备名称。然后,设备 识别单元305在执行用于识别特定设备的设备识别过程之前指定已获 取的具体设备的设备名称,以访问设备信息应用单元306。然后在S10中,设备信息应用单元306从主存储器区域信息302 中提取初始化信息存储区域201的位置信息。
然后,设备信息应用单元306使用从主存储器区域信息302中提 取的初始化信息存储区域201的位置信息,以在主存储单元200中指 定初始化信息存储区域201的位置并在Sll中从为其指定位置的初始 化信息存储区域201获取设备信息400。
然后在S12中,设备信息应用单元306确定由设备识别单元305 获取的特定设备的设备名称是否匹配于从初始化信息存储区域201获 取的设备信息400中包含的设备名称。
当设备名称匹配时(S12中为"是"),设备信息应用单元306 从获取的设备信息400中提取初始化信息500,并且在S13中在初始化 信息列表303中注册初始化信息500。
在初始化信息列表303中注册初始化信息500使得能够从OS访 问特定设备,并且完成用于初始化具体设备的过程。在此情况下,从 初始化信息存储区域201获取的设备信息400中提取初始化信息500, 并且因此,从初始化过程中省略设备识别过程。
相反,当设备名称不匹配(S12中为"否")时,在S14中,设 备信息应用单元306确定在初始化信息存储区域201中是否剩余有其 它设备信息400。
若在初始化信息存储区域201中剩余有其它设备信息400(S14中 为"是"),则设备信息应用单元306从初始化信息存储区域201获 取所述其它设备信息400。设备信息应用单元306通过重复该过程来确 定包含特定设备的设备名称的设备信息400是否存储在初始化信息存
24储区域201中。
当在初始化信息存储区域201未剩余有其它设备信息400(S14中 为"否")中时,换句话说,当没有包含特定设备的设备名称的设备 信息400时,设备信息应用单元306完成该过程并访问设备识别单元 305。
当包含特定设备的设备名称的设备信息400不存在于初始化信息 存储区域201中时,设备识别单元305在S15中根据正常设备初始化 过程通过执行用于识别特定设备的设备识别过程来设置设备控制信 息,并且在S16中在初始化信息列表303中注册包含特定设备的设备 名称以及设备控制信息的初始化信息500。
下面解释本示例性实施例的效果。
如上所述,本示例性实施例的信息处理设备具有下列配置,其中 通过固件的执行实现的初始化单元100附加初始化信息存储区域201 的位置信息,为此设备信息400存储在主存储器区域信息302中;以及 通过OS的执行实现的控制单元300从自初始化单元100获取的主存储 器区域信息302中提取初始化信息存储区域201的位置信息以在主存 储单元200中指定初始化信息存储区域201的位置并且从为其指定位 置的初始化信息存储区域201获取设备信息400。
因此,除了第一示例性实施例获得的效果之外,本示例性实施例 还获得了使得能够保证初始化信息存储区域201在主存储单元200上 任意位置的效果。
此外,如上所述,本示例性实施例的信息处理设备具有下列配置, 其中当从初始化信息存储区域201获取的设备信息400中包含的设 备名称并不匹配于特定设备的设备名称时,通过OS的执行实现的控制单元300设置特定设备的设备控制信息(设备识别过程)并在初始化
信息列表303中注册包含设备控制信息及特定设备的设备名称的初始 化信息500。
因此,除了上述效果之外,本示例性实施例获得了即使当初始化 单元100中的设备初始化过程中无法获取设备的设备信息400时也使 得能够从OS访问设备的效果。
第三示例性实施例
图IO示出了本发明的第三示例性实施例的信息处理设备的配置。
如图IO所示,本示例性实施例与图6所示第二示例性实施例的不 同之处在于已经向控制单元300添加了设备初始化确定单元308以 及设备非初始化确定列表309。除此之外组成元件与第三示例性实施例 中的组成元件等同,因此,给出了相同的附图标记并且省略了冗余的 解释。
设备非初始化确定列表309是其中记录了在控制单元300中的设 备初始化过程中未从初始化信息存储区域201获取设备信息400的设 备的设备名称的列表。图11示出了设备非初始化确定列表309的实际 示例。
设备初始化确定单元308确定设备识别单元305所获取的特定设 备的设备名称是否被记录在设备非初始化确定列表309中。
当特定设备的设备名称被记录时,设备初始化确定单元308确定 该设备是未从初始化信息存储区域获取设备信息400的设备,并且访 问设备识别单元305。设备识别单元305根据正常设备初始化过程通过 执行用于识别特定设备的设备识别过程来设置设备控制信息,并且在 初始化信息列表303中注册包含设备控制信息以及特定设备的设备名称的初始化信息500。
另一方面,当特定设备的设备名称未被记录时,设备初始化确定
单元308访问设备信息应用单元306。设备信息应用单元306从初始化 信息存储区域201获取设备信息400,并且执行具体设备的初始化过程。
下面参照图12和图13的流程图解释本示例性实施例的操作。初 始化单元100中每个单元的操作与在图8中描述的第二示例性实施例 中的操作相同,并且因此省略了冗余的解释。
图12和图13的流程图示出了控制单元300的每个单元的操作。 当由固件实现的控制单元300通过设备驱动器307执行设备驱动器初 始化功能304时开始这些操作,固件将OS载入主存储器单元200中并 在初始化单元100完成设备初始化过程之后执行OS。
参照图12的流程图,设备驱动器初始化功能304首先访问设备识 别单元305以执行用于初始化连接至信息处理设备的设备中相应特定 设备的过程。
当执行用于初始化特定设备的过程时,设备识别单元305首先检 查特定设备的连接状态,然后在S17中获取特定设备的设备名称。然 后,设备识别单元305在执行用于识别特定设备的设备识别过程之前 指定已获取的特定设备的设备名称,以访问设备初始化确定单元308。
然后在S18中,设备初始化确定单元308确定设备识别单元305 所获取的特定设备的设备名称是否被记录在设备非初始化确定列表 309中。
若特定设备的设备名称被记录(S18中为"是"),则设备初始 化确定单元308访问设备识别单元305。已被设备初始化确定单元308访问过的设备识别单元305在S19中根据正常设备初始化过程通过执
行用于识别特定设备的设备识别过程来设置设备控制信息,并且在S20 中在初始化信息列表303中注册包括设备控制信息以及特定设备的设 备名称的初始化信息500。
当特定设备的设备名称未被记录时,该过程转向图13。图13中的 过程S21-S27等同于图9的过程S10-S16,并且因此省略了解释。
下面解释本示例性实施例的效果。
如上所述,本示例性实施例的信息处理设备具有下列配置,其中 通过OS的执行实现的控制单元300通过确定控制单元300中作为初 始化过程的对象的设备的设备名称是否被列入设备非初始化确定列表 309中来确定是否从初始化信息存储区域201获取设备信息400以执行
用于初始化设备的过程。
以此种方式,除了第一及第二示例性实施例的效果之外,本示例 性实施例还获得了使得能够从连接至信息处理设备的设备中选择那些 通过获取设备信息400执行设备初始化过程的设备的效果。
工作示例
下面使用实际工作示例解释使本发明工作的优选示例性实施例。 图14示出了本工作示例的信息处理设备的配置。
本工作示例是图6所示的第二示例性实施例的具体情况,并且解 释当本发明应用于通过使用PCI连接至信息处理设备的PCI设备的初 始化过程时的操作。
如图14所示,本工作示例配备有作为初始化单元IOO的特定示例的BIOS 600、作为控制单元300的特定示例的Linux OS 800、作为 主存储器单元200的特定示例的物理存储器700、作为主存储器区域 信息提供单元101的特定示例的BIOS命令(0x15) 601、作为主存储 器区域信息获取单元301的特定示例的设置(setup)功能801、作为主 存储器区域信息302的特定示例的BIOS映射(biosmap)信息802、作 为初始化信息列表303的特定示例的pci—devices结构803、作为设备 驱动器初始化功能304的特定示例的pci_init功能804以及作为设备识 别单元305的特定示例的pci—enable—device功能805。其它组成元件等 同于第二示例性实施例中的元件,并且因此给出了与图6中相同的附 图标记并在此省略了冗余的解释。
BIOS命令是使用由BIOS 600提供的各种服务的命令。设置在CPU 寄存器中指定的数值并访问BIOS命令使得能够,例如,获取CPU速 度信息并获取关于物理存储器700的存储器容量的信息。在本工作示 例中使用的BIOS命令的一个命令是用于获取由BIOS 600提供的物理 地址映射(biosmap信息802)的BIOS命令(0x15) 601。
"biosmap信息802"是在设备初始化过程中由BIOS 600使用的
物理存储器700中每个区域的位置信息的记录。
图15示出了 biosmap信息802的特定示例。如图15所示,biosmap 信息802由三个项组成首地址、末地址以及每个存储信息的区域的 区域使用方法。在本工作示例中,初始化信息存储单元103将初始化 信息存储区域201的位置信息附加至biosmap信息802,由此设备信息 应用单元306能够获取初始化信息存储区域201的位置信息,并且在 主存储器单元中指定初始化信息存储区域201的位置。
"Setup功能801"是用于准备执行Linux OS 800所需的环境的功 能。使用Setup功能801, LinuxOS 800访问BIOS命令(0x15) 601 以获取biosmap信息802。当执行对物理存储器700的控制时,Li皿xOS800将所获取的biosmap信息802用作参考信息。
Pci—devices结构803是在第二示例性实施例中存储初始化信息 500的pci_dev结构卯0的列表。类似于第二示例性实施例中的初始化 信息500,存储在pci—devices结构803中的pci—dev结构900存储设 备名称(厂商ID及设备ID) 、 1/0端口号、IRQ号以及其它特定于设 备的设置信息。
Pci—init功能804是当LinuxOS 800对使用pci连接至信息处理设 备的pci设备加载设备驱动器307时首先被执行的功能。通过访问 pci—enable—device功能805,pci—init功能804执行pci设备初始化过程。
pci_enable—device功能805是用于执行初始化pci设备的过程并使 pci设备有效的功能。
在本工作示例中, 一旦被pci—init功能804访问,pci—enable—device
功能805就首先检查其对应的特定设备的连接状态,获取特定设备的 设备名称,并且然后,在执行设备识别过程之前访问设备信息应用单 元306,以确定从初始化信息存储区域201获取的设备信息400中包含 的设备名称是否匹配于所获取的特定设备名称。
下面参照图16的流程图解释本工作示例的操作。
BIOS 600中每个单元的操作等同于图8所示的第二示例性实施例 中通过固件的执行实现的初始化单元100的每个相应单元的操作,并 且因此在此省略冗余的解释。
图16的流程图示出了 LinuxOS 800的每个单元的操作。通过在 BIOS 600执行设备初始化过程之后BIOS 600将LinuxOS 800加载在物 理存储器700中来执行这些操作,并且当LinuxOS 800通过设备驱动器307执行pci一init功能804来启动这些操作。
LinuxOS 800首先加载设备驱动器307以访问pci—enable—device 功能805。
一旦被访问,pci—enable—device功能805就首先检查通过使用pci 连接至信息处理设备的pci设备的连接状态,在S28中从pci设备获取 诸如厂商ID或设备ID的信息,并在pci—dev结构900中存储该信息。
这里,厂商ID是提供给生产所述设备的公司的唯一标识符。设备 ID是提供给特定厂商生产的每个设备的唯一标识符。
厂商ID及设备ID基本上用作设备名称。在本工作示例中,也假 定厂商ID以及设备ID用作设备名称。
下面,pci—enable—device功能805访问设备信息应用单元306。
然后在S29中,设备信息应用单元306从biosmap信息802中提 取初始化信息存储区域201的位置信息。
下面设备信息应用单元306使用已提取的初始化信息存储区域 201的位置信息以在物理存储器700中指定初始化信息存储区域201的 位置,并且在S30中从初始化信息存储区域201获取设备信息400。
然后在S31中,设备信息应用单元306确定由pci—enable—device 功能805获取的pci设备的设备名称是否匹配于设备信息400中包含的 设备名称。
若设备名称匹配(S31中为"是"),则设备信息应用单元306 使用已获取的设备信息400,以存储在pci—dev结构900中所需的信息并在S32中在pci—devices结构803中注册pci_dev结构900。
然而,当设备名称不匹配时(S31中为"否"),设备信息应用 单元306在S33中确定在初始化信息存储区域201中是否剩余有其它 设备信息。
若剩余有其它设备信息400 (S33中为"是"),则设备信息应用 单元306从初始化信息存储区域201获取其它设备信息400,并且重复 确定特定设备的设备名称是否匹配于其它设备信息400中包含的设备 名称。
若在初始化信息存储区域201中未剩余有其它设备信息400 (S33 中为"否"),则设备信息应用单元306完成该过程并访问 pci—enable—device功能805。
下面,pci—enable—device功能805通过在S34中执行用于识别pci 设备的设备识别过程来设置设备控制信息,在pci—dev结构900中存储 包括pci设备的设备控制信息及设备名称的信息,并且在S35中在 pci—devices结构803中注册包括设备控制信息以及设备名称的信息。
虽然已经参照本发明的示例性实施例特别地示出并描述了本发 明,但是本发明不限于这些实施例。本领域的普通技术人员应当理解, 在不背离如权利要求所限定的本发明的精神和范围的情况下,可以对 本发明做出各种形式及细节上的改变。
权利要求
1. 一种信息处理设备,包括初始化单元,所述初始化单元通过固件的执行实现,用于执行使得能够从所述固件访问连接至所述信息处理设备的设备的第一初始化过程;控制单元,所述控制单元通过操作系统的执行实现,用于在所述固件的执行之后执行使得能够从所述操作系统访问所述设备的第二初始化过程;以及主存储器单元;其中所述初始化单元包括设备初始化单元,用于在所述第一初始化过程中设置对访问作为所述第一初始化过程的对象的设备所需的设备控制信息;以及初始化信息存储单元,用于将包括由所述设备初始化单元设置的所述设备控制信息的初始化信息存储在所述主存储器单元中;以及所述控制单元包括设备信息应用单元,用于在所述第二初始化过程中从所述主存储器单元获取作为所述第二初始化过程的对象的设备的初始化信息。
2. 根据权利要求l所述的信息处理设备,其中在所述第一初始化过程中,所述设备初始化单元获取作为所述第 一初始化过程的对象的设备的设备名称;所述初始化信息存储单元将由所述设备初始化单元获取的所述设 备名称附加至所述初始化信息,并且将所述设备名称存储在所述主存 储器单元中;所述控制单元进一步包括设备识别单元,用于在所述第二初始 化过程中获取作为所述第二初始化过程的对象的设备的设备名称;以 及当由所述设备识别单元获取的所述设备名称匹配于从所述主存储 器单元获取的所述初始化信息中包含的设备名称时,所述设备信息应用单元在初始化信息列表中注册所述初始化信息作为是所述第二初始 化过程的对象的所述设备的所述初始化信息。
3. 根据权利要求2所述的信息处理设备,其中,当由所述设备识别单元获取的所述设备名称不匹配于在所述第二初始化过程中从所述 主存储器单元获取的所述初始化信息中包含的设备名称时,所述设备 识别单元设置作为所述第二初始化过程的对象的所述设备的所述设备 控制信息,并且在所述初始化信息列表中注册包括所述设备的所述设 备名称以及所述设备控制信息的初始化信息。
4. 根据权利要求3所述的信息处理设备,其中所述控制单元进一步包括设备初始化确定单元,用于在所述第 二初始化过程中确定作为所述第二初始化过程的对象的所述设备的所 述设备名称是否被记录在设备非初始化确定列表中,所述设备非初始 化确定列表记录不是从所述主存储器单元获取所述初始化信息的设备 的设备名称;以及当作为所述第二初始化过程的对象的设备的设备名称记录在所述 设备非初始化确定列表中时,所述设备识别单元设置所述设备的所述 设备控制信息,并且在所述初始化信息列表中注册包括所述设备的所 述设备名称以及所述设备控制信息的初始化信息。
5. 根据权利要求4所述的信息处理设备,其中当作为所述第二初始化过程的对象的所述设备的所述设备名称在 所述第二初始化过程中未记录在所述设备非初始化确定列表中时,所述设备信息应用单元从所述主存储器区域获取所述设备的初始化信
6.根据权利要求5所述的信息处理设备,其中所述主存储器单元包括用于存储所述初始化信息的初始化信息存 储区域;所述初始化信息存储区域既在所述初始化信息存储区域中存储所 述初始化信息又在所述主存储器单元中存储所述初始化信息存储区域的位置信息作为是每个区域的位置信息的主存储器区域信息;所述初始化单元进一步包括用于向所述控制单元提供所述主存储 器区域信息的主存储器区域信息提供单元;所述控制单元进一步包括用于获取由所述主存储器区域信息提供 单元提供的所述主存储器区域信息的主存储器区域信息获取单元;并 且所述设备信息应用单元从由所述主存储器区域信息获取单元获取的 所述主存储器区域信息中提取所述初始化信息存储区域的位置信息, 使用所提取的位置信息指定在所述主存储单元中所述初始化信息存储 区域的位置;并且从为其指定位置的所述初始化信息存储区域获取所 述初始化信息。
7. —种由信息处理设备执行的设备初始化方法,所述信息处理设 备包括初始化单元,所述初始化单元通过固件的执行实现,用于执 行使得能够从所述固件访问连接至所述信息处理设备的设备的第一初 始化过程;控制单元,所述控制单元通过操作系统的执行实现,用于 在所述固件的执行之后执行使得能够从所述操作系统访问所述设备的 第二初始化过程;以及主存储器单元;所述方法包括在所述第一初始化过程中通过所述初始化单元执行的第一设备初 始化步骤,用于设置对访问作为所述第一初始化过程的对象的设备所 需的设备控制信息;以及通过所述初始化单元执行的存储步骤,用于将包括在所述第一设备初始化步骤中设置的所述设备控制信息的初始化信息存储在所述主 存储器单元中;以及在所述第二初始化过程中通过所述控制单元执行的第二设备初始化步骤,用于从所述主存储器单元获取作为所述第二初始化过程的对象的设备的初始化信息。
8, 根据权利要求7所述的设备初始化方法,进一步包括下列步骤 在所述第一设备初始化步骤中,获取作为所述第一初始化过程的对象的设备的设备名称;在所述存储步骤中,将在所述第一设备初始化步骤中获取的所述设备名称附加至所述初始化信息,并将所述设备名称存储在所述主存储器单元中;在所述第二初始化过程中,设备名称获取步骤通过所述控制单元获取作为所述第二初始化过程的对象的设备的设备名称;以及在所述第二设备初始化步骤中,当在所述设备名称获取步骤中所 获取的所述设备名称匹配于从所述主存储器单元获取的所述初始化信 息中包含的设备名称时,在初始化信息列表中注册所述初始化信息作 为是所述第二初始化过程的对象的所述设备的所述初始化信息。
9. 根据权利要求8所述的设备初始化方法,进一步包括下列步骤在所述第二设备初始化步骤中,当在所述设备名称获取步骤中获 取的所述设备名称不匹配于从所述主存储器单元获取的所述初始化信 息中包含的设备名称时,设置作为所述第二初始化过程的对象的所述 设备的所述设备控制信息,并且在所述初始化信息列表中注册包含所 述设备的所述设备名称以及所述设备控制信息的初始化信息。
10. 根据权利要求9所述的设备初始化方法,进一步包括在所述第二初始化过程中的设备初始化确定步骤,用于通过所述 控制单元确定作为所述第二初始化过程的对象的设备的所述设备名称 是否被记录在设备非初始化确定列表中,所述设备非初始化确定列表记录未从所述主存储器单元获取所述初始化信息的设备的设备名称;以及在所述设备初始化确定步骤中的正常初始化步骤,用于通过所述 控制单元,当作为所述第二初始化过程的对象的所述设备的所述设备 名称被记录在所述设备非初始化确定列表中时,设置所述设备的所述 设备控制信息,并且在所述初始化信息列表中注册包括所述设备的所 述设备名称以及所述设备控制信息的初始化信息。
11. 根据权利要求10所述的设备初始化方法,其中,在所述设备 初始化确定步骤中,当作为所述第二初始化过程的对象的设备的所述 设备名称未被记录在所述设备非初始化确定列表中时,执行所述第二设备初始化步骤。
12.根据权利要求ll所述的设备初始化方法,进一步包括-在所述存储步骤中,包括在所述主存储器单元中所述初始化信息存储区域中存储所述初始化信息和在所述主存储器单元中存储所述初始化信息存储区域的位置信息作为是每个区域的位置信息的主存储器区域信息的步骤;以及在所述第二初始化过程中,主存储器区域信息获取步骤通过所述控制单元从所述初始化单元获取所述主存储器区域信息;以及在所述第二设备初始化步骤中,从在所述主存储器区域信息获取 步骤中获取的所述主存储器区域信息中提取所述初始化信息存储区域 的位置信息,使用所提取的位置信息指定在所述主存储器单元中所述 初始化信息存储区域的位置,并从为其指定所述位置的所述初始化信 息存储区域获取所述初始化信息。
全文摘要
信息处理设备及信息处理设备中的设备初始化方法。信息处理设备包括初始化单元,通过固件的执行实现,用于执行使能够从固件访问连接至信息处理设备的设备的第一初始化过程;控制单元,通过操作系统的执行实现,用于在固件的执行之后执行使能够从OS访问设备的第二初始化过程;以及主存储器单元;其中初始化单元包括用于在第一初始化过程中设置访问设备所需的设备控制信息的设备初始化单元以及用于将包括由设备初始化单元设置的设备控制信息的初始化信息存储在主存储器单元中的初始化信息存储单元,并且其中控制单元包括设备信息应用单元,用于在第二初始化过程中从主存储器单元获取设备的初始化信息。
文档编号G06F9/445GK101510158SQ200910006380
公开日2009年8月19日 申请日期2009年2月16日 优先权日2008年2月14日
发明者小比贺亮仁 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1