Windows内核--CPU和内核(1.7)

Windows内核支援哪些CPU?

        Intel x86/x86_64

                IA64已不再支持.

        AMD amd64

        ARM  (Windows On Arm: WOA)

                ARM具备低功耗优势, 除了高通, 还有Broadcom/NXP等都支援ARM架构.

                苹果自研M系列开了头,ARM不仅有低功耗,同样有性能,Windows也想分一杯羹。

        Alpha 

        MIPS

        PPC

                NT4.0之后,这三种架构都不支持了。

        详细参考:Windows 处理器要求

内核对多处理器的支援

        Windows NT内核设计之初就需要支援多处理器,典型的多处理器技术是SMP.

        Windows内核中有NT_UP宏区分单处理器或多处理器。

                

       

        内核用如下变量记录处理器个数:

//
// KeNumberProcessors - This is the number of processors in the configuration.
//      If is used by the ready thread and spin lock code to determine if a
//      faster algorithm can be used for the case of a single processor system.
//      The value of this variable is set when processors are initialized.
//

CCHAR KeNumberProcessors = 0;

 

多CPU和多核CPU

        多CPU代表多个或多路CPU,多核CPU代表一个CPU包含多核,二者概念截然不同。双CPU和单CPU 双核是不同形态,性能不同,内核支援形式也不同。

CPU/SoC需要为内核提供哪些支援?

        除了基本的指令支援外,CPU还需要提供必要的"支持"以满足内核需要。

       异常和中断处理

                指令异常或信号、中断可以注册对应处理函数,完成内核异常处理。否则,内核遇到异常无法正常收尾。

                时钟中断是任何抢占式内核都必须依赖的基本功能,没有它,多任务并发就成为了一纸空文。

        特权模式和用户模式切换

                处理器必须提供模式切换指令方便用户模式调用到内核模式例程,同时支援返回到用户模式继续运行,以支援安全访问模式。比如,int指令和sysenter指令。

        互斥指令

                不同Thread执行路径不同,很可能访问同一硬件资源或软件空间,为了避免同时访问带来的不预期后果,CPU必须提供互斥指令,可以"锁定"执行,此机制必须由硬件提供,从技术上纯软件不可替代。比如Intel LOCK指令可在早期CPU锁定内存总线达到互斥访问作用。

        虚拟内存管理

                现代操作系统一般有管理虚拟内存的能力,不同进程切换会发生虚拟地址转换的不同。此时,CPU必须有能力保存不同进程的虚拟内存页表。对于x86, CR3寄存器保存了进程页表物理地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值