首页 文章
  • 203 votes
     answers
     views

    多核汇编语言是什么样的?

    曾几何时,例如,要编写x86汇编程序,你会得到说明“加载EDX寄存器的值为5”,“递增EDX”寄存器等 . 对于具有4个内核(甚至更多)的现代CPU,在机器代码级别上它看起来就像有4个独立的CPU(即只有4个不同的“EDX”寄存器)?如果是这样,当你说“递增EDX寄存器”时,是什么决定了哪个CPU的EDX寄存器递增?现在x86汇编程序中是否存在“CPU上下文”或“线程”概念? 核心之间的通信/同步...
  • 14 votes
     answers
     views

    寻找Linux内核模块中意外抢占的原因

    我有一个小的Linux内核模块,它是用于尚不存在的硬件的设备驱动程序的原型 . 代码需要从开始到结束尽可能快地执行一小段计算,持续时间为几微秒 . 我试图用intel rdtscp指令测量是否可以使用 ndelay() 调用来模拟计算 . 我发现它有99.9%的时间按预期运行,但0.1%的时间它有一个非常大的延迟,好像其他东西正在抢占代码,尽管在一个应该禁用中断的自旋锁内运行 . 这是使用库存Ub...
  • 10 votes
     answers
     views

    在不同的处理器上运行代码(x86程序集)

    在x86的实模式中,需要使用哪些指令在多处理器系统中的不同处理器上运行代码? (我正在汇编程序中编写一些需要设置某些CPU寄存器的预启动代码,并在实际操作系统启动之前在系统中的每个CPU上执行此操作 . )

热门问题