Processors
Which CPU brand?
There are really just 3 brands of CPU's that most people will want to consider for their HTPC's. Intel and AMD are the top two that most people will think of. The third choice would be VIA's C3 CPU's but their CPU speeds only go up to 1Ghz, making some features such as watching HDTV on a C3 based system impossible.
Intel and AMD
This is just one of those religious wars and regardless what I write I know some people won't agree. If you do use an Intel or AMD, here are the facts and my thoughts. Intel CPU's are better at some things and AMD CPU's are better at others and it changes with each new generation of CPU's. The biggest differences between CPU's brands and models are the speed of floating point calculations and the special instructions that are used for media processing. Now that there are dual and quad core processors it's harder to know which will work better. More cores only help if you're running more than one program or a program that is threaded (threaded meaning it splits processing out so it can use two or more independant processing lines). MythTV and X for instance are multi threaded and can make great use of dual and quad cores. The battle between Intel and AMD is close, but Intel and their Core 2 Duo's seems to have the lead for the year end of 2006 in price/performance.
Athlon 64 vs Intel Hyper Threading
When comparing an Athlon 64 3400+ or a FX-51 to a P4 2.8Ghz system, the P4 system does have smoother motion. This may sound like FUD but it's true. Why this is so is still being looked into. The Athlon 64bit 3400 (Which is 2.205Ghz) does have CPU to spare, and part of the CPU sits idle. What many people believe right now is that the Athlon FSB is the problem. It does not have as large of a bandwidth as the P4 CPU's with Hyper Threading. A P4 2.8Ghz with no Hyper Treading is not as smooth as a P4 2.8Ghz with Hyper Threading. It could be the GCC compilers not compiling code as well for AMD chips, it could be a wider bandwidth between the CPU and the AGP card on a P4. It could be that the P4 works better for a heavily threaded program like say MythTV and taking better use of Hyper Treading in the P4's with Hyper Threading. It could be that the OpenGl VSync on the Nvidia video cards works better with P4's with Hyper Treading... -- Is this something to really consider though? To me it was. Some people may not notice or care about the little difference in motion smoothness.
64 bit systems in general
What about 64 bit systems in general? Well, this is a very complicated area. If all applications worked as well as they could under 64 bit, then there are some things that 64 bits could help us with for computing, but not HTPC's. 64 bit systems alone aren't really needed for all computing areas, and sometimes it's bad (Embedded systems for example). What 64 bit systems provide is more precision. This can be from graphics detail, system bandwidth and storage. For a HTPC there's nothing we need to be 64 bits. 32 bits is enough for a HTPC. 32 bit systems can hold typically 4-8GB's of memory, 64 bit systems can hold thousands of GB's of memory. Floating point calculations don't need to have 64 bits of accuracy, 32 is enough for a HTPC. Many people think that "64 bits will do twice as much" which is true, except if you take a 32 bit system that sends (for example) 100 32bit data chunks per second and a 64 bit system sends 25 64 bit data chunks per second, the 32 bit system would be twice as fast (for bandwidth). This is why an Athlon 64 systems 400mhz bus isn't always as good as an Intel 32 bit systems' 800Mhz FSB -- What happens when you do something that is 32 bit and run at 400mhz instead of using an 800mhz bus?... With now higher speed FSB's on Athlon 64 systems you can get as good or better than Intel P4's, but not in all areas, and so it won't make much if any difference on a HTPC.
There is still a lot of work being done in compilers and applications to properly handle 64 bit natively. When applications have problems we see 64 bit systems drop into 32 bit emulation mode which can sometimes be very, very bad. An example is some video stream decoding that takes 15% CPU usage on an AMD 3000 CPU but takes over 90% CPU on an 64 bit AMD 3400 system. As you can conclude, this is a problem. As time goes on, problems like these will go away. But if you choose to go Intel and worry 64 bit will be better later, here's something to keep you at peace. Many compilers and applications don't support SSE3, Intels newest line of instructions to improve decoding video. SSE3 will be supported by GCC 4.0, which you can now get but is not shipped on most distro's yet. -- My personal thoughts are that 64 bit systems are nice for transfering huge amounts of data, but HD content still doesn't need this (Unless you plan on having 12 HD cards in a system and are running a fiber backplane to a SAN). I believe staying 32 bit is a good choice for a HTPC and will be for atleast 3-4 years. I also believe the motherboard chipsets made for Intel CPU's are better than AMD's. From my experience, your mainboard is often the biggest pain or regret if you get it wrong and going with Intel on average is a better choice. If you want an 64 bit AMD system and are religious about it, I won't stop you. :)
Intel Northwood vs Prescott cores
Many people are asking about Prescott vs Northwood for Intel CPU's. Right now no applications take use of the SSE3 instruction set, a special part of the CPU that makes the Prescott CPU faster for certain things. Prescott and Northwood are within a couple % of eachother in performance depending on the test. The Prescott does take about 103Watts of power where the Northwood took about 89Watts. This means more heat and power used. If you're deciding between one or the other for the same Ghz speed, I'd recommend Northwood. Once Prescott reaches 4+Ghz (Planned up to 5Ghz by Intel) Then Prescott is the way to go, but realize you'll have a bigger heat problem, and a good power supply will be more important. I ended up buying a Prescott 3.0Ghz CPU and when comparing it to a Northwood CPU in the same case, it runs 4C hotter on the CPU and the motherboard reports a temperature of 11C hotter, which really makes me with I had gone with a northwood core.
Dual, Quad Cores
Dual and Quad cores have really helped the HTPC market because most media applications can make use of two cores. Quad cores will help more but only if the application has 4 or more threads (2 threads are common, more than that are not). For a backend server 4 threads may be really helpful if you're transcoding or commercial detecting 4 programs at once. Frontends may use 2-3 or maybe 4 cores but for the next year most programs probably won't use 4 cores so it may not be worth the extra money yet. 2 cores though seems to be good enough for most any HTPC if you keep around 1.8 or 2.0ghz processors. As we see prices for dual cores drop HTPC's will be much cheaper to make and there isn't a need to buy the newest processor unless you're using the system for more than Movie and HDTV watching. The dual cores generation is the first time we can really build a good box without wishing we had more performance behind it.
Via
The reason is that HDTV takes around 2.8Ghz to de-interlace and make 1080i HDTV look good (Unless you use a video card that supports XvMC Hardware MPEG-2 decoding which offloads about 1ghz of CPU usage to the video card -- which leaves you needing a 1.8Ghz CPU or so, which is more than C3's have). If you never plan on doing HDTV with this specific HTPC, C3 can be a great choice. Some of the coolest (Temperature and looks), smallest, and quietest HTPC's are ones running C3 processors. They work very well when combined with hardware encoder and decoder cards like the PVR-X50 cards. These cards will off load the CPU from displaying and encoding audio and video. A 1.0 Ghz C3 is more than enough for DVD, TV, and Music when combined with these cards. The Telly, Replay, and over half of the set top and commercial available HTPC's use Via C3's in them. Many guru HTPC builders use C3's and in another year we should see C3's running HDTV (Which some of the newer C3 boards support, but no driver works for this yet, see the links page for this project link).
Tricks if you're CPU just barely isn't enough
As an example, my AMD 2600 system can not play 1080i smoothly. I got around this for a short time by transcoding (Which can de-interlace the video and make the resolution smaller which will then require less CPU to decode, but it may take 3 hours to process for each hour of video). Transcoding takes about 1.5-3.5 times the time length of the show depending on the resolutions and CPU. A P4 2.8Ghz system runs at 70% usage for the same thing (Watching de-interlaced 1080i in Live TV) and can transcode shows in .7 to 1.9 times the show time length. For these reason, I strongly, strongly recommend a 2.8Ghz or higher Intel P4 with Hyper Threading as a base for HDTV users. Spend the little bit of extra money here and you won't be sorry. As a note, decoding HDTV may take only a 2Ghz or so processor, but displaying it in X takes about another 1Ghz. The way I watch de-interlaced 1080i in Live TV, or before a show is transcoded is with my NVidia FX5200 video card. This video card supports XvMC which takes some of the load off my CPU making watching the video while my system is doing other things work almost perfectly. XvMC quality was not as good until July of 2004 for MythTV but now it looks almost as good as software decoding (Which will always look only slightly better).
|