标签: clockrates

CPU仿真并锁定到特定的时钟速度

如果你已经阅读了我的另一个问题,你就会知道我本周末花了6502 CPU模拟器作为编程练习.

CPU模拟器大部分是完整的,并且从我的有限测试看起来相当准确,但它运行速度非常快,我想把它降低到机器的实际时钟速度.

我目前的测试循环是这样的:

    // Just loop infinitely.
    while (1 == 1)
    {                
        CPU.ClockCyclesBeforeNext--;

        if (CPU.ClockCyclesBeforeNext <= 0)
        {
            // Find out how many clock cycles this instruction will take
            CPU.ClockCyclesBeforeNext = CPU.OpcodeMapper.Map[CPU.Memory[CPU.PC]].CpuCycles;

            // Run the instruction
            CPU.ExecuteInstruction(CPU.Memory[CPU.PC]);

            // Debugging Info
            CPU.DumpDebug();
            Console.WriteLine(CPU.OpcodeMapper.Map[CPU.Memory[CPU.PC]].ArgumentLength);

            // Move to next instruction
            CPU.PC += 1 + CPU.OpcodeMapper.Map[CPU.Memory[CPU.PC]].ArgumentLength;                                        
        }
    }
Run Code Online (Sandbox Code Playgroud)

如您所知,每个操作码需要一段特定的时间才能完成,所以在我倒计时CPU周期时,我不会运行下一条指令.这提供了操作码之间的适当时序,它只是整个事情快速运行.

目标CPU的速度是1.79mhz,但是我想要时钟问题的任何解决方案,即使我增加了复杂性,也要保持1.79mhz的速度,所以我不需要调整它.

有任何想法吗?

6502 emulation clockrates low-level

27
推荐指数
4
解决办法
1万
查看次数

如何在 Windows 上以编程方式设置 GPU 核心和内存时钟?

是否有一些 API/库用于此?我有一个 ATI Radeon 9000 系列显卡,我需要在 Windows 启动时降低它的核心/内存时钟(我想为此提供一个小服务,但我以前从未这样做过)。

我知道这是可能的(因为 RivaTuner 以某种方式做到了)但我只是不知道如何做到。

可以指点我一些资源/书籍/示例吗?

谢谢。

c c++ gpu clockrates

3
推荐指数
1
解决办法
3966
查看次数

标签 统计

clockrates ×2

6502 ×1

c ×1

c++ ×1

emulation ×1

gpu ×1

low-level ×1