Example #1
0
        public void Pentium4Mobile()
        {
            GenuineIntelCpu cpu = GetCpu("Dell_c840.xml");

            CheckSignature(0xF24);
            FeatureCheck.Check("standard", 0x00000000, 0x3FEBF9FF);
            FeatureCheck.Check("extended", 0x00000000, 0x00000000);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Pentium(R) 4 Mobile CPU 1.80GHz"));
        }
Example #2
0
        private GenuineIntelCpu GetCpu(string fileName)
        {
            string fullPath = Path.Combine(TestResources, fileName);

            FeatureCheck.LoadCpu(fullPath);
            GenuineIntelCpu x86cpu = FeatureCheck.Cpu as GenuineIntelCpu;

            Assert.That(x86cpu, Is.Not.Null);
            Assert.That(x86cpu.CpuVendor, Is.EqualTo(CpuVendor.GenuineIntel));
            Assert.That(x86cpu.VendorId, Is.EqualTo("GenuineIntel"));
            Assert.That(x86cpu.Topology.CoreTopology.IsReadOnly, Is.True);
            Assert.That(x86cpu.Topology.CacheTopology.IsReadOnly, Is.True);
            return(x86cpu);
        }
Example #3
0
        public void PentiumM()
        {
            GenuineIntelCpu cpu = GetCpu("Dell_M70.xml");

            CheckSignature(0x6D8);
            FeatureCheck.Check("standard", 0x00000180, 0xAFE9FBFF);
            FeatureCheck.Check("extended", 0x00000000, 0x00100000);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Pentium(R) M processor 2.00GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(2));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 0, 0);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1);
        }
Example #4
0
        public void Corei7_4930K()
        {
            GenuineIntelCpu cpu = GetCpu("i7-4930K.xml");

            CheckSignature(0x306E4);
            FeatureCheck.Check("standard", 0x7FBEE3BF, 0xBFEBFBFF, 0x00000281, 0x00000000, 0x00000000);
            FeatureCheck.Check("extended", 0x00000001, 0x2C100800);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(3));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Smt, 0, 1);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 4, 15);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1 << 5);
        }
Example #5
0
        public void Corei7_3820QM()
        {
            GenuineIntelCpu cpu = GetCpu("i7-3820QM.xml");

            CheckSignature(0x306A9);
            FeatureCheck.Check("standard", 0x7FBAE3FF, 0xBFEBFBFF, 0x00000281, 0x00000000, 0x00000000);
            FeatureCheck.Check("extended", 0x00000001, 0x28100800);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Core(TM) i7-3820QM CPU @ 2.70GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(3));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Smt, 0, 1);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 0, 7);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1 << 4);
        }
Example #6
0
        public void Corei3_2120T()
        {
            GenuineIntelCpu cpu = GetCpu("i3-2120T.xml");

            CheckSignature(0x206A7);
            FeatureCheck.Check("standard", 0x9C982203, 0x1FEBFBFF);
            FeatureCheck.Check("extended", 0x00000001, 0x28100800);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Core(TM) i3-2120T CPU @ 2.60GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(3));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Smt, 0, 0);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 1, 1);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1 << 1);
        }
Example #7
0
        public void Xeon_W3540()
        {
            GenuineIntelCpu cpu = GetCpu("xeon-W3540.xml");

            CheckSignature(0x106A5);
            FeatureCheck.Check("standard", 0x009CE3BD, 0xBFEBFBFF);
            FeatureCheck.Check("extended", 0x00000001, 0x28100800);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Xeon(R) CPU           W3540  @ 2.93GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(3));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Smt, 0, 1);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 1, 7);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1 << 4);
        }
Example #8
0
        public void CoreDuoT2700()
        {
            GenuineIntelCpu cpu = GetCpu("Dell_M65.xml");

            CheckSignature(0x6EC);
            FeatureCheck.Check("standard", 0x0000C1A9, 0xBFE9FBFF);
            FeatureCheck.Check("extended", 0x00000000, 0x00100000);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Core(TM) Duo CPU      T2700  @ 2.33GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(3));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Smt, 0, 0);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 0, 1);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1 << 1);
        }
