计算机体系结构基础
胡伟武、苏孟豪
1
第09章:计算机系统启动过程分析
• 处理器核初始化
• 总线接口初始化
• 设备探测及驱动加载
• 多核启动过程
2
一句话要点
• 系统启动
• 从复位到系统可用
• 初始化是什么
• 将系统各种寄存器状态从不确定设置为确定,将一些模块状
态从无序强制为有序的一个过程
• 什么东西需要初始化
• CPU、内存、各类IO接口
• 怎么初始化
• 按照从核内到核外,从片内到片外的次序进行
3
系统启动过程示意图
否
处理器复位 主核?
是
总线扫描
调试接口初始化 内存初始化 加载内核执行 等待唤醒
设备探测
TLB初始化 IO总线初始化 设备驱动加载 唤醒其它核 唤醒?
否
是
Cache初始化 命令行环境准备 操作系统启动
多核启动
处理器核 总线接口 设备探测
初始化 初始化 驱动加载 启动完成
4
提纲
• 处理器核初始化
• 总线接口初始化
• 设备探测及驱动加载
• 多核启动过程
5
处理器复位
• 从芯片引脚输入电平信号,将处理器内部的部分寄存器等
状态置为预设值
• 开始取指(MIPS处理器的第一条指令为0xBFC00000 )
• 复位输入是一个硬件初始化动作,至少需要完成最基本的
芯片状态初始化(保证第一条指令取指执行)
• 控制寄存器状态初始化,如处于核心态
• 核内程序计数器(PC )初始化为0xBFC00000
• 片内对于0xBFCxxxxx段地址的路由通路初始化
• 清空流水线有效位避免混乱
• 为什么不初始化更多硬件(如内存、Cache、TLB、寄存器)?
6
首条指令
• 初始化CP0 (0号协处理器,用于控制处理器行为)
• 状态寄存器Status