Q & A
Q: How did CPUID.com begin?
Franck: The 1st "web" experience was my (what would be today) blog speaking about programming in general, in French. But I quickly realized that I had to switch to English to touch more people. So I looked for a domain name and everything short with "asm" was already taken. CPUID.com was taken as well, but a couple of days later, I checked and it was free! So I jumped on it.
Q: What was your original purpose for creating the website?
Franck: I wanted to create an online tool that listed CPU instruction sets and allowed people to search in the list with several parameters such as instruction type and instruction name. They were also sorted depending on the nature of the operation. It was much more convenient in comparison to a search in a PDF file.
Q: When did CPU-Z show up?
Franck: Almost at the same time. Its original purpose was to show the instruction sets supported by the CPU. It was near the end of 1999, maybe the beginning of 2000.
Q: How has CPUID.com changed over the years?
Franck: CPUID.com has moved away from a being a resource for CPU instruction sets. The instruction sets on the website were still here until last year, but obviously the aim of the web site changed. CPU-Z was a program proposed by CPUID.com. Now, CPUID.com is the web site that hosts CPU-Z.
Q: Why do you think CPU-Z became so popular?
Franck: First, you have to consider that it was very progressive. CPU-Z did not become popular in one night. Also, I think that people use CPU-Z because the program did not evolve too much. It is simple, no install, and still fits on a floppy (maybe not for long because the unzipped EXE is at 1.2MB now!). Most programs become more and more complex as versions increase.
Q: In a nutshell, how does CPU-Z work?
Franck: To get information about a device, whatever it is (CPU, GPU, HDD ...) you have two methods: 1- hardware level access (aka direct or raw access) or 2- software level access: drivers, or Windows API.
Method 1 is the most accurate, provides the most precise details, but it is dangerous and requires constant updates. Method 2 is safer, less accurate and easier. CPU-Z uses method 1 for CPU information.
Q: Why is method 1 dangerous?
Franck: It is a question of ring. See, Windows kernel is organized in rings. “Ring 0” is the core of the kernel, and applications ran by users are in “Ring 3.” If a problem occurs in “Ring N” (general protection fault for example, let's say a division by zero), the “Ring N-1” layer can handle the error. Of course if N = 0 then nothing can handle the error and you get a bluescreen.
Q: Have you ever used method 2?
Franck: Yes, in some cases. For example, Ring 0 requires admin rights on the machine.
If I can’t get admin rights, I switch to method 2.
Q: So if I am a user on a machine without admin rights and I execute CPU-Z then CPU-Z will use method 2?
Franck: Exactly. CPU-Z will prompt a message, and information will be displayed, but less information and less accurate. It’s the spare wheel mode actually. Microsoft does not like you to write Ring 0 application code because obviously this is dangerous. So, for XP64 and Vista64 on they require the Ring 0 code to be digitally signed. That means you have to buy a certificate and only companies can buy one. Believe me, this was a mess.
Q: With CPU-Z you have to do a lot of updating to keep up with new hardware
right?
Franck: That depends. Some months are very rich in new hardware devices, some are less. Intel released 45nm, and I updated CPU-Z right away. Now it is calm.
Q: When you do an update, what kind of work do you do?
Franck: The CPU routine is a huge
switch [a piece of code that selects difference code paths]. When a new CPU is released, I add an entry to the switch.
For example: model 5: this CPU; model 6: this CPU .... Intel's doc mentions that the new CPU is model 7. So I add "model 7: this CPU" (very schematic).
Q: So you have to wait until the CPU is actually released before you can update CPU-Z?
Franck: No, I can either get the information by email from the manufacturer or get a dump from a beta tester. In some rare cases I have to wait.
Q: I’m guessing this information isn’t freely available to just anyone.
Franck: That depends on the manufacturer. But this is never easy to get them to provide you information. This can end in very stupid situations; a manufacturer would like CPU-Z to support his product but does not want to provide information. However, this greatly depends on the person you're speaking with. In all companies there are strange people who will require impossible things.
Q: For example?
Franck: I once was told "make efforts to guess ..." Also in some big companies, the PR people agree, the techs do not. So you sign all necessary NDAs [Non-Disclosure Agreements], and the tech responsible tells you that he won't provide the docs. The key is to find the right person. But there are a lot of personell changes, so people tend to switch companies. I had one excellent contact in a major motherboard brand, but he moved. Since then, no one helps me anymore in that company.
Q: Would you say that CPU-Z helps companies like Intel and AMD?
Franck: CPU-Z helps them, unless it displays information that they do not want to show. The best example is Enhanced Intel Speedstep Technology (EIST). Let's say you buy a CPU @ 3000 = 15x200. EIST reduces the clock speed at 1000 = 5x200 when idling.
Intel software will show 3000 MHz whatever. CPU-Z displays real time clock, so during idling, it displays 1000 MHz. Of course, this confuses a lot of people since they expect to see 3000MHz. So Intel asked me to always show 3000 MHz, at least besides the 1000 MHz.
Q: In this case they would always want CPU-Z to show 3000 MHz, just so people do not get confused? Do you agree with this?
Franck: No, because CPU-Z shows real clock, and real clock is sometimes 1000, sometimes 3000 MHz.
Q: Do you bend to the will of Intel or do you tell them "no"?
Franck: That depends on what they ask.
Q: Are there any new projects you are working on?
Franck: Yes, my latest project is HWMonitor. I think that monitoring will become more and more present on PCs, but there is still a lot of work. For example, HWMonitor may have 70% of Everest's capabilities concerning monitoring.
Q: You said you see its popularity growing in the future, but do you plan on writing detection and monitoring code for ever?
Franck: I really don't know. I like programming but of course this may change. 15 years ago I did not think I would do programming for living.
- Interview conducted and written by Easy Rhino