Example #9
0
        public void CoreQuadQ9450()
        {
            GenuineIntelCpu cpu = GetCpu("Core2Quad.xml");

            CheckSignature(0x10677);
            FeatureCheck.Check("standard", 0x0008E3FD, 0xBFEBFBFF);
            FeatureCheck.Check("extended", 0x00000001, 0x20100000);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Core(TM)2 Quad  CPU   Q9450  @ 2.66GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(3));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Smt, 0, 0);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 2, 3);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1 << 2);
        }
Example #10
0
        public void Pentium4()
        {
            GenuineIntelCpu cpu = GetCpu("Pentium4.xml");

            CheckSignature(0xF27);
            FeatureCheck.Check("standard", 0x00004400, 0xBFEBFBFF);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Pentium(R) 4 CPU 2.53GHz"));
            Assert.That(cpu.Features["HTT"], Is.True);
            Assert.That(cpu.Features["APIC"], Is.True);

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(2));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 0, 0);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1);
        }
Example #11
0
        public void Corei9_10900K()
        {
            GenuineIntelCpu cpu = GetCpu("i9-10900K.xml");

            CheckSignature(0xA0655);
            FeatureCheck.Check("standard", 0x7FFAFBFF, 0xBFEBFBFF, 0x029C67AF, 0x40000008, 0xBC000400);
            FeatureCheck.Check("procstate", 0x0000000F);
            FeatureCheck.Check("extended", 0x00000121, 0x2C100000);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(3));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Smt, 0, 1);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 0, 15);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1 << 5);
        }
Example #12
0
        public void Corei7_6600U()
        {
            GenuineIntelCpu cpu = GetCpu("i7-6600U_SurfaceBook.xml");

            CheckSignature(0x406E3);
            FeatureCheck.Check("standard", 0xFEDAF387, 0xBFEBFBFF, 0x009C6FBB, 0x00000000, 0xBC000400);
            FeatureCheck.Check("procstate", 0x0000000F);
            FeatureCheck.Check("extended", 0x00000121, 0x2C100800);
            FeatureCheck.AssertOnDifference();
            Assert.That(cpu.Description, Is.EqualTo("Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz"));

            Assert.That(cpu.Topology.CoreTopology.Count, Is.EqualTo(3));
            FeatureCheck.AssertCoreTopo(CpuTopoType.Smt, 1, 1);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Core, 1, 7);
            FeatureCheck.AssertCoreTopo(CpuTopoType.Package, 0, -1 << 4);
        }
Example #13
0
        public void I486_DX4()
        {
            ICpuIdX86 cpu = GetCpu("i486dx4.xml");

            Assert.That(cpu.VendorId, Is.EqualTo("GenuineIntel"));

            // Even though the file contains CPUID[01h], it shouldn't be queried because 0h says it doesn't exist.
            Assert.That(cpu.ProcessorSignature, Is.EqualTo(0x482));
            Assert.That(cpu.Model, Is.EqualTo(8));
            Assert.That(cpu.Family, Is.EqualTo(4));
            Assert.That(cpu.ProcessorType, Is.EqualTo(0));
            Assert.That(cpu.Stepping, Is.EqualTo(2));
            Assert.That(cpu.Features["FPU"], Is.True);

            GenuineIntelCpu intelCpu = cpu as GenuineIntelCpu;

            Assert.That(intelCpu, Is.Not.Null, "Expected Intel CPU");
            Assert.That(intelCpu.Description, Is.EqualTo("IntelDX4(TM)"));
        }
Example #14
0
        protected ICpuIdX86 Create(BasicCpu cpu)
        {
            ICpuIdX86 x86cpu;

            switch (cpu.VendorId)
            {
            case "GenuineIntel":
                try {
                    x86cpu = new GenuineIntelCpu(cpu);
                } catch {
                    if (!cpu.CpuRegisters.IsOnline)
                    {
                        throw;
                    }
                    x86cpu = new GenericIntelCpu(cpu);
                }
                break;

            case "AuthenticAMD":
                try {
                    x86cpu = new AuthenticAmdCpu(cpu);
                } catch {
                    if (!cpu.CpuRegisters.IsOnline)
                    {
                        throw;
                    }
                    x86cpu = new GenericIntelCpu(cpu);
                }
                break;

            default:
                x86cpu = new GenericIntelCpu(cpu);
                break;
            }

            x86cpu.Topology.CoreTopology.IsReadOnly  = true;
            x86cpu.Topology.CacheTopology.IsReadOnly = true;
            return(x86cpu);
        }