CASS, The Computer Architecture Summer School was organized by IITK for the first time and it has made its mark in its very first year covering the most important aspects of the field of Computer Architecture.

Summer School on Computer Architecture (CASS_18)- 02-07-2018 (6)   Summer School on Computer Architecture (CASS_18)- Prof. Govind- Session 04-07-2018 (10) Summer School on Computer Architecture (CASS’18)- 02-07-2018 (19).JPG  Summer School on Computer Architecture (CASS_18)- Prof. Manu Awasthi - Session 03-07-2018 (1)


Our journey began much before the summer school started when our college professor advised us to attend the workshop which would prepare us for the official course Computer Architecture in our college. So 7 of us from IIITD registered for the workshop and to our delight, all of us were selected to attend the workshop.

We were overjoyed not only to be able to attend the workshop and learn about CA but also to be able to visit the much heard campus of IITK.

The first day introduced us with a title which was really apt and also drove us to crack the mystery and excitement to decipher behind the  title and motivated us to  relate each and every stuff taught to us in order to unlock the mysteries of the title.

“Breaking the Abstraction Barrier”.This title sure is a breakthrough  in the field of engineering in general and the organisers had made real effort in revealing the various layers of the abstraction barrier on each day.Cheers to all the Profs!!

I was also really surprised by the amount of variety we had in terms of students.Some were professor in college,some were doing research in this field as PhD students,some were resuming their studies after 12 years of work experience and the list goes on.This was also one of the very unique aspect of CASS bringing like minded learners,passioonate researchers and professors under one roof.

Starting from Performance issues-Caches-Memory-Parallelism. Wow there was so much to learn which was sometimes overwhelming too :p. The hands on session were my favourite ones and I used to bug the TA’s about why ,what ,how and I learnt a lot during those sessions.I bet SUDHANSHU bhaiya still remembers my name Ankur because of how much I used to bug him with Why,What,Why not,What if and I learned a lot from the answers he gave to me.Samuel and Nayan bhaiya were equally helpful and I really enjoyed talking ,asking from them.Biswa Sir had a good set of interns under him.

My favourite lectures were those conducted on Memory by Govind Sir.He explained in a very Lucid manner and it ignited my attraction towards memory systems.I liked the way how swiftly he moved from the very basic to the current research topics.I hope to be able to work with him if I pursue this field in the future.

Unfortuately we had to leave one day before the end of the workshop and we missed the grand dinner as well :(.

The fourth day was the best day when we got to work on CHAMP-SIM and Gem-5 along with spectacular talks by Profs-“WHY TO DO RESEARCH?”.This was again one of the highlights of the workshop?I still remeber Biswa Sir’s laugh and filling in the blanks when  the recorder is off when Govibd Sir mentioned “XL-YL  is fashionable and cool”!!.

The talks by people from industry (AMD) were also insightful. All in all it was a really nice start to CASS which I believe will become better and better as time progresses.Maybe XL-YL can help to predict how to get even better results :p. I believe more hands-on session may be more fruitful in the future and much more fun as well.Hoping to work with some of the professors in the near future and helping others as TA  in the next CASS.

Signng off , with the vivid view of RUSSIA beating SPAIN from the lively match that we saws  in OPEN AIR THEATRE.















Processor Speed Versus Memory


A very common question I am asked is which is more important, the speed of the processor or the amount memory.This was also the same question that I faced while buying one for myself but at the end I reached to some understanding of the 2 duo’s.

This is a difficult question to answer and it would help if we had some understanding of what each component does and how they relate to each other.

This blog will strive to teach you the fundamental tasks of both memory and the cpu and how they relate to each other.

Hopefully at the end of this article, you will be able to answer this question yourself.

Central Processing Unit (CPU)  

download                            download (2).jpg

The CPU is the brain of the computer. It’s job is to take information from the various input devices, the operating system, and software and execute the instructions that it has been given.

A CPU executes a certain amount of instructions within a grouping called a cycle. The speed of the CPU is measured in how many cycles it can perform in a given second. A speed of one cycle per second is called a hertz. Therefore a CPU that has a frequency of 1 million cycles per second has the speed of a Megahertz, and a CPU that has a frequency of 1 billion cycles per second is a Gigahertz.

This is illustrated in the table below:

Hertz Term Cycles Per Second
1 Hertz 1
1 Megahertz 1,000,000
800 Megagertz 800,000,000
1 Gigahertz 1,000,000,000

Therefore to have a very high CPU Speed is a good thing, because more instructions per second get executed.

On the other hand, with most computers coming default with around 2 Ghz,one will start to see a diminishing return on the visible speed differences between one processor and the next speed.

Computers with at least 2Ghz should be more than fine these days for most applications and you will probably not see much of a difference by increasing the speed of your processor when using standard applications.

Games on the other hand can be more CPU intensive, and if you are going to be using your computer predominantly as a gaming machine, then it could not hurt to spend a few extra dollars on the CPU.

Computer Memory

download-1                                   download-3

Just as important to the speed of the CPU is the amount of memory you have in your computer. Memory is the temporary storage place for your computers information. When a computer is manipulating some sort of information it is placed in the memory to be retrieves or manipulated later.

If all the  You must remember though, to save some money for your memory, as that is just as important to having a fast machine.usable memory gets filled up, the computer will then start storing temporary data on to your hard drive in something called a swap file. When the CPU is ready to use that information it will then read it back from your hard drive and place it into memory where it can be used.

As you can see when you use a swap file, and the CPU needs to access the data it becomes a two-step process in retrieving that data from the hard drive and then stored in the memory, instead of a one step process of reading the data directly from memory.

Even more important is that reading data from memory is many many times faster than reading that same data off the hard drive. With this in mind, one  can see how it is important to have as much memory as one can, so that the swap file on your hard drive is never used, and all data is stored and read directly from your memory.


With all this information we are still left with the burning question of “Which is more important, Memory or CPU Speed” and the answer is neither and both. Got you there didn’t I?

The real answer depends on how much one  have to spend on the new computer and what the base system is. If the base system is at least 2 Ghz then I would apply the money towards memory, otherwise I would increase it to over 2 Ghz.

If you have money left over I would spend the rest of your budget to increase your memory to 4 GB or as close as you can get. These days, you really should have at a bare minimum of 2 GB of memory, with 4 GB being preferred.


What are file extensions

A file extension, or file name extension, is the letters immediately shown after the last period in a file name. For example, the file extension.txt has an extension of .txt.

This extension allows the operating system to know what type of file it is and what program to run when you double-click on it. There are no particular rules regarding how an extension should be formatted other than it must begin with a period and have at least one character after it.

For the most part, file extensions consist of three characters, which are typically letters or digits, that textually represent the type of file it is. Some examples of file extensions include .txt, .mp3, .jpg, and .gz, which represent text files, mp3 files, jpeg image files, and files compressed with the gzip program.

As we can see, the actual extension name gives clues as to the type of file it is.

When trying to determine a file’s extension it is important to remember that the extension is simply the last period in a file and the characters that follow it. If there is no period in a file, then it does not have an extension.

To make it easier to see what  files extension are, please see the examples in the chart below:

Filename Extension Notes
report_card.txt .txt The extension is the period followed by the remaining characters. .app The extension is the period followed by the remaining characters.
Postcard.pdf.exe .exe This one is a bit tricky, because there are two periods in this file. The important thing to remember is the extension is the last period and the characters that follow it.

As already said, an operating system knows what programs to use in order to view, print, or edit a particular file by looking at its file extension.

It is able to do this because each operating system has in its configuration a default mapping between a particular file extension and a particular program. Using this information, when a user clicks on a file, the operating reads the file extension and then launches the mapped application.

Typically, if the extension is unknown to the operating system or no application mapping exists, it will prompt the user to specify the program that it would like to open the file with.

By defaults, Windows and the Mac OS do not show file extensions. It is also possible to change the program that your operating system uses to open a particular extension.

How malware writers use extensions to trick you into running a virus

A common trick that malware developers will use to trick you into running a computer infection is to send an email attachment that has a file name that contains two periods in it. An example of this type of file name issales_report.xls.exe.

As one can see the file has an .exe extension on it, which means it is an executable. Seeing that a file has this name and is an executable is enough of a hint that one should probably not run the program.

On the other hand, what happens if there was a way to make it so that the .exe extension was stripped from the file name so that it appears as sales_reports.xls?

If one  receive this from someone one works with who may be infected, there is a good chance you will think it is legitimate and therefore double-click on it. Once you double-click on it, the file will then execute, because it is actually an executable, and infect your computer.

The malware developers know that this method works because by default Windows does not show you file extensions. Therefore, if you do not have file extensions enabled, windows will just show you everything before the last period in the file name and you may think that it is the full name. Therefore, it is a common tactic for network worms or spammers to send out attachments containing these “double” extensions as they know that Microsoft will strip off the last one and thus making it seem like a safe file.

Common File Extensions

Below are a list of common file extensions that you may find on your computer or over the Internet.

Audio Extensions

Extension Description
.aif A Audio Interchange File is an audio file format that is most commonly used on Apple Macintosh computer systems.
.m3u M3U files are used to store multimedia play lists.
.mp3 An MP3 file is the most common file format used to store digital audio for use on computers and digital media devices.
.ra Audio files created by Real Audio
.wav A WAV, or Waveform Audio File Format, is a audio file format used to store audio on PCs.
.wma Windows Media Audio, or WMA, files is a audio file format developed by Microsoft.


Video Extensions

Extension Description
.avi A Audio Video Interleave, or AVI, file is a video and audio file created by Microsoft.
.flv Flash video files.
.mov Apple Quick Time movie.
.mp4 A video file.
.mpg A MPEG video file.
wmv A Windows Media Video, or WMV, file is a video file type created by Microsoft.


Image Extensions

Extension Description
.bmp A Bitmap, or BMP, file is an image file used to store bitmap digital images. These files are typically found in Windows.
.cur The CUR file format is used to store non-animated cursors in Windows.
.ico The ICO file format is used to store computer icons in Microsoft Windows.
.gif A Graphics Interchange Format, or GIF, is an image file format created by Compuserve. This is a common format to find on a computer and the Internet.
.jpg A JPEG image file is a common file found on computers and the Internet.
.jpeg Another extension that corresponds to a JPEG image file.
.png A Portable Network Graphic, or PNG, is an image file that was created to replace GIF files. This is a common format to find on a computer and the Internet.
.psd A Photoshop Document, or PSD, file is used to store images created by Adobe Photoshop.
.raw The raw image format is commonly used by digital cameras to save a picture in a format that has not currently been processed.


Workplace Applications and Text Files Extensions

Extension Description
.csv A Comma Separated Value, or CSV, file is a text file that contains lines of data that are separated by commas.
.doc A Word Document, or DOC, file is the extension that Word would save its documents.
.docx Starting in Word 2007, the .docx file format became the standard file that Microsoft Word would save files as.
.log A text file typically containing a textual log of what an application or computer process has done or transmitted.
.pdf A Portable Document Format, or PDF, file is a file format that was created by Adobe Systems. This file format is used to create documents that contain a specific fixed layout regardless of the operating system or application that opens them.
.pps A Microsoft PowerPoint slide show file.
.ppt A PowerPoint Document, or PPT, file is the extension that PowerPoint would save its documents.
.pptx Starting in PowerPoint 2007, the .pptx file format became the standard file that Microsoft PowerPoint would save files as.
.rtf A Rich Text Format, or RTF, file was created by Microsoft to allow the formatting of text, such as bold or underline, in a text document.
.txt A text file is a file that contains textual data without any formatting.

Understanding File Compression and Archives

File compressors and archives?

This blog  will focus on explaining what file compression and archives are and how to use them. This technology will not only enable  us to more efficiently send attachments via email, but also save space on our hard drive and allow one to more easily back up files.

But before let’s preview some definitions

File Compression
File compression is the act of taking a file on the hard drive and making it so that it’s size becomes smaller and therefore takes up less storage space . Also it helps to send and receive the files or the data faster while uploading or downloading on the internet
File Compressor
A compressor is a program that actually compresses another file. Compress, Gzip, WinRar, and Winzip, among many others, are examples of these types of programs.
File Archival Program
An archival program takes many seperate files and archives them into one file. For example, an archival program would allow you to take a directory of files and archive them into one file that you can then send as an email with a single attachment for all those individual files.
An archive is a single file that contains many seperate files. These individual files can be extracted from the main archive
Compressed File
A file that has been compressed into a smaller size than it originally had.

It is important to note that many programs can both archive and compress files. For example, Winzip will take many seperate files, compress them and then store them into an archive file. Thus we are left with a single archive which contains many compressed file.

When to use an archive or file compression

Now that we  know what a compressed file or an archive is we must then ponder upn its usage The three most common reasons to use archives and compressed files are:

File compression saves storage space

By using a compressor to make an image smaller, you are using up less space on your hard drive to store this file. For example, a word document that is 89 Kilobytes on my hard drive, when zipped, is now only 8 Kilobytes. That is a 90% saving in storage space! Take a look at the table below to see some more examples of the type of storage space you can save using file compression:

Type of file
Size before compression in Bytes
Size after compression in Bytes
Percentage Compressesd
Word Document
TXT File
Excel Document
EXE File
DLL File
JPEG Image
Bitmap Image
GIF Image
MP3 File

As you can see, some file formats compress a great deal more than other formats. This is because certain file types are already compressed, and therefore can not be compressed any further. Looking at the chart above, it obviously does not make sense to compress MP3, GIF, JPEG, or other compressed file formats as you will not gain any benefit. On the other hand, Word, Excel, Text, and program files compress quite well

Transmission Speeds

How fast a file is transmitted over a network or the Internet is dependent upon how big this file is. For example, a file with the size of 1,337,344 bytes took approximately 28 seconds to upload to a remote server. Yet this same file compressed to a size of 554,809 bytes only took 12 seconds. That is a savings in time of over 50%. Now imagine if anyone  is  sending files that would normally take an hour to send, and after compressing the files, it now only takes 30 minutes. The savings in time and potentially money is incredible.

Sending only 1 file

There are times that you need to send many attachments in one email message. This can be difficult and confusing at times, so instead you use an archival program to convert the 20 files into a single file. This is much more organized and easier to manipulate.

Backing up data

Archival programs are used often to back up data. You would use archives to backup a folder or a number of files into a single file and compress them as well. This allows you to save space and then store that individual file on a floppy or other removable media.

Note: It is important to note though, that with all formats, whether it be a compressed file or an archive, you must always uncompress and/or extract the file before you will be able to use it.

Types of archives and file compressors

There are many types of archival progarms and compressors. The table below will give a listing of the more common programs that are used today along with the file extension that they use:

File Extension
Operating System**
Archive/Compress DOS/Windows
Archive/Compress DOS/Windows
Archive/Compress DOS/Windows
Compress Unix/Linux
Compress Unix/Linux
Archive Unix/Linux
Stuffit Expander
Archive/Compress Apple

* Many of these programs can handle more than one format. The format listed is the native format for that program.

** The operating system listed is the native operating system for these formats. These formats may be able to be used on other operating systems as well.

TCP and UDP Ports Explained

Here we will discuss the concept of ports and how they work with IP addresses.You need to be clear with concept of IP addresses.

The devices and the computers which are connected to the internet communicate with each other using TCP/IP protocols.Whenever a computer needs to send some kind of information to another computer then it needs to know the destination ie the IP address where the information needs to be directed to.That information is sent most
often via two methods, UDP and TCP.

The two Internet workhorses: UDP and TCP

UDP? TCP?Confusing? Well I will try to remove this confusion.

TCP stands for Transmission Control Protocol.

Using this method, the computer sending the data connects directly to the computer it is sending the data it to, and stays connected for the duration of the transfer. With this method, the two computers can guarantee that the data has arrived safely and correctly, and then they disconnect the connection. This method of transferring data tends to be quicker and more reliable, but puts a higher load on the computer as it has to monitor the connection and the data going across it

UDP stands for User Datagram Protocol.

Using this method, the computer sending the data packages the
information into a nice little package and releases it into the network with the hopes that it will get to the right place. What this means is that UDP does not connect directly to the receiving computer like TCP does, but rather sends the data out and relies on the devices in between the sending computer and the receiving computer to get the data where it is supposed to go properly. This method of transmission does not provide
any guarantee that the data you send will ever reach its destination.

Real life analogy of TCP and UDP…

TCP-A real life comparison to this method would be to pick up the phone and call a friend. You have a conversation and when it is over, you both hang up, releasing the connection.

UDP-Its like the postal service where we place the data hoping that it would reach the destination correctly but sometimes it does not.

TCP and UDP Ports

The IP address of our machine is used for its recognition in the internet.Whenever an information is sent for my IP address then it accepts the information via the TCP or UDP ports.

An easy way to understand ports is to imagine your IP address is a cable box and the ports are the different channels on that cable box. The cable company knows how to send cable to your cable box based upon a unique serial number associated with that box (IP Address), and then you receive the individual shows on different channels (Ports).

Ports work the same way. You have an IP address, and then many ports on that IP address. When I say many, We can have a total of 65,535 TCP Ports and another 65,535 UDP ports. When a program on your computer sends or receives data over the Internet it sends that data to an ip address and a specific  port on the remote computer, and receives the data on a usually random port on its own computer. If it uses the TCP protocol to send and receive the data then it will connect and bind itself to a TCP port. If it uses the UDP protocol to send and receive data, it will use a UDP port.

Figure 1, below, is a representation of an IP address split into its many TCP and UDP ports. Note that once an application binds itself to a particular port, that port can not be used by any other application. It is first come, first served.

<——————– ——————–>

0 1 2 3 4 5 .. .. .. .. .. .. .. .. 65531 65532 65533 65534 65535

Figure 1. IP address with Ports 

In order for a web server to accept connections from remote computers  it must bind the web server application to a local port. It will then use this port to listen for and accept connections from remote computers.

Web servers typically bind to the TCP port 80, which is what the http protocol uses by default, and then will wait and listen for connections from remote devices.

Once a device is connected, it will send the requested web pages to the remote device, and when done disconnect the connection.

On the other hand, if you are the remote user connecting to a web server it would work in reverse.

The web browser would pick a random TCP port from a certain range of port numbers, and attempt to connect to port 80 on the IP address of the web server. When the connection is established, the web browser will send the request for a particular web page and receive it from the web server.

Then both computers will disconnect the connection. Now, what if you wanted to run a FTP server, which is a server that allows you to transfer and receive files from remote computers, on the same web server.

FTP servers uses TCP ports 20 and 21 to send and receive  information, so you won’t have any conflicts with the web server running on TCP port 80.

Therefore, the FTP server application when it starts will bind itself to TCP ports 20 and 21, and wait for connections in order to send and receive data.

Most major applications have a specific port that they listen on and they register this information with an organization called IANA. A List of applications and the ports they used  at the IANA Registry can be easily seen.

With developers registering the ports their applications use with IANA, the chances of two programs attempting to use the same port, and therefore causing a conflict, will be diminished.



The Importance of Disk Defragmentation

Points to ponder:

4.Using the Windows Defragmenter
5.Using a spare hard drive to defragment


I am sure many of you have been told in the past to defrag your hard drives when you have noticed a slow
down on your computer. You may have followed the advice and defragged your hard drive, and actually
noticed a difference.Have you ever wondered why it acts so?


To understand how defragging works its necessary to know how data is stored on hard drive.Whenever data such as file is stored on the hard drive the operating system tries to store it contiguously i.e. it tries to store the file in one go continuously ,locations that are connecting without a break, space.

Now this works fine enough when the disk is new but as it gets older tto say so that many such filed have been stored and deleted in the hard drive.Now whenever a file is deleted it creates empty spaces in the hard drive.This process is called as fragmentation.

When a hard drive is fragmented, and the operating system wants to store a file on the hard drive, it attempts
to store it in a section of contiguous space that will be large enough to accommodate the file. If the hard drive is heavily fragmented, there is the possibility that there will not be enough contiguous space available to store the file, and therefore the le will be broken up and stored in multiple locations on the hard drive. This causes the file to become fragmented. This is especially bad when installing new software on your computer
because the program will now be installed over multiple locations on your hard drive. Now when you run this particular application its performance will be degraded because it has to be loaded from multiple locations on the hard drive.

Figure 1 below shows an example of a fragmented le. Notice how File1 is stored in two locations which are not contiguous




To solve this problem, software developers developed a type of program called a Disk Defragmenter.Its an application that reorganizes the data in the hard drive partitions so that the data allocation can be as contiguous as possible.The defragmenter will search your hard drive partition and move data from one location to another location, so that the files stored there are one contiguous piece, instead of being spread throughout multiple locations on the hard drive’s partition.


This allows the programs and data to run more efficiently and quickly as the operating system does not have to read from multiple locations.

Figure 2 below shows an example of a file store in contiguous space. Notice how the entire file is located in one area and not split between multiple locations.


There are two ways to defragment your hard drive. One way is to use a Disk Defragmenter program and the other is to use an extra empty hard drive. We will discuss both ways below.

Using the Windows Disk Defragmenter

Step 1: Shut down all applications

Step 2: Running the Disk Defragmenter


Click once on the Disk Defragmenter as show above in Figure 1 to launch the program. You will then be presented with a screen similar to Figure 4 below.


Figure 4. Disk Defragmenter Startup Screen

Before you choose the Analyze or Defragment button, you should select the partition you want to work with, by clicking once on it. By default the first partition will be selected.

Step 3: Analyze your partitions

When you click on the Analyze button, designated by the red box in Figure 4, the Defragmenter will scan the partition you have selected and give you a report on how badly it is fragmented. The higher percentage that you are fragmented, the worse it is.


Figure 5. Prompt to view Report or Defragment

Make it a habit to view the report so I can see how badly my hard drive is being used. You would do this by clicking on the “View Report” button designated by the red box in Figure 5. When you click on the View Report, you will be presented with a screen similar to Figure 6 below.


Step 4: Defragmenting

As you can see from Figure 6 above, this computer has a total fragmentation of 34%. That is not good and my computer is not giving me the performance that it should be. I am therefore going to defragment my hard drive by clicking on the Defragment button, designated by the blue box in Figure 6 above. After clicking on the Defragment button you will see a window similar to Figure 7 below.


The two bars in the middle of this screen with all the colors on it are the the Analysis and Defragmentation displays.

The top bar, labeled”Estimated disk usage before defragmentation” is the Analysis display and shows a graphical representation of your partition before the defrag started.

The bar under it, labeled”Estimated disk usage after defragmentation” is the Defragmentation display. This shows a real-time graphical representation of your partition while it it going through defragmentation.

The colors on the displays, with they key designated by the blue box in Figure 7, represent the state of the different sections of the partition. The colors mean the following:

Red Most of the clusters are part of a fragmented file.
Blue Most of the clusters are contiguous files with clusters in the group that contain only free space and contiguous clusters.
Green Most of the clusters are part of a file that cannot be moved from its current location for security or physical reasons.
White Most of the clusters are free space and contiguous clusters

Using a spare hard drive to defragment

Probably the best way to defragment your hard drive.In order to defrag you would copy all the data off the heavily fragmented drive onto a clean spare drive. Then delete all data on the fragmented drive, and then restore that data back from the spare drive. This will then copy all the data back to the drive in a clean contiguous manner.

This method will work for any operating system.

Recommended Windows Defragmenter’s:

Windows Disk Defragmenter
Speed Disk
Disk Keeper

Recommended Macintosh Programs:


Continue reading