|Moore's Law: Exponential increase|
in transistor density and speed
|My dear calculator was this model|
|IBM Series 1400|
I distinctly remember the hazy pictures on our black and white TV screens of the landing of the first man on moon in 1969, and our exciting and animated discussion following it as we were taking a walk on that post-rain picturesque day in Islamabad with our cousins who were visiting from Kabul where their father was posted. Do you know how much was the RAM in the computer of Apollo 11 that took the first man to moon in 1969? Believe it or not, it was 2K RAM! I was astounded when I first learned about this during a lecture in 1988-89 at UT Austin by Prof Miroslow Malek, who later became a member of my thesis committee. The on-board computer of Apollo 11 operated at only 0.043MHz. Even the tiniest devices today are billions of time more powerful than this, and yet we always seem to be unhappy and complaining even though we have Giga Bytes of memory and Giga Hertz of processors in our phones!
Speaking about the discontent with today's devices, I always relate this experience of mine: I was doing PhD research during the early 1990s in the lab of my supervisor JC Browne where other PhD students and post-doc fellows were researching various aspects of the graphical parallel programming language called CODE. Initially I was working on Sparc-4 computers and my work involved compiling again and again a large program that would take at most a few minutes, but I would feel that wait as excruciatingly long and unbearable. Once I went to my supervisor to complain about the slowness of my computer. He patiently listened and then told me the story of how he had to program in the late 1950s and early 1960s. This story halted me in my tracks and after listening to it, I stopped complaining.
He told me that in those early days the computers were not connected directly to the keyboards and one could not program or use the computer by simply sitting in front of it, typing on the keyboard and seeing the results on the display monitor: Those were the days of card punching machines. We would sit on them and using a keyboard would press the keys for each program line; one card would come out for each line with punched holes according to Hollerith code. A thousand line program would generate a thousand cards. These cards in their proper order had to be taken physically and placed in a card reader machine. The machine will read the cards and would place the stored program in a job queue for processing by CPU. We were told not to wait but to go home as the job would eventually run and generate the results, which could then be picked up the next day. Next morning we would go over there and get the printed output of the job. The printout might say that there was a syntax error on line 35. In which case we would pull out card#35, debug it and would key-in again the corrected line in the keypunching machine. Out will come another card, which was then placed in the proper sequence i.e. 35th position in the stack of the cards for the program. The stack of cards would again be taken to the card reader machine, which would read the cards and enqueue a new job for the CPU. We would then wait till the next day to learn about the output of the new job. Often the printout would come out saying syntax or some other error on (say) line 205. We would, then, pull out card#205, read and correct the line, repunch the line on the card punch machine to obtain the new corrected card#205 which had to be reinserted in the proper place in the program stack, taken to card reader machine to read and enque the job, and then we would come a day later for the output. This process would continue again and again till the program was error free. Writing a single program would often take days and even weeks. So, what do you think about the wait for a few minutes?"
This story embarrassed me so much that I never complained again, although we did get the next model Sparc-5s in a few months.
|Card Punching Machine|
We have traversed a huge distance from those times of card readers and card punching machines. We can't even visualize a computer with 2K RAM today as we can not even do the most trivial graphics work on a computer whose RAM is less than 4GB!
In 1980 I took admission in civil engineering at NED University. At that time, civil engineering was the most sought out program and students getting the highest grades would opt for it. I was admitted to it but I wanted to go into Electronics. Unfortunately, Electronic Engineering was not offered by NED, which was only offering electrical engineering and that too with a narrow focus on power generation and telecommunication. Electronic Engineering, which was closest to computer engineering was only being offered by Dawood College of Engineering and Technology (DCET). There was no computer engineering or computer science program at that time at any university in Pakistan. As I had gotten admission at DCET also, I was torn apart whether to do civil from NED or electronics from DCET. I consulted several engineers. One of my relatives Mr Zahid Ali, who was Director Engineering at SBP, advised me to opt for Civil. However, another relative Mr Anwar Salahuddin, who had then recently returned from UK after doing his Chemical Engineering advised me to go for Electronic as this was going to be the field of the future. On one hand was NED with its beautiful sprawling infrastructure and street smart students of Karachi, and on the other hand was DCET with an infrastructure that had seen better times before nationalization and its students who hailed from all over the country and their ethnic, sometimes boisterous, politicised student organizations. Most people recommended to me NED on the basis of the quality of education, infrastructure and students, but somehow I ended up selecting DCET and went for Electronics. Major decisive factor was the group of a few very smart batch mates at NED who had already decided and moved to DCET. [More on this decision in a later post.]
Two of these fellow students who transferred from NED to DCET along with me were Kawasji Kheswala and Husain Azfar who would complete electronic engineering with me from DCET and would then join me at IBA to do MBA together. They were more studious and more focused than me and would remain my guide and compass for electronics while I dabbled in many other student activities. One thing common among all three of us were our financial constraints. I still remember the intense study, discussion and the trade offs that accompanied their decision of buying the Casio FX 602 programmable calculator on which they learned Basic Programming language. I also got some chance to fiddle with the language on that calculator. However, soon they were to graduate to FX702 which had better memory and better graphical interface.
|First computer that I held and disowned|
In USA, competitor to UK's Sinclair ZX-81 was Commodore VIC-20 that boasted of a larger keyboard. Then came one of the most successful model Commodore-64 in USA that actually overtook the Sinclairs. All our plans of buying the ZX series again went down the drain. Now we turned towards fantasizing owning the Commodore-64!
Around 1983 our engineering college built a new computer lab which proudly showcased the two personal computers bought from Sord, a Japanese company which would later be acquired by Toshiba. Typical of Pakistan, these computers were safely imprisoned in lock and key away from the prying eyes of the students, which unfortunately seems to be a common characteristic of the government departments and DCET was no exception, where they not only misplaced the instruction manuals and training guides but also conveniently forgot to obtain any training or skill to make the computers work: A story that we would see repeated again and again from institution to institution till today. Fortunately, the duo of Kawasji and Husain Azfar through their diligence obtained access to the lab and started learning to use the computer by trial and error. Mind you, there was no Google or Internet or Wikipedia to search for instructions or online forums where you can find someone to help you out. When stuck, the only option was to do monkey testing by pressing each and every key and their various combinations with control or function keys hoping to get lucky and finding a key combination that might work. I marvel at their persistence in trying to enter each variation of the command that can be imagined in the expectation that one such combination might fortuitously work. Fortunately the interpreter mode of programming helped us in this exploration through trial and error. The only help was the small instruction manual of Casio FX602 and some general books on BASIC and a whole lot of ingenuity and commitment. Our major guide used to be the programs given in Popular Electronics and some books that we had issued from British Council. Believe it or not, I had a book on IBM Fortran IV from which I learned about the "for and if statements" and used that knowledge to apply, modify and learn the syntax for BASIC.
Soon Kawasji and Husain Azfar had worked out how to use this computer. It was with their help and in that lab that I sat down and wrote my very first program the hard way. I set for myself a challenging proposition to program the Gaussian elimination method for solving simultaneous equations that requires solving determinants of matrices. Here I got my first learning of how to do programming. Later I would do a lot of programming and when I see today so many graduates having passed several programming language courses and having no confidence or expertise, I always tell them it is all about learning one language well and doing it the hard way, yourself, by taking the plunge. [More on this in a later post].
|I copied the Mirco-Professor Manual|
ontroller. I still remember going in a bus and searching for his house and meeting him and getting the manual that I then photocopied. Then meticulously we started reverse engineering the microprofessor [which will eventually be a post in its own right]. This project made me expert of assembly language of Z80 microprocessor. The project spanned about a year and a half and the thousands of hours that I must have put in tweaking it and modifying its operating system (called the monitor) gave me the insights I still cherish. On my return from USA after doing my PhD about ten years later, I found the variants of my design still being churned out as student projects at DCET. It is now over 30 years ago and I still remember the hexadecimal codes of some of the commands of Z80 such as Loading the Accumulator (LDA) was 2A, Branching when Accumulator is Not Zero (BNZ) was 10, and so on from the set of its 100+ commands. I still remember these hexadecimal codes because instructions had to be entered using these codes and the output was displayed on the six LED hexadecimal displays.
My first exposure to IBM Personal Computer (PC) was at Computer Center of IBA when I was doing my MBA during 1985-87. We used to go to the Center for some of our computational assignments. That's where I had my first contact with SPSS and also Lotus (which was later copied by MS Excel) and WordPerfect (which was later copied by MS Word) through my MBA class fellow Abdul Ghafoor. Later IBM would acquire the highly successful Lotus and would kill it the same way it acquired Rational and killed the project. I remember working on IBM PC-XT computers that used a microprocessor that was the successor generation of Z-80 and 8086 microprocessors. We used to have sets of 5 to 10 diskettes to run some of these programs. At that time hard disks did not come built in with the systems and the diskettes had to work as hard disk. These programs would halt with a message to take out the diskette from the drive and insert such and such disk and would wait till you put in that disk before resuming.
I got to work on IBM PC-AT at ABM Data systems where I worked part-time for a few months working on inventory management system for Maymar Housing during my last MBA semester. The PC-AT computer on which I worked had a 80286 processor which was the successor generation of the 8088. I abruptly left the project and ABM to join SUPARCO where I had been offered a job with a promise for leave with pay while availing the scholarship for PhD studies from USAID/Ministry of Science and Technology. I still remember the embarrassment that I felt when Dr Zahir Ali Syed (who may not recall this) admonished me that it is not professional to switch jobs without proper information and notice. I learned it the hard way because I don't think that this was ever discussed/taught in my MBA and BE programs.
At SUPARCO I worked on the state of the art IBM PC-AT computer that also had the hard disk. During the few months of 1987 that I was there, I found that the employees were either preparing "indents" (proposals for acquiring new hardware) or playing on computers or simply appearing busy while loitering away the time. Millions of dollars worth of equipment was simply wasting away and rusting for want of purpose or willingness to utilize it for some concrete end or for want of a crucial connector or instruction manual or training. The security around SUPARCO was nothing but a smoke-screen to hide the inefficiency and directionlessness of the entire establishment. Most people seemed to be busy in work that was inconsequential. To retain their sanity, some of the employees kept themselves busy in learning something worthwhile. I learned Auto-CAD and how to develop 3D designs by looking at a fascinating model of NASA's space shuttle. When SUPARCO decided not to abide by their offer of sending us on leave with pay during our PhD studies abroad despite our protests and representations to various offices of the government, I refused to sign the bond and resigned just before leaving for USA.
On reaching University of Texas at Austin, the first course that I took in Fall 1987 was advanced microprocessor interfacing that involved writing of device drivers. Here the course instructor GJ Lipovsky (who would later also become a member of my thesis committee) made us do our project on vintage TRS-80 that was connected with a floppy drive and monitor and was somehow running C-language. During the first session of this course we were given an assignment on C-language which was due the following week. I raised my hand to say that I didn't know the language. The instructor smiled and told me to get the book "A Book on C" by Kelley and Pohl and to get on with the assignment in the lab: There would be no relaxation in the deadline. Compiling the program on that vintage TRS-80 machine was so slow that someone advised us that on pressing the enter key to start compilation, we need to be prepared to go downstairs, relax, have coffee or some thing and return about about forty five minutes or so later. By the time you come back after leisurely walk, your program might have compiled. I got the book and learned it in a couple of days and managed to program and submit the assignment by the end of the week.
This lesson tells us that even rich universities like UT Austin would use the computers and the other hardware to their fullest eking out the last bit of value from them before discarding. TRS-80 was a personal computer of 1980-82 era and was being used at UT Austin in 1987 day and night, whereas at IBA the more modern IBM PCs that were acquired in 1984-85 were only being used during mornings in 1986-87, although they could have been used in evenings and nights and to their fullest in various programs. In Pakistan, we acquire lot of stuff and it wastes away while lying idle or is under-utilized as I experienced at DCET and then at SUPARCO. Many a time the equipment is acquired for the sake of kickbacks with no intention of use. I think use is actively discouraged because it may expose the inappropriateness or worthlessness of many of these acquisitions. Recent HEC acquisition of hardware by universities tells a sordid story of equipment worth millions of dollars lying unused and inoperable.
My experience of typing the thesis for MS convinced me that I could no longer afford to work on my PhD without learning to type. I borrowed one of the old computers IBA-XT from a friend of mine Mohammad Khalid during Ramazan and used the difficult half-hour before the Iftar for learning how to take my eyes off from the keyboard as I typed with my ten fingers. I still remember that helpful typing tutor which would make the alphabets drop down from the top of the screen and pressing the correct key would give you a hit score. The speed of the letters dropping down would increase with the correctness of your hits. It took me about 20 days to learn to take my eyes off the keyboard. This was the hardest part of my learning because my typing speed with two fingers of each hand was about 30, it dropped down to about 10 and only then it slowly increased, but progressively moved up and up. With the extent of typing, I was doing for writing my PhD research and programming, I noticed that in a few months my speed had again risen first to 30 then 40 and soon it was as good as that of any good typist.
The computers that I worked during my PhD research were Sparc-4 and Sparc-5. I also worked on Cray-Y computer and some experimental parallel computing machines like Connection Machine. On my return, one of my colleagues Mr Mohammad Ali got me a PC computer mixed and matched by the state of the art components. My dear friend Imran Baqai presented to me some of their experimental i486 processors and one of them worked. Armed with this computer I was back in Pakistan and was among the early adopters of the email from IUCN and later from DigiCom. More on this later.
In summary, my professional studies followed by my professional life has been associated with the story of microprocessors beginning from 8080 to 8085 to 8086 and then continuing with the x86 family series 8088 to 80286 to i486 to Pentium as mentioned above. The rest of the series P2, P3, P4 and then core 2, Athlon and the rest are too recent to be of interest to repeat here.
- Computer Revolution and Moore's Law: A Personal Journey
- Big Data, Management Transformation and Voyager of Star Trek Movie
- Changing Role of CIO
- Why are there no IT companies with more than 10,000 employees
- Beauty is Our Business - Mathematics, Excellence and the Great Dijkstra
- Learning by Doing: Electronic Engineering Courses vs my Final Year Project
- Learning by Doing: Teaching spoken languages vs Learning Programming Languages
- How Your Biggest Disadvantage can become Your Biggest Advantage and Vice-Versa