Intel64 vs IA64

March 17, 2009

Intel64 and IA64 are two very different instruction set and architecture use in the Intel processor.

Intel 64 (formerly known as EM64T or IA32e) is the 64-bit extended instruction set based on x86 processor architecture. Modern processor that incorporated Intel64 technology could also run 32-bit application on a 32-bit operating system without performance losses although the 32-bit operating system would not be able to utilize any features in the Intel64 technology. The reason for such design is for backward compatibility which is the key to the success of Intel x86 processor.

IA64 however is based on an entirely different architecture. Only Intel Itanium processor employs IA64 architecture. It does not provide any backward compatibility with the IA32 software. the emulation of such 32-bit application is very slow. Originally Intel incorporated hardware emulation to the 32-bit application but since then Intel has been replying on software emulation.

For further information, you can visit the following sites:

http://en.wikipedia.org/wiki/X86-64#Intel_64

http://en.wikipedia.org/wiki/Itanium#Architecture


Intel C++ Compiler

March 17, 2009

The Intel C++ compiler was developed primarily for those that need to squeeze the absolute maximum performance possible from Intel’s IA-32 processors.

There are multiple platform available. Intel C++ Compiler for Windows is a professional version which is available for download for evaluation purpose. Please note that you need Microsoft Visual Studio in order to work with this compiler.

Intel C++ Compiler for Linux is also available for evaluation. In addition, Intel provides an additional free license for non-commercial use.

Intel also provide an additional compiler for Mac OSX.

For further information please visit the following site:

http://www.intel.com/cd/software/products/asmo-na/eng/compilers/284132.htm

Please google “Intel C compiler” if the link is broken.


Transfer Rate (bps or Bps)

March 9, 2009

When we talk about data transfer rate, I am surprise that some IT professionals get confused with the differences between bps and Bps.

bps (bits per second) is usually used for raw data transfer speed between two identical devices. It is commonly used for USB, FireWire, Wi-Fi and networking devices.

Bps (Bytes per second) usually refers to the data transfer rate of files. It is commonly used to describe the data transfer rate of PCI bus, ATA, SATA and SCSI devices.

As you can see, different type of devices uses different type of transfer rate. Things starts to get complicated when you decided to purchase an external hard disk with USB, FireWire or eSata connection. This is where confusion started.

1 Byte = 8 bits. Therefore a 512kbps is 64kBps. The formula is as follows:

1k bits = 1024 bits

512k bits = 512 x 1024 = 524,288 bits

Since 1 Byte = 8 bits, 524288 bits can be expressed as

524288/8 Bytes = 65536 Bytes

To convert 65536 Bytes to KBytes

65536/1024 = 64kB

Therefore 512kbps = 64kBps

We can just simply divide 512 by 8 (512/8) = 64kBps

I had compiled a list of various system buses and its transfer speed for comparison purpose:

Mbps MBps
USB 1.0 2 0.25
USB 1.1 12 1.5
USB 2.0 HS 480 60
1394a (FW400) 400 50
1394b (FW800) 800 100
10 BaseT 10 1.25
100Base T 100 12.5
1000BaseX 1000 125
802.11b 11 1.375
802.11g 54 6.75
802.11n* 540 67.5
PCI 1064 133
AGP 2X 4264 533
AGP 4X 8528 1066
AGP 8X 17064 2133
PCIe 1x 2000 250
PCIe 2x 4000 500
PCIe 4x 8000 1000
PCIe 16x 32000 4000
ATA66 528 66
ATA100 800 100
ATA133 1064 133
SATA150 1200 150
SATA300 2400 300
eSATA 2400 300
Ultra SCSI 320 2560 320

Note:

* For 802.11n Wi-Fi, the transfer rate ranges from 300Mbps to 540Mbps. Existing working product works at 300Mbps. There is an attempt to push the transfer rate to a maximum of 600Mbps.

So if you bought an external hard disk with USB connection, the transfer rate will be limited to the USB transfer rate.

Please note that USB 3.0 (coming soon) with a transfer rate of 625MBps should solve the limitation of the USB transfer rate and in this case your maximum data transfer rate will be limited to your ATA or SATA hard disk transfer rate.

Please note that the list mentioned above are theoretical rate which is tested under a very specialized environment, in practice we can never achieve 100% of the advertised rate.

For Wi-Fi, please note that although there are a lot of products advertise as compliant to 802.11n specification. The official standard has not yet been finalized.

There is a study taking into consideration of network overhead as shown below:

Typical rate after consider network over head

range (unblock) Mbps MBps
802.11b (100m) 6.5 0.8125
802.11g (75m) 25 3.125
802.11n (125m) 200 25

The abovementioned table is just one of the many studies conducted to test the effective Wi-Fi throughput. For more updated results, please search the Internet.


C# Programming – The Language

March 6, 2009

Below is my notes on C# 2.0. It focus mainly on the language itself. Information of .Net and Visual Studio 2005 is documented in a separate document.

View this document on Scribd

C++ Addition

March 6, 2009

I did not compiled a separate reference guide for C++. Instead I compiled this additional notes focusing on the additions of C++ made to C. Of course, the main topics in this booklet is Object Oriented Programming

View this document on Scribd

C Reference

March 6, 2009

The following is my reference guide for C Language. Althought the basic is brief, I had covered extensively in the use of pointers.

View this document on Scribd

Intel Programming Architecture (Master Notes)

March 5, 2009

This is my main study notes on Intel Programming Architecture. I have consolidate various information from textbooks, manuals and information from the Internet. This is an on-going exercise.

My main source is as follows:

The Intel Microprocessor by B. Brey

Intel IA32 Developers Manual (3 Vol)

View this document on Scribd