1 / 73100%
1
Homework 1: Question and answers for Fundamentals of Computer Organization and
Architecture
CSE 230 Computer Organization and Assembly Language Programming
Homework 1
Arizona State University
October 21, 2019
2
Detailed Question and Answer Responses
1. What is the difference between computer organization and computer architecture?
The phrases computer organization and computer architecture are two different ideas which are
very close to each other. Both of them depict the basics of the conception, the structure, and the
operation of the computers but they deal with different abstraction levels of a computer system.
The interaction of the hardware and software to accomplish computational tasks is efficient only
if one knows the difference between the two.
Computer architecture is the set of concepts of the structure and the logic of the computer
system, which is visible to a programmer. It specifies how the system will be built to perform the
instructions, obtain the data, and manage the memory. So, basically, computer architecture is
about what a computer does and how it looks like from the user or software developer side. One
of the things it does is to come up with a design for theISA that is the processor can execute the
types of instructions, the addressing modes, the data types, and how the CPU connects with
memory and input/output devices (Null & Lobur, 2014). The architecture sets the framework and
the standard that software should use to communicate with hardware in an efficient manner. As a
result, it is the medium through which hardware and software communicate.
For instance, consider a computer’s instruction set architecture, the architecture specifies how
arithmetic operations (like addition or multiplication) are carried out, how data is retrieved from
memory, and how control flow instructions such as jumps or branches are dealt with. Moreover,
it determines the key system characteristics like word size, memory addressing capability, and
data path organization. When developers work on software, they need to follow the architectural
instructions to make sure their programs can run in the system. To be more specific, computer
3
architecture is concentrated on the design factors that have an impact on the performance, the
functionality, and the programmability without actually being the physical implementation part
(Null & Lobur, 2014).
On the other hand, computer organization is about the internal workings and physical parts of a
computer system. It is concerned with how the computer's hardware components are wired and
work together to carry out what the architecture has laid down. To put it simply, the architecture
is the specification of the system, whereas the organization is the detailed implementation. It
reveals everything from the directions for the controls, the routes that the data take, the various
levels of the memory, and even the designing of the pipeline through to the physical parts like
the arithmetic logic unit (ALU), control unit, registers, buses, and caches. In a word, computer
organization is about those hardware-level aspects without which the architecture would be just a
theoretical idea.
Just to illustrate the point, let us take the example of two processors that architecturally are the
same (e.g., both are capable of the execution of the same instruction set) but differ in their
organization. There is a possibility that one processor comes equipped with pipelining, parallel
execution units, or larger cache memory so as to boost its performance, whereas the other is
merely a basic, low-cost version without such optimizations. Hence, both processors are capable
of running the same software, but their organizational differences have an impact on the speed,
efficiency, and power consumption. To sum up, computer organization is the one that turns
theoretical architecture into feasible hardware design (Null & Lobur, 2014).
An easy comparison is very helpful in understanding the distinction: computer architecture is
akin to the building plans that indicate the layout and the usage of each room, whereas computer
organization is like the building stage that shows how the materials and methods bring the plans
4
to life. There won't be any need for organization if there were no architecture since there would
be nothing to implement, and there won't be any organization without the plan since the latter
cannot be realized in a tangible form. They are both the two sides of the same coin and work
hand in hand within the computer system design field.
The separation of architecture and organization in a contemporary computer is also a mirror of
changes in technology. On one hand, architectural concepts, e.g. the instruction set, are kept
stable for the most part over a long period of time, on the other hand, organizational details are
changing very fast due to the progress in the semiconductor field. A case in point is the x86
architecture of Intel which has been the same for the last 30 years at least but the organization
has changed so much from one generation to another that it now features superscalar execution,
deep pipelines, and multiple cores allowing faster operation without any change to the basic
architectural interface.
2. What is an ISA?
An Instruction Set Architecture (ISA) is the main point of interaction between the computer's
hardware and software. It specifies the operations, data types, registers, addressing modes, and
memory structures that a processor is capable of understanding and performing. Simply put, ISA
works as a contract between hardware designers and software developers that ensures programs
written for a specific architecture will work on any hardware that follows that same ISA (Null &
Lobur, 2014).
ISA defines how the processor performs basic operations like arithmetic, logical, data
movement, and control flow. It also specifies how instructions are encoded in binary form, how
memory is accessed, and how input/output operations are handled. There are a number of well-
5
known ISAs such as x86, ARM, and MIPS, which differ in their design philosophies, some
focusing on performance and flexibility, while others on simplicity and power efficiency.
The ISA achieves software compatibility across various hardware implementations of the same
architecture by hiding the hardware details from the software. As an example, different
generations of Intel processors are compatible with the x86 ISA, thus older software can be
executed on newer hardware. To sum up, the ISA is about the functionalities of a processor,
while computer organization is about the way the processor carries out those instructions (Null &
Lobur, 2014).
3. What is the importance of the Principle of Equivalence of Hardware and Software?
The Principle of Equivalence of Hardware and Software is a well-known principle in computer
science, which underlines the interchangeable character of hardware and software in doing
computing work. According to this principle, all the operations that hardware can compute about
can be done in software and vice versa, provided that there is enough time and resources (Null &
Lobur, 2014). That is, the hardware and software represent two complementary methods of
accomplishing the same objective, which is, computation. The selection of one over the other lies
on performance requirements, cost, flexibility and energy efficiency. This notion is important as
it enables the system designers to be able to make trade-offs between the functionality performed
by dedicated hardware circuits, or by programmable software.
The principle is critical in the designing of the computer systems as it offers flexibility in
implementing the processes of computation. In embedded systems or digital signal processing, as
an example, some functionality such as encryption or graphics rendering may be implemented
with special purpose hardware (such as a general purpose processor, which is also called an
6
ASIC or a graphic card) or software in a general purpose processor. The choice would be based
on the required tradeoff between speed and flexibility. Hardware solutions are fast and efficient,
as they are designed to perform a particular task, whereas software-based implementations are
flexible, and thus they can be updated or changed without having to replace physical entities
(Null and Lobur, 2014). This balance will allow engineers to balance the work of the systems
and manage the costs of production and the complexity of the development.
Application of the principle also carries great implications to technological advancement and
innovation. It is said that software has the capability to reproduce hardware behavior, this is the
reason why a developer can simulate hardware behavior and run tests prior to producing actual
prototypes. This strategy accelerates the process of research and development as well as
minimizing the costs. On the same note, software systems can be enhanced by hardware
developments. As an example, a quicker processor, better memory, and more advanced
instruction sets can be used to execute complicated algorithms. Such hardware-software
interactions lead to the advancements in the computing field since one area develops innovations
each time it is enhanced in another sphere (Null & Lobur, 2014). This has been the primary
influence of modern computing, the development of mainframes, the development of personal
computers, and the development of cloud architectures.
In addition, the Principle of Equivalence helps in scalability and portability of software on
various hardware systems. Given that a software can mimic a hardware operation, the software
can be written once only and be executed on a variety of systems with only slight modifications.
The virtual machines, emulators and interpreters are based on this concept and enable one system
to imitate another. Java platform independence is one example based on this principle, and
allows a Java application to execute on any compatible virtual machine. Similarly, software
7
simulation tools used in computer architecture research design model the desired hardware
performance such that engineers can verify the design and debug it before creation. This shows
the compatibility and the lifespan of software-based abstraction in a variety of computing
environments (Null & Lobur, 2014).
It is unmistakably represented in the Principle of Equivalence of Hardware and Software that
demonstrates both the strong interdependence and closeness of the relationship between
hardware and software. It emphasizes the fact that computing capability is limited to neither
physical circuits nor program code. Such principle has influenced computer architecture, system
design and innovation by offering flexibility in the mechanism of implementing a computation.
The possibility to change hardware and software solutions whether it is the optimization of
performance, cost reduction, or adaptability is the corner stone of modern computing (Null &
Lobur, 2014).
4. Name the three basic components of every computer.
All computer systems, both small and large and complex, consist of the three essential
components of the system- the central processing unit (CPU), memory, and input/output (I/O)
devices. All these components combine to accomplish the fundamental functions of computing
which include processing data, storage of information as well as communication with external
environment (Null & Lobur, 2014). The CPU, commonly called the "brain" to the computer, is in
charge of running the instructions and making the calculations. It comprises two primary sections
including the arithmetic logic unit (ALU) which is the hardware that executes mathematical and
logical functions and the control unit (CU) which coordinates the flow of data and execution of
instructions. CPU functions according to the fetch-decode-execute cycle that will enable each
order to be handled in a well-organized and effective way (Null & Lobur, 2014).
8
Memory, which is the second vital element, is the storage facility of data as well as instructions
essential to the CPU. Three types of memory may be distinguished including primary (main)
memory and secondary (permanent) memory. Primary memory e.g. RAM (Random Access
Memory) is volatile and allows temporary storage of data that is actively processed by the CPU.
The secondary memory includes hard drives, solid-state drives, and is a long-term storage of files
and programs (Null and Lobur, 2014). The synchronization of the CPU and the memory plays
very important roles since it is through memory that the processor accesses and copies back
instructions and data it is going to execute and store its results to be processed again. The CPU
would have no memory where to access or store information, hence it would not be possible to
make any computation without memory.
The third element is input/output (I/O) devices that allow communicating the computer with the
outside world. The input devices include keyboards, mice, and scanners, where one can input
data and commands, whereas the output includes monitors, printers and speakers where the
processed data is presented and or reported (Null & Lobur, 2014). Besides, storage devices and
network interfaces are also regarded as a part of the I/O subsystem as they enable to transfer and
communicate the data between systems. The computation system along with the memory and the
I/O devices make an inseparable system that characterizes the work of all modern computers.
Their dialog is the guarantee of the harmonious implementation of programs and effective
processing of raw data into meaningful output (Null & Lobur, 2014).
5. To what power of 10 does the prefix giga- refer? What is the (approximate) equivalent power
of 2?
Prefixes in computers science and digital electronics are used to present the large or small scales
of data, storage and processing speeds in units that are easy to understand. The suffix giga- has
9
its origin in the Greek word gigas meaning giant and it refers to 109 or 1,000,000,000,000. The
giga- prefix is also applied in the International System of Units (SI) to denote one billion of
something, e.g. one gigahertz (GHz) of something, one gigabyte (GB) of data. This value is
however commonly approximated to 230, or 1,073, 741,824 in the computing environment,
when dealing with binary systems. This binary model is determined by the fact that digital
computers are as base-2 arithmetic and memory and storage resources are easier to compute in
powers of two (Null & Lobur, 2014).
The distinction between the decimal and binary meanings of giga - explains a significant
distinction in computer science terminology. Giga- is equal to 109 as defined in the standard
system of Scientific and Engineering notation, the decimal (SI) system. Yet, in the binary
system, inherent to computer architecture, memory and data storage is designed in powers of
two. Because 210 represents 1, 024 indicates that it is closer to 1,000, thus 230 will be one
billion. Thus when explaining about computer memory, a gigabyte has been widely regarded to
mean 230 bytes as opposed to 109 bytes. To eliminate misunderstanding between the two
standards, the International Electrotechnical Commission (IEC) developed binary prefixes,
specifically gibibyte (GiB), which specifically means 230 bytes, whereas the meaning of
gigabyte (GB) remained to be 109 bytes (Null & Lobur, 2014).
The importance of conjecturing the distinction between the two representations is not restricted
to definitions. In computing the measurement is quite crucial in the proper designing of a system
and analyzing it. An example is in buying computer memory or a storage device where a
manufacturer will normally apply the decimal system and call 1 GB 109 bytes whereas the
operating systems may count bytes in binary system. This leads to a storage device that is
marketed as having a storage capacity of 500 GB but reporting a lower storage capacity, around
10
465 GiB, to the computer. This difference is suggested by the difference between the value of the
decimal and binary meaning of giga-, and this awareness will enable users in assessing the
specifications of a system to be free of confusion (Null & Lobur, 2014).
6. To what power of 10 does the prefix micro- refer? What is the (approximate) equivalent
power of 2?
In digital electronics and computer science, the prefix micro- is one of the standard metric
prefixes that are used to denote small amounts. The international system of units (SI) views -10-6
(a million) as micro- or a unit. The lower case m (mu) is the symbol of micro. The prefix is
common in the field of engineering, computing and physics to indicate very small quantities, like
microseconds, micrometers and microvolts. An example is that, one microsecond (ms) is a
millionth of a second, and one-millionth of an ampere is a microampere (mA). It frequently
applies as a prefix in computer systems, when clock cycles, signal timing or microprocessors are
involved, where precision of measurement and small size is imperative in system performance
(Null & Lobur, 2014).
Taking these in 2-sided terms the approximate equivalent is 2-20,1/ 1, 048,576 or 1/ 1,048,576.
This equivalence is due to the correspondence of the binary and the decimal scales. Often, values
written in power of ten in decimals are approximated to the closest binary-power-of-two due to
the use of computers that operate in powers of two. As an example, 106 is equal to 1,000,000 but
it can be approximated to its nearest binary equivalent of 220 and the nearest binary digit to
1,048,576 is 1,024,000. As such, 10-6 is close to 2-20. The relationship is applicable in
applications where time ranges, signal rates, or memory sizes require the representation of
binary-compatible representations. It also shows how the computers process and manipulate
11
things that are not presented in decimal notation that humans can interpret (Null and Lobur,
2014).
Of special importance in computing is the prefix micro- which determines timing and size to
which the microprocessors and digital circuits works. Microsecond is a measure of time which is
common in measuring speed of electronic processes in a computer. As an example, the speed of
processor clocking, data transfer speed and access by memory time are described in
microseconds or in nanoseconds. Early microprocessors used took around several microseconds
in each instruction cycle to execute an operation, and modern microprocessors run at the
frequency of nanoseconds or picoseconds. The interpretation of micro- in the context of both
decimal and binary powers allow engineers to perform an analysis of timing properties correctly
and also result in the optimization of system operation. At this scale, precision guarantees
alignment of hardware components, effective execution of instructions and trusted responses of
the system (Null and Lobur, 2014).
7. What unit is typically used to measure the speed of a computer clock?
Computer clock speed is generated as an average of the frequency measured in hertz (Hz,
hundreds of hertz). Clock speed in current computer systems is more generally measured in
megahertz (MHz) or gigahertz (GHz) with one megahertz (106 Hz) being one million cycles per
second and one gigahertz (109 Hz) being one billion cycles per second. The computer clock or
system clock also known as clock oscillator is the one that generates a continuous series of
electrical pulses which help coordinate as well as synchronize the activities of all the components
of the processor. Every pulse is considered a distinct clock cycle where a CPU could either fetch,
decode or execute an instruction. The clock speed is therefore used to define the number of such
12
cycles per second and this directly affects the speed of computation that a processor can execute
(Null & Lobur, 2014).
The clock speed is a standard unit which is used as a metric of performance of the processor
because it defines how quickly the CPU would process instructions. Indicatively, a processor
with 3.0 GHz processing power is capable of three billion cycles per second. It is however
worthwhile to mention that not all clock cycles lead to the completion of an instruction as most
operations take multiple cycles to be executed. Clock speed hence offers a guesst instead of
precise procedure capacity. Increased clock speed would typically result in increased processing
speed and performance although they increase power use and heat generation as well. Modern
processors cope with these trade-offs by applying different methods, including pipelining,
superscalar execution, and multicore designs to achieve increased performance without the need
to rely on the continuous increase of frequencies (Null & Lobur, 2014).
The oscillator produces a clock signal which coordinates all other components of the computer
and ensures that the data passages between the CPU, the memory, and peripheral devices flow in
a coordinated manner. Synchronous systems have all the operative activities precipitated by a
clock pulse, which keeps the timing links between components precise. The fastest clock speed
of the first computers was in the kilohertz (kHz) or thousands of cycles per second range,
whereas the modern processors run at frequencies in the gigahertz range. An example is that a
modern desktop processor may be operating at 3.5Gz whereas high-performance gaming or
server processors may be over 5.0Gz. The steady growth of clock speed over the history of
computing itself is indicative of technological progress in the manufacture of semiconductor and
circuit design (Null and Lobur, 2014).
13
In spite of the fact that clock speed is still a significant measure of performance, it is not the only
one that determines the efficiency of a computer. Current CPUs have been based on architectural
enhancements, including multiple cores, cache memory and hyper-threading capabilities of a
given processor to run multiple instructions at a time. Thus, two processors of the same clock
speed could be of immense performance difference based on how they are designed and how
efficient they are. Moreover, because the physical constraints in the form of heat dissipation and
power consumption are limiting additional clock speed gains, chip companies have started
moving to parallel processing and power-efficient architectures instead of just raising the clock
speed (Null & Lobur, 2014).
8. Name two types of computer memory.
The computer memory is a compulsory element in any computing system as it stores the data,
instructions and the results that are needed to do the processing. It is very vital in deciding on
system performance and functionality. Computer memory is divided into two major forms, and
they include primary memory and secondary memory. These two types are not equal in terms of
purpose, speed, volatility and accessibility yet each is required in the functioning of a computer.
Primary memory offers speedy tentorial memory enabling the central processing unit to operate
upon data instantly and secondary memory as long-term storage of files, applications and
operating system (Null and Lobur, 2014).
Primary memory also called main memory is the type of memory which is immediately
accessible by the processor, and contains data and instructions currently in use or operation. The
two prominent primary memory types are the Random Access Memory (RAM) and the Read-
Only Memory (ROM). The RAM is volatile implying that it stores data which is lost when the
computer is switched off. It gives an access to temporary storage that is fast and enables easy
14
access to running programs and data. RAM helps the CPU to access and store data nearly at
almost lightning speed making multitasking and efficient performance possible by the system.
ROM, on the other hand, is non-volatile and based on data that is permanently stored, e.g., a
firmware or the startup guidelines of a system (Null & Lobur, 2014). ROM is not easy to change
hence it is always available when the computer is started such that key programs such as the
BIOS (Basic Input/Output System) is always in place. Combined, RAM and ROM become the
basis of primary memory of the system allowing to perform operations quickly and to be sure
about system starting.
The second memory is the secondary or the auxiliary or external storage, which is the permanent
storage. When the system is switched off, it stores information, and normally gives vast capacity
compared to the primary memory though with lower access rate. Ordinarily they are hard disk
drives (HDDs), solid-state drives (SSDs), optical discs (CDs and DVDs) and flash drives.
Operating systems, application software, and user data are stored in secondary memory, which
has a long-term existence and offers data protection (Null & Lobur, 2014). Although the CPU
cannot get data in secondary memory as fast as it can get data in primary memory, it gets the
information that it requires by way of input/output channels. The modern systems are commonly
dependent on a hybridizing approach of the two classes of memory such that the secondary
storage serves as a backup and expansion storage medium to the data that is not necessarily
required in the RAM. Particularly, SSDs have transformed the nature of secondary storage in that
they provide higher rates of access to data and reliability as compared to the use of the
conventional magnetic hard drives.
9. What is the mission of the IEEE?
15
The Institute of Electrical and electronics engineers (IEEE) has been named as one of the largest
professional bodies in the world that has been keen on promoting technology to the favor of
mankind. The mission it has is to inspire technological excellence and innovation by encouraging
innovation, excellence, and application of technology in engineering, computing, and other
corresponding disciplines (Null & Lobur, 2014). IEEE has a very important role to play in the
development of the world in terms of setting global technological standards, research activities as
well as educational and professional development of engineers, scientists and technologists. It
acts as the liaison between academia, industry, and government by making sure that the
advancement in technology is in line with the demands of the society without compromising on
ethical and professional principles.
The main element in the mission of IEEE is its involvement in the creation and maintenance of
international technical standards that determine the design, manufacturing, and interoperability
of the latest technologies. Such standards guarantee the effectiveness and stability of devices
systems and networks to operate with other platforms and industries effectively. IBM as an
example, the IEEE maintains some of the best standards including IEEE 802.3 (Ethernet ), and
IEEE 802.11 ( Wi-Fi ), which has formed the basis of computer networking and communication.
These standards regulated by IEEE guarantee uniformity, inter-operability, and invention in the
world of technology development (Null & Lobur, 2014). The standards process enables
cooperation between the engineers and the manufacturers, which makes the brand new
innovations to be seamlessly incorporated into the already existing system and also makes
certain that any development made will be helpful to the entire sectors of the society.
The other important part of the mission of IEEE is its endeavor to educate, professionally grow
and spread knowledge. The organization also publishes numerous scientific journals, technical
16
papers, and conference proceedings that enhance the development of the research in the
following fields electrical engineering, computer science, robotics, artificial intelligence, and
many others. IEEE conducts world seminars, workshops, and conferences where specialists
worldwide get to share their ideas and work together in the development of technological
advancements. Such programs enable engineers to keep abreast with the recent events and trends
and contribute to lifelong learning and professional growth (Null and Lobur, 2014). By doing
this, IEEE is a technical authority as well as a community of the world nurturing talent, creativity
and innovation.
Besides standardization and educational activities, IEEE also advocates for ethical and socially
responsible technological advancement. The organization conveys that technology ought to help
people, raise the quality of life, and be eco-friendly. By these and other initiatives, like the IEEE
Smart Village and the humanitarian technology programs, the company is turning the
engineering know-how to real-world issues, such as lack of energy, the fight against the polluting
of the planet, and assistance to victims of natural disasters. This is consistent with the overall
mission of IEEE to assure that technology advances in a way that is beneficial to human welfare
and global development (Null & Lobur, 2014).
10. What is the full name of the organization that uses the initials ISO? Is ISO an acronym?
ISO is an abbreviation referring to the International Organization for Standardization, a
worldwide non-governmental, and company-independent organization responsible for creating
and publishing international standards in this or that industry. The name looks like a simple
acronym, but it is not. The word "ISO" has been taken from the Greek word isos, which means
"equal." This word reflects the organization’s mission to promote uniformity, equality, and
standardization in products, services, and systems worldwide. The main idea of ISO standard is
17
that uniform standards lead to equality and compatibility in the world market, thus the same
quality, safety, and efficiency would be preserved everywhere (Null & Lobur, 2014).
The International Organization for Standardization was founded in 1947 and is located in
Geneva, Switzerland. It was a result of the uniting and harmonizing of the differing any many
national standardization bodies existing in various countries. At present, the organization has 167
member countries all together, and every one of these members is represented by its national
standards body, e.g., ANSI (American National Standards Institute) in the USA or BSI (British
Standards Institution) in the UK. ISO is a collaborative platform where specialists from member
countries attend to the development of voluntary, consensus-based standards. These standards
cover almost any industry the like are: technology, manufacturing, healthcare, agriculture, and
information security. With such a global cooperation, ISO is doing a great job, first of all, in
safety, quality, as well as reliability of products through their worldwide harmonization and at
the same time, it facilitates international trade in different fields as well as technological
compatibility (Null & Lobur, 2014).
The name ISO is a perfect example of one thing being the same in all languages, which is the
ultimate objective of global equality and universality. If the organization had used language-
based acronyms, such as "IOS" in English (for International Organization for Standardization) or
"OIN" in French (Organisation internationale de normalisation), it would have generated both
confusion and inconsistency. Ergo, ISO chose a brief word easily identifiable in the whole world
that came from isos, denoting equal standards for all countries. This move demonstrates that ISO
is not only about standardizing world practices but also about making sure that the products and
processes which meet the agreed standards can be anywhere in the world, they are either
developed or sold (Null & Lobur, 2014).
18
ISO has been a major driver of change in technology and in computing broadly speaking, in
areas such as computer architecture, software engineering, and information systems. Countless
ISO standards have become the fundamental building blocks of the protocols that govern
computing and communication all over the world. A good example is ISO 9001, which singles
out quality management as a primary concern for any system aiming at efficiency and reliability
in production processes. In the world of information technology, ISO is a partner of the
International Electrotechnical Commission (IEC) in coming up with combined standards like
ISO/IEC 27001 that deals with information security management systems. Also, ISO/IEC 8859
is the standard that identifies character encoding schemes in the world of computers, while
ISO/IEC 12207 offers orientation on software life-cycle processes. These norms make sure that
businesses can produce tech that is compatible and can communicate with each other thus, are
able to leverage the technology integration and innovation (Null & Lobur, 2014).
In addition, ISO is a major factor in safety, environmental protection, and the incorporation of
new ideas in the future tech sector. The ISO standards pave the way for the development of
technology, which is a must, in the areas of AI, cybersecurity, and clean energy. To give an
example, the cybersecurity standards of ISO enable organizations to deal with digital hazards in
a proper way, and at the same time, environmental standards such as ISO 14000 are aimed at
eco-friendly industrial practices. These standards in the world of computing act as the
instruments through which systems can be deemed to have followed trustworthy and secure
protocols, thereby lessening the possibility of failure or incompatibility in international networks
(Null & Lobur, 2014).
11. ANSI is the acronym used by which organization?
19
ANSI is the acronym for the American National Standards Institute. It is a private non-profit
organization which is responsible for overseeing development of voluntary consensus standards
in the US for products, services, processes, systems, and personnel. Since its inception in 1918,
ANSI has been a person who coordinates the activities of various standardization bodies and
makes sure that standard requirements for American products and technologies are in tandem
with the international ones. With a view to attaining this it provides standards that lead to safe
use of different products and services produced by the U.S. domestic and international
businesses which are to maintain quality and increase efficiency of the goods and services in
question (Null & Lobur, 2014).
ANSI is the official agency representing the United States in worldwide standardization
associations such as the International Organization for Standardization (ISO) and the
International Electrotechnical Commission (IEC). Hence, it is through such representation that
the U.S. innovations and interests find their way into global standardization efforts. This means
that U.S. companies are allowed to sell their goods and services in different countries and also
their products become compatible with foreign systems. As a matter of fact, when worldwide
standards for networking protocols, information systems, and telecommunications are set up,
ANSI is among the parties involved in the negotiations where the U.S. standards are matched
with international requirements. The synchronization between standards helps in clearing out
trade barriers which, in turn, make it possible for American products to be sold at competitive
prices on the global market (Null & Lobur, 2014).
One of the major elements of the American National Standards Institute (ANSI) system is its
function in signing off and giving a seal of approval to the standards that other bodies have met.
Although ANSI by itself does not formulate standards, it allows a certain number of committees
20
and industry groups that have satisfied in its view the requirements of openness, balance,
consensus, and without any kind of recourse to a court, to be given accreditation. The
organizations accredited by ANSI are, among others, the Institute of Electrical and Electronics
Engineers (IEEE), American Society for Testing and Materials (ASTM), and Underwriters
Laboratories (UL). With this process of giving recognition, ANSI guarantees that the norms are
composed in a way that any person can understand the process, that most of the stakeholders, and
that are technically correct. Such a step is a way for ANSI to keep its position and effectiveness
as the main body standardizing the US (Null & Lobur, 2014).
In the computing and information technology sector, ANSI has been a major player in the
evolution of programming languages, data structures, and computer hardware standards. For
instance, the ANSI C standard laid out the syntax and meaning of the C language, thus ensuring
that the same rules would be followed by the compilers and platforms. Such a compliance with
standard made it feasible that software coded in C can be executed on any machine with a slight
retrenchment. In the same manner, the changes made by ANSI in the creation of ASCII
(American Standard Code for Information Interchange) character encoding, has turned out to be
the basic text representation in computers. Through its standard-setting efforts in the various
segments of the computing industry, ANSI has been a major player in the worldwide networking
and technological progress over the last several decades (Null & Lobur, 2014).
Besides computing, ANSI's impact goes deeply into various sectors such as manufacturing,
construction, healthcare, energy, and safety standards. As an illustration, the American National
Standards Institute (ANSI) safety standards govern the equipment used in workplaces, the nature
of the warning signs, and the labeling of products, thus assuring that both manufacturers and
consumers get the safe products that are beneficial to them. In the field of healthcare, the
21
American National Standards Institute (ANSI) is responsible for setting standards that regulate
medical devices and their communication with data management systems. Moreover, the
organization works closely with federal agencies, such as the National Institute of Standards and
Technology (NIST) to design the frameworks which are the basis for cybersecurity,
environmental sustainability, and infrastructure resilience. The impact of the organization across
the board is a clear demonstration of its indispensable role in enabling technological
advancement and, at the same time, ensuring the safety of the public (Null & Lobur, 2014).
12. What is the name of the Swiss organization that devotes itself to matters concerning
telephony, telecommunications, and data communications?
The ITU is an international organization that focuses mainly on telephony, telecommunications,
and data communications and is based in Switzerland. It is a specialized agency of the United
Nations responsible for the coordination of global telecommunication networks and services. The
ITU is among the oldest international organizations living, as it was established in 1865 and is
based in Geneva, Switzerland. Its main aim, essentially, is to pave the way for harmonious
international cooperation in the development, standardization, and regulation of
telecommunications and information communication technologies (ICTs) so as to provide the
world with a stable, secure, and fast connection (Null & Lobur, 2014).
Additionally, the ITU lays down the standards that form the basis for communication systems to
be technically interoperable from one country to another and across different technologies. The
organization ensures that communication networks worldwide are at the service of the people
and can easily connect with one another, be it through the use of traditional telephony or mobile
networks or through the internet. The core of the organization is centered on the development of
technical standards, i.e., ITU Recommendations, which explain the way communication systems
22
and devices should be executed. These standards are in all areas, for example, radio
communication, satellite systems, fiber optics, and broadband technologies. If it were not for the
ITU’s efforts in laying down uniform standards, global communication would be disintegrated
and, thus, it would not be easy for devices and networks from different countries to connect with
each other (Null & Lobur, 2014).
ITU's organization consists of three primary sectors, each of which concentrates on different
areas of telecommunication. Radiocommunication Sector (ITU-R) deals with the radio-frequency
spectrum on a worldwide scale, and the use of orbits of satellites, in such a way, that the few
resources available are used efficiently and without disturbances caused by different countries.
Telecommunication Standardization Sector (ITU-T) is the division of IT that establishes the
technical standards for the global network and systems communication to be compatible. It
produces and is the standardizing body for many of the communication protocols in the world,
for example, those used in telephone signaling and internet connectivity. ITU-D
(Telecommunication Development Sector) provides the most needed access to the
communication technologies through the facilitation of the building of infrastructures,
formulation of policies, and digital literacy in the developing countries It helps the ITU to
connect the technological advances with social and economic progress and to facilitate the
universal access to communication in any region of the world by the sectors (Null & Lobur,
2014).
The ITU after a long period of being the only telephony regulating body, it has widened its arena
into data communications and information technology. This organization worked pretty well
with other organizations to set the exact standards that are the governors of the new ways of data
transmission, internet governance, and security of the cyber world. For instance, The ITU works
23
with ISO (International Organization for Standardization) and IEC (International
Electrotechnical Commission) to establish standards that define communication protocols, such
as those used in the Internet of Things (IoT) and broadband networks. In the same vein, the ITU
has been a vital driving force of various global initiatives instrument such as 5G technology
development, broadband for rural areas, and communication systems becoming less vulnerable
to natural disasters and cyber threats (Null & Lobur, 2014).
Bridging the global digital divide is another essential component of the ITU's mission. The
agency encourages unrestricted access to communication technologies so that even the most
impoverished countries can reap the benefits of the modern ICT infrastructure. By means of
"Connect 2030," "Digital Transformation Centers," and other such initiatives, the ITU empowers
the skills base, encourages innovation, and supports the achievement of the Sustainable
Development Goals through the use of technology.
Moreover, it is quite instrumental in the organization of international conferences like the World
Radiocommunication Conference (WRC) and the World Telecommunication Development
Conference (WTDC) at which member countries negotiate joint policies and decide on the use of
the global communication resources. All these measures are the mainstay of the continuous
evolution of telecommunications in a way to support the economic growth, education, and global
cooperation (Null & Lobur, 2014).
13. Who is known as the father of computing and why?
Because of his radical ideas about the design of programmable mechanical computers, Charles
Babbage is considered the father of computing. In the 19th century, Babbage dreamed up and
started creating not one, but two revolutionary machines: the Difference Engine and the
24
Analytical Engine. The Difference Engine was intended to make mathematical calculation
automatic and to get rid of the human errors in computation, whereas the Analytical Engine gave
rise to the innovative concept of a general-purpose computing device (Null & Lobur, 2014).
The Analytical Engine consisted of basic components quite similar to those of present-day
computers, such as a control unit, memory, input, and output devices. Its instructions were to be
given with the help of punched cards, a notion which was later implemented in the first
electronic computers. Even though Babbage could not make a functional version of his machines
due to technological and financial constraints, his blueprints virtually established the way for
present-day computer architecture.
His work conceived the idea of a programmable machine that could perform different tasks, thus
it was a landmark in the history of computing. Because of his vision and his elaborately detailed
mechanical plans which were almost one hundred years ahead of electronic computing, Charles
Babbage is the person who is most appropriately given the credit of being the father of modern
computing (Null & Lobur, 2014).
14. What was the significance of the punch card?
The punch card, also called the punched card or Hollerith card, is a landmark in the computing
saga, being among the first means of storing, inputting, and processing data. The punched cards
were created in the 19th century; initially, they were meant for controlling textile looms, but after
that, they were modified to be used for calculations. What makes a punch card most remarkable
is its pivotal role in automating data processing, which is essentially the main thing that led to the
invention of modern computers (Null & Lobur, 2014).
25
It is generally believed that the first significant use of punch cards in the field of computation
was that of Herman Hollerith, who had the idea of applying them for data processing of the 1890
United States Census. The system devised by Hollerith utilized the cards that had holes made at
certain points to denote numbers and letters. The machines electrically reading these cards were
counting and sorting them according to the exact coordinates of the holes. This method
eliminated human data tabulation and hence census data processing which took years was
finished in only a few months. As a result, the power of the census itself was vastly magnified.
Besides, the invention of the Tabulating Machine Company which became the IBM
(International Business Machines Corporation), a major player in the computing industry, was
the ultimate byproduct of Hollerith's revolutionary breakthrough (Null & Lobur, 2014).
The importance of a punch card goes far beyond its usage in a census that was done a long time
ago. It was one of the first successful ways of encoding and storing data in a physical form that
could be accessed by machines. Every card was capable of holding a certain fixed amount of
data, which was usually shown by the presence or absence of holes in certain locations. This
made machine-readable data possible, which was the core for the early computer systems. The
implementation of punch cards laid a path for the modern data input devices and storage which
are magnetic tapes, hard disks, and digital memory. The notion of data being kept externally and
then inputted to machines was the dawn of programmable systems where without changing the
physical hardware (Null & Lobur, 2014) instructions and data could be changed.
In addition to that, punch cards were instrumental in the creation of programming. The likes of
ENIAC and IBM 704 were among the first computers that used punch cards as the medium of
inputting data and instructions alongside them. The programmers created programs by punching
holes in the cards, which were later sequentially inserted into the machine to carry out
26
operations. The concept of stored programs and sequential execution which are the core of
modern computing was introduced through this process. Besides that, punch cards set the
standards for the representation of data and programs which later led to the first forms of
systematic programming practices. Even after the existence of new technology, the use of punch
cards was still common in the world of computing until the 1970s, especially in the areas of
education and business (Null & Lobur, 2014).
The punch card’s influence on information management and business automation is just as well,
one of the major aspects of the punch card.
Before electronic computers became common, people still made heavy use of punch card devices
in payroll, accounting, inventory management, and scientific calculations. A vast number of
companies and government agencies turned to punch card technology as a means of streamlining
their operations, enhancing the accuracy of their work, and cutting down on the costs associated
with labor. The introduction of punch cards in business and government was the point of
departure from the manual clerical works involved in data processing to automated data
processing, which is the basis of the information age.
The change absorbed by those organizations also had an impact on early computer hardware and
software design as the machines were engineered to read, sort, and process punch cards in the
most efficient way (Null & Lobur, 2014).
15. Name six driving factors in the development of computers.
The evolution of computers has gone in various stages and has been affected by numerous
technological, scientific, and societal factors. The computer's journey from ancient mechanical
inventions to present advanced artificial intelligence systems has been mainly led by mankind's
27
pursuit to have better ways of storing data, solving challenges, and mechanizing tedious works.
We can categorize the six main factors that contributed to the ascendancy of computers into: the
need for automation first, then by advancements in mathematics, logic, and electronics, followed
by scientific and military demands, the rise of data processing and business applications and
finally the pursuit of miniaturization and efficiency. The factors combined have led to the
emergence of the powerful digital systems from the simple mechanical calculi that profoundly
affect the life of the contemporary world (Null & Lobur, 2014).
To begin with the first primary cause that led to major technological innovation, the need for
automation can be cited. Ever since the beginning of times, man was eager to find expedients
that facilitate and fasten calculations. The abacus and Pascal’s calculator are two examples of the
human response to the need of labor reduction in computing. As the man societies evolved and
became more demanding, the necessity of having systems capable of handling large volumes of
mathematical and financial data also grew. One of the factors that aggravated the situation was
the Industrial Revolution that did so by the invention of the machinery that revolutionized the
physical labor industry and thus inspired similar innovations in data processing to meet the new
demand for information processing. The 19th-century inventions of Charles Babbage’s
Difference Engine and Analytical Engine were the results of the chase after automation. In fact,
the machines were built to carry out the same computations repeatedly, with no human error, as a
step toward the programmable nature of modern computers. Even today, when automation is still
a leading factor, computing technology is increasingly moving towards the area of the intelligent
system with autonomous decision-making capability (Null & Lobur, 2014).
Another major factor in the evolution of computers has been the progression of mathematics and
logic. The theoretical basis for computing are based on mathematical principles that have been
28
known for a few hundred years. Scientists like George Boole who invented Boolean algebra, and
Gottfried Wilhelm Leibniz who suggested binary arithmetic were the ones who opened the way
for digital computation. Boolean logic, in particular, was the key to the creation of modern
computer circuits and programming since it is the way to represent true and false conditions by
means of binary digits (0s and 1s). After that, in the 20th century, Alan Turing came up with the
idea of the Turing Machine, a hypothetical model that delineated the rules of algorithmic
computation. Turing’s research proved that a machine can do any logical operation if it is given
the right instructions, thus, he is considered the father of general-purpose computers. The use of
mathematics and logic is still the main source of new ideas in computing through algorithm
design, artificial intelligence, and data analysis (Null & Lobur, 2014).
The third factor that has driven the development of computers is the innovation in technology in
the field of electronics. One of the major turning points in the history of computing was the
changeover from mechanical to electronic components. For example, the ENIAC, an early
computer, replaced slower mechanical relays with electronic switching operations that were
carried out by thousands of vacuum tubes. In essence vacuum tubes raised the speed and
reliability, but they were large, consumed a lot of power, and produced heat. The creation of
transistor in 1947 by a team of scientists at Bell Laboratories was the time when the jump to the
next level was made. Unlike vacuum tubes, transistors were smaller, more efficient, and more
reliable and this made the development of smaller and faster computers possible. This invention
led to the creation of integrated circuits (ICs) in 1960s, which had several transistors combined in
a single chip and later to microprocessors in the 1970s, which had a whole CPU on one chip
(Null & Lobur, 2014). These breakthroughs made possible the quick spread of computer
technology into the consumer, business, and educational sectors.
29
Another important factor is the impact of the military and scientific requirements. In fact, many,
if not all, of the notable and significant milestones that were made in the history of computing
were the direct consequences of the needs for fast and precise calculations in scientific research
and military operations. A very good example is the use of computers to calculate artillery
trajectories, code-breaking encrypted communications, and atomic research during World War
II. Practically electronic computing demonstrated by machines like Colossus, which was made
by British engineers to decrypt German codes, and ENIAC, which was made in the US for
artillery calculations, were the examples of usage. Comparing to before the war, government
funds for science and defense projects kept on being the source of innovation. The Cold War era
only, in particular, made the computer development faster as countries did investments heavily in
technology for space exploration, cryptography, and missile guidance systems. It was also the
time when ARPA (Advanced Research Projects) agency, which later became the developer of
ARPANET, the ancestor of the current internet, was established. Therefore, military and
scientific issues were among the primary factors which led to pushing computing beyond the
limits of speed, accuracy, and interconnection (Null & Lobur, 2014).
One of the major factors that came after the first four was the upsurge of data processing and
business applications. Managing data became the most pressing issue as governments,
corporations, and institutions grew in the 20th century. The invention of punch card systems by
Herman Hollerith for the 1890 U.S. Census is considered the very first step in the process of
automated data handling. Later, these systems were turned into the core of business computing,
which led to the creation of companies like IBM, the company that was the leader in the
production of mainframe computers for commercial use. At that time of the 20th century, the
middle part, organizations were using computers for their payroll, accounting, and inventory
30
management. The development of database management systems in the 1960s and personal
computers in the 1980s were the two major milestones in the computing world that opened the
way for more people to have access to it. As a result, the radically changed industries by the
democratization of computing became the ones that were able to implement automation,
increased efficiency, and data-informed decision-making. The same idea is still applicable
nowadays with cloud computing, big data analytics, and artificial intelligence being the factors
that are leading the changes in how businesses operate (Null & Lobur, 2014).
This last factor is the quest for miniaturization and efficiency, which has been the main driver of
the computing industry for a long time. Moore's Law is the observation made by Intel co-founder
Gordon Moore in 1965, that the number of transistors on a single integrated circuit doubles about
every two years, thus leading to a nearly exponential increase in computing power and a decrease
in the cost per transistor. For decades, this principle served as a compass for progress in the field
of computing, which became smaller, faster, and cheaper. The trend towards miniaturization
resulted in the invention of personal computers, laptops, smartphones, and embedded systems. At
present, this goal is still pursued through inventions in nanotechnology, quantum computing, and
processors that are energy-efficient. The requirement for a higher performance albeit at a lower
energy consumption is what keeps the innovation going without a break and thus makes
computing technology scalable and sustainable as well (Null & Lobur, 2014).
16. What is it about the transistor that made it such a great improvement over the vacuum tube?
The transistor is basically the single biggest tech leap ever for computing and electronics, and it's
still around. The three scientists John Bardeen, Walter Brattain, and William Shockley at Bell
Laboratories invented transistor in 1947, and the transistor in no time was able to take over from
the vacuum tube which was the main component used in the first electronic circuits. Vacuum
31
tubes were doing the same job, amplifying, switching, and controlling electrical signals, but the
transistor, being smaller, more reliable, and more efficient, was a revolutionary upgrade that
made the computers and other electronic devices better both in terms of design and performance
(Null & Lobur, 2014).
The size and portability of the transistor versus the vacuum tube were probably the most
significant factors that occasioned the change of technology. Vacuum tubes, being glass
components, were big and fragile, and therefore, they took up a lot of space and had to be
handled with care. For example, the ENIAC used more than 17,000 vacuum tubes and was so big
that it took a whole room. Transistors, on the other hand, are tiny and are made from
semiconductor materials such as silicon or germanium. Their small size made the engineers to be
able to build smaller, more powerful, and more energy-efficient computers. This miniaturization
is what made portable electronics, integrated circuits, and eventually personal computers
possible. Apart from that, the electrical paths became shorter due to the size reduction which in
turn made the speed and the performance of the electronic systems better (Null & Lobur, 2014).
One other major improvement was the transistor's reliability and durability. Vacuum tubes were
known to burn out frequently, produce a lot of heat, and require more maintenance. The high
temperatures generated by thousands of vacuum tubes were one of the reasons why early
computers were always breaking down and had limited operational uptime. Meanwhile,
transistors were solid-state devices without any moving or heating parts. They were capable of
working for long hours without failure and also they were less vulnerable to physical shock or
vibration. Since transistors generate less heat, they made the electronic systems more stable,
reliable, and energy-efficient. This reliability was instrumental in allowing computers to run non-
stop for scientific research, business applications, and space missions (Null & Lobur, 2014).
32
The power efficiency of the transistor is another aspect that made a major difference in the
evolution of technology. Vacuum tubes needed to heat their filaments and maintain electron flow
so they consumed a lot of electrical power. Transistors were very energy-efficient devices
compared to vacuum tubes. This power efficiency improvement had a significant effect on the
development of telecommunication, consumer electronics, and computing where portable and
battery-powered devices became possible. The reduced power consumption also made it possible
for denser circuit designs as the engineers could put more components into a single system
without overpowering the power supplies or causing too much heating. The invention of ICs
(integrated circuits) in the late fifties that carry multiple transistors on a single silicon chip was
made possible due to this advancement (Null & Lobur, 2014).
Moreover, transistors could achieve much faster switching speeds than vacuum tubes. In digital
circuits, speed plays an extremely important role because it is the main deciding factor for the
processor’s performance as it is directly proportional to the number of binary states (0 and 1) the
processor can switch in a unit of time. Transistors are capable of flipping states within
nanoseconds, thus allowing for considerably greater processing speeds and computational
efficiency to be increased. Thus, this feature of transistors made them suitable for digital logic
circuits, the base of present-day processors and memory systems. Besides, faster switching also
made more complex computation and data handling possible, thus sustaining the rapid
development of computer technology in the 1950s and 1960s (Null & Lobur, 2014).
Among all the other factors, the transistor was a revolutionary device which replaced the vacuum
tube due to its diminutive size, high reliability, low power consumption, and greater speed. It
was precisely these characteristics that made it possible to conceive and build compact, efficient,
and high-performance computers capable of operating continuously with very few breakdowns.
33
Besides the transistor invention has completely changed computer architecture system and has
become the foundation of the present modern era electronics which in turn gave rise to a host of
other innovations like integrated circuits, microprocessors, and digital communication systems.
Its advent has made possible the transition of computing machines from large and energy-
consuming types to the fast and echelons of efficient digital systems which are the hallmark of
today’s technology (Null & Lobur, 2014).
17. How does an integrated circuit differ from a transistor? Give 6 ways.
The integrated circuit (IC) and the transistor are widely regarded as the two major technological
breakthroughs that have transformed electronics and computing profoundly. Even though they
represent the essence of modern electronic systems, as basic components, these two devices are
vastly different in their make, working principle, and eventual uses. Transistor, a revolutionary
invention that transformed electronics, was in 1947 thought up by John Bardeen, Walter Brattain,
and William Shockley at Bell Laboratories, and it is the first solid-state device able to amplify
and switch electrical signals. It was the main vacuum tubes' replacement operation that
eventually led to smaller, faster, and more efficient electronic machines. Eventually, the
integrated circuit, about a decade after, was aimed at changing the face of electronics by Jack
Kilby and Robert Noyce combining multiple transistors and other components onto a single
semiconductor chip. The invention heralded the age of microelectronics, thus the birth of modern
computers, smartphones, and digital devices (Null & Lobur, 2014).
The first and foremost difference between an integrated circuit and a transistor is what they are
made of and how complex they are. A transistor is a one-of-a-kind semiconductor device usually
grown from silicon and is mainly used for amplification or switching purposes. The transistor is
a three-terminal device, emitter, base, and collector in a bipolar junction transistor (BJT), or
34
source, gate, and drain in a field-effect transistor (FET). On the other hand, an integrated circuit
is a miniaturized electronic circuit that has merged hundreds, thousands, or even billions of
transistors together with resistors, capacitors, and diodes on a single silicon chip. Such an
association makes the IC capable of carrying out a great variety of complex concepts like the
data processing, memory storage, and signal control which are way beyond the scope of a single
transistor (Null & Lobur, 2014).
The next distinction between them is their use and function. Simply put, a transistor can do a few
basic electrical operations such as amplifying current or switching signals on and off. It is
basically a building block of electronic circuits, and to have a fully functioning circuit one would
need to connect multiple transistors externally. In contrast, an integrated circuit is capable of
performing full functions and, in fact, can work as an entire system on one chip. If you think
about it, an IC can be a microprocessor, a memory module, an operational amplifier, or a logic
gate array just by changing its design. In short, a transistor is just one unit whereas an integrated
circuit is a group of units that are connected and designed to accomplish a certain function,
which makes it much stronger and more versatile (Null & Lobur, 2014).
The third significant difference is the one of size and the number of components that can be
packed within the space. While a single transistor is quite small, an integrated circuit has densely
packed a very large number of transistors in a very tiny area. Photolithography, a production
method that involves transferring very small circuit patterns onto silicon wafers, made it
possible. With time, the sizes of transistors inside ICs have shrunk so much that it is now
possible to have billions of transistors on chips that are smaller than a human nail. The
miniaturization that took place was the cause of the computational power that has increased
exponentially while at the same time the cost, power consumption, and the amount of physical
35
space required have all been reduced. The transition from small-scale integration (SSI) to large-
scale (LSI), very-large-scale (VLSI), and ultra-large-scale integration (ULSI) is a journey that
shows how the number of transistors per chip has gradually increased (Null & Lobur, 2014).
The fourth difference is about functionality to a certain degree as well as energy saving.
Although transistors can individually switch signals at a fast rate, circuits made from discrete
transistors have slower functioning due to longer wire connections and higher power dissipation.
By doing away with all these issues, integrated circuits fuse all the components in one single
substrate thus very much reducing signal delay, resistance, and interference. As a consequence,
the device turns to be faster and more energy-efficient. Basically, today’s chips are capable of
performing billions of operations in a second while using a very small amount of power and this
feature is a must for devices such as cell phones, laptops, and embedded systems. Therefore, the
ability of ICs to function efficiently has led to the fact that they are essential in every area of
computing and electronics (Null & Lobur, 2014).
The difference that comes next can be found in production and cost first of all. To make a circuit
with discrete transistors and separate components you have to do the assembly manually, which
takes a lot of time and is rather costly. The process of each transistor be soldered and connected
by wires is what causes the increase of the error and component failure up to the maximum.
Meanwhile, semiconductor fabrication methods are used for integrated circuits production,
which is pretty much automated. After the completion of the design, there can be thousands of
the same ICs are done at the same time from one single silicon wafer. Therefore, the cost per unit
is lowered significantly through this procedure while the reliability and consistency are improved
as well. What ICs cost less has been the driving force for producing consumer electronics in
36
large quantities and hence, making computing technology accessible to everyone all over the
world (Null & Lobur, 2014).
The sixth and final difference is about reliability and scalability. A circuit made from discrete
transistors is usually less reliable as it can be affected by physical wear, loose connections, and
electrical noise, thus it is likely to fail more often. On the other hand, integrated circuits, since
they are made as one single piece of silicon, are much more resistant and less likely to be
weakened by mechanical parts. Apart from that, ICs can be easily scaled, technicians can add
more transistors and improve the functionality without considerably increasing the size of the
chip. This scaling is the basis of Moore’s Law which states that the number of transistors in an
integrated circuit is doubled roughly every two years, thus computing power keeps getting better.
This characteristic of ICs has allowed the continuous miniaturization of computers and the fast
progress of digital technology (Null & Lobur, 2014).
18. Explain the differences between SSI, MSI, LSI, and VLSI.
The history of computer hardware and electronic design features consistent attempts to place
more components on a single chip, hence, performance is enhanced, the cost is lowered and the
size is decreased. Integration is the process of increasing the number of electronic components,
in particular transistors, resistors, and capacitors, that are put together in one integrated circuit
(IC). Within each period of time, to a great extent, breakthroughs in semiconductor
manufacturing techniques have permitted engineers to exponentially raise the transistor count per
chip. Those periods of progress in technology are identified as Small-Scale Integration (SSI),
Medium-Scale Integration (MSI), Large-Scale Integration (LSI), and Very-Large-Scale
Integration (VLSI). Every stage signifies a landmark in further miniaturizing and deepening
37
electronic systems and is a measure that shows how the power and efficiency of computing have
changed over the years (Null & Lobur, 2014).
The Small-Scale Integration (SSI) technology, which is the first level of integration, appeared in
the early 1960s. The number of transistors in Small-Scale Integration (SSI) circuits was between
1-100 and in most cases, the number was less than 100. The smallest number of transistors in
these logic circuits consisted of function circuits, e.g., simple logic gates (AND, OR, NOT), flip-
flops, and small amplifiers. Computers using SSI technology, e.g., early IBM and DEC systems,
were very limited in operations, but they had to be built with a large number of ICs. As SSI
circuits had a very low level of complexity, they were the first components that brought about
the shift in the designs that before their time would have been considered impossible due to
vacuum tubes or individual transistors soldered together on circuit boards. In terms of size, the
use of SSI had made computers smaller, more reliable and less power was needed. If SSI chips
could only handle simple operations, the chips between them had to be wired in a complicated
manner, thus the overall system speed and efficiency were also limited (Null & Lobur, 2014).
With the advancement of fabrication technology, the Medium-Scale Integration (MSI) stage has
been defined in the late 1960s and early 1970s. MSI circuits usually had transistors ranging from
a few hundred to a few thousand on a single chip. This gave engineers the ability to merge
several simple logic functions into one IC, thus creating more complex components like adders,
counters, multiplexers, and small memory arrays. MSI was a big jump in circuit technology as it
allowed machines to do more work with fewer chips.
Less connection changes between chips were responsible for the speed and reliability of the
system increasing while the power consumption was going down. The MSI period was
instrumental in the design of minicomputers and early microcontrollers, thus it was possible to
38
conceive more compact and less expensive computing systems. The arrival of MSI has also been
the basis for the development of programmable logic devices that eventually became essential in
the design of digital systems (Null & Lobur, 2014).
Large-Scale Integration (LSI), the next stage after Large-Scale Integration (LSI) which took
place around the mid-1970s, could be considered one of the most transformative epochs
computing history had ever had. The LSI circuits consisted of thousands up to tens of thousands
of transistors on a single chip. This degree of integration resulted in the production of complete
functional subsystems, like memory modules or small processors, on a single integrated circuit.
The LSI technology was the direct path to the invention of the microprocessor, a single chip unit
(CPU) containing all the logic circuits. Intel 4004 microprocessor, which was released in 1971, is
often regarded as one of the first viable LSI technology applications that carried roughly 2,300
transistors. The influence of LSI was huge: computers got smaller, faster, and more affordable,
thus the conception of personal computers (PCs) and embedded systems. Besides, the deeper
integration also led to better reliability, as less interconnections were needed between different
parts. LSI was the technological base for the late 20th-century computing revolution that brought
powerful computing to both the consumer and the industrial sectors (Null & Lobur, 2014).
The fourth and most sophisticated level, Very-Large-Scale Integration (VLSI), is an ongoing
development that dates back to the late 1970s. VLSI means that from hundreds of thousands to
billions of transistors are integrated into a single chip. Such a level of integration has been
instrumental in the development of microprocessors, memory chips, and system-on-a-chip (SoC)
designs that are the core of computers, smartphones, and digital devices of today.
Thanks to VLSI technology, what used to be entire rooms can now fit in the palm of a hand.
VLSI circuits serve to build high-end CPUs, graphics processors (GPUs), and complicated
39
memory structures. Improvements in semiconductor fabrication, such as photolithography and
nanometer-scale transistor design, have given engineers the ability to make devices smaller while
still being able to use less power and produce less heat. Moreover, VLSI has paved the way for
the concepts of parallel processing and multi-core processor architectures which thus, by far,
have become the utmost computational power and energy efficiency (Null & Lobur, 2014).
The primary distinctions between these four levels most notably revolve around their complexity
and capability. SSI was restricted to very simple logic operations, whereas MSI offered the
capability of limited data manipulation. LSI combined various functional units to produce
microprocessors, and VLSI united millions or billions of transistors to create entire computing
systems on a single chip.
Moreover, differences in terms of cost and production efficiency are also noticeable. The more
the integration was, the cost per function was lower, thus computing technology became
accessible to a wider public. Besides that, the reliability got better as well since integrated
circuits reduced the number of external connections that could fail. The change from SSI to
VLSI also signified a change from manual circuit assembly to automated semiconductor
fabrication, thus it became possible to produce on a large scale and to have scalability (Null &
Lobur, 2014).
The consequence of this transition from SSI to VLSI is enormous. Besides hardware, it has
widely influenced software development and digital communication as well. The higher
integration levels brought faster data processing, better memory utilization, and complex
operating systems. This breakthrough has been the source of today’s innovations in artificial
intelligence, cloud computing, and embedded systems which constitute the digital era. Besides
that, as VLSI is still progressing, the industry is actually looking at the next stage, i.e. Ultra-
40
Large-Scale Integration (ULSI) and nanotechnology-based circuits that will be able to deliver
even higher computing performance levels (Null & Lobur, 2014).
19. What technology spawned the development of microcomputers? Why?
The creation of microcomputers was mostly a consequence of changes in microprocessors. The
microprocessor, which was a very significant change in the history of computing when it was
released in the early 1970s, basically put together in one chip the basic functions of a computer's
central processing unit (CPU). This new technology allowed creating smaller, cheaper, and more
powerful computers, which led to the advent of the personal computer (PC) era. The
microprocessor was the logical step following the progression in electronics that had started with
the invention of the transistor, the emergence of integrated circuits (ICs), and the never-ending
quest to make computer hardware smaller and less costly (Null & Lobur, 2014).
The microprocessor era without doubt marked a significant shift while before that time
computers were bulky, expensive, and thus limited to the use of governments, research
institutions, and big companies. They were built using discrete components such as vacuum
tubes at first and transistors later, where each of these was an individual part of a computer's
processing system. The invention of the transistor in 1947 helped to make the computers smaller
and more reliable, however, they were still made up of many different circuits that were
interconnected and hence more complex in terms of wiring and also took up a lot of space and
power. By giving the ability to put many transistors and other components on one silicon chip,
the invention of integrated circuits in the 1960s had set the stage for further progress in
computing. The changes brought about by this technology to the electronic industry included the
reduction of the size, cost, and complexity of electronic systems. Uniting all these components
on a single chip was a matter of time and the revolution came with the microprocessor - the
41
single-chip CPU which not only changed computer layout but also opened up the world of
microcomputers (Null & Lobur, 2014).
A microprocessor board combined the most important parts of a computer's brain regularly the
ALU (Arithmetic Logic Unit), the Control Unit, and Registers -into one silicon chip. This means
that computers do not need to have a big circuit board with many individual chips for processing
tasks. The first commercial microprocessor, the Intel 4004, introduced in 1971, had
approximately 2,300 transistors and could do 60,000 operations per second. The one-chip CPU
was originally made in calculators, and it showed that a powerful computing system could be
made by only one integrated chip serving as the CPU. The success of the Intel 4004 led to the
development of the advanced microprocessors such as Intel 8008 and Intel 8080 that became the
foundation of the first microcomputers like Altair 8800 (Null & Lobur, 2014).
Microprocessor technology made it possible to reduce the size and cost of computers
dramatically, which was a necessary condition for the emergence of microcomputers. The
mainframe and minicomputers of the late sixties and early seventies were very expensive, and
they needed special rooms to operate. Microprocessor, however, made it possible for the
engineers and the tech-loving community to design computers that are small enough to be put on
a desk and cheap enough for an individual or a small business. These systems got the name
microcomputers, which denotes the use of microprocessors as the CPU in computers. The first
successful microcomputer, the Altair 8800, came out in 1975. It influenced a great number of
engineers and programmers, which consequently led to the establishment of the companies,
Apple, Microsoft, and Commodore, that became the main players in the personal computer
industry (Null & Lobur, 2014).
42
One of the major reasons that microprocessor technology was the leading factor in the creation
of microcomputers is its inherent flexibility and scalability. Microprocessors could be made
capable to carry out different types of operations which were numerous, compared to the
hardware parts that were specially designed in the systems of the past. This made them
appropriate to be used for general-purpose computing which gave users the ability to run
software applications that they could use for business, education, or entertainment. Besides that,
the modular nature of the microprocessor-based systems meant that the designers could as well
add memory, storage, and input/output gadgets, thus creating different variations of computers to
meet various demands. Such an adaptability factor was instrumental in propagating the use of
microcomputers which were accessible in the homes, schools, and offices in different parts of the
world, and thus the interaction of people with technology was basically changed (Null & Lobur,
2014).
In fact, the economics and manufacturing conditions of microprocessor production were the
prime factors behind the rise of microcomputers. With the progress of semiconductor fabrication
technology, the cost of manufacturing microprocessors and integrated circuits has been reduced
drastically. Therefore, mass production of affordable computing systems has become
economically feasible. In addition, the introduction of standardized microprocessor architectures
invited software developers to create applications that could run on multiple microcomputer
models, thus speeding up their implementation. The concert between the hardware and software
industries in the 1970s and 1980s was instrumental in the further opening of the microcomputer
market which was a great move in making computers no longer a tool for the few but a device
accessible in every household (Null & Lobur, 2014).
20. What is meant by an “open architecture”?
43
Open architecture is a device layout plan where the parts of the system, including hardware and
software, can be changed, enlarged, or replaced with those from another company or developer
without any limitations. Simply put, it means the system's internal standards, interfaces, and
design concepts are available to the public, thus other companies or individuals can develop
components or software that are compatible. By open architecture users and developers are not
bound by the original manufacturer's products but are free to customize or upgrade their systems
in any way they want, which in turn promotes, among others, the virtues of interoperability,
flexibility, and innovation (Null & Lobur, 2014).
The notion of open architecture had a great impact on the transition period of the digital era. The
IBM Personal Computer (IBM PC) launched in 1981 is probably the best-known example of this
concept. IBM made the technical specifications of its PC available to the public, which included
the board, bus systems, and interface standards. This transparency gave the manufacturers of
"clones" the opportunity to make compatible hardware and software because they knew the
specifications and thus could easily develop products like expansion cards, peripherals, operating
systems, and so on. The effect of this was the PC industry's window of opportunity widened
considerably as the end-users had access to the whole range of compatible products from
whoever they wanted. The outcome of this competitive ecosystem was the standardization of
computer design, cutting down the costs and speeding up the technological progress which was
beneficial to all parties involved (Null & Lobur, 2014).
An open architecture system is different from a closed architecture, where the design
specifications are proprietary and controlled only by one company. Closed systems, e.g., early
Apple computers, are designed in such a way that users cannot change hardware or install third-
party software. Even though closed architectures may provide tighter system integration and
44
reliability, open architectures give more freedom to users and allow them to adapt the system
further. In fact, users are allowed to add new hardware components, such as upgraded
processors, memory, and storage devices, or install alternative operating systems. The reason
why open architecture systems are still to be found in the future is that they are not only more
economical in a sense and more efficient, but also they can continue the trend and do not have to
be discarded as they can simply be updated (Null & Lobur, 2014).
Open architecture has plenty of benefits. One of the major benefits is that it opens up the
floodgates for innovation as developers are free to build on previous designs, which in turn
results in accelerated technological progress. At the same time, however, it also promotes
competition, which, in turn, leads to lower prices and better products. Moreover, open
architecture allows for compatibility and standardization, thus giving the users freedom to
choose any hardware and software from any vendor. Thus, Microsoft Windows-based PCs, as an
example, which depend on open design standards for interoperability between various devices,
have been able to succeed. Finally, open architectures are community-driven, where developers
and users are able to contribute to system enhancement and share their expertise openly (Null &
Lobur, 2014).
21. State Moore’s Law. Can it hold indefinitely?
Moore's Law refers to a prediction made by Gordon E. Moore, the co-founder of Intel
Corporation, in 1965. This prediction essentially states that the number of transistors on an
integrated circuit doubles roughly every two years resulting in the computing power increasing
exponentially while the cost per transistor decreases proportionally. Simply put, Moore's Law
points out the fact that computer processing power will still increase at a fast rate, but it will also
become more affordable and energy-efficient gradually (Null & Lobur, 2014). This factual
45
statement turned into a main industry standard for the semiconductor industry, which was the
main reason that companies considered such issues when they planned technology advancement,
research expenditures, and production strategies over the decades.
Miniaturization is what brings Moore's Law to its core. The smaller the transistors, the more can
be placed on one silicon chip, thus making processors capable of more operations per second and
at the same time less power is consumed. The exponential growth has been the main source of
the evolution of computing from the bulky mainframe computers of the 1960s to powerful
smartphones and microprocessors that can easily fit into a hand today. Besides the law itself, it
has only been the hardware design that was impacted by it but also the software development,
data storage, and the communication technologies have been influenced by the law through the
setting of the standards of the continuous improvements regarding the speed, performance, and
efficiency (Null & Lobur, 2014).
Nevertheless, Moore's Law has been valid for several decades but due to restrictions of a
physical, economic and technological nature, it will not be able to go on forever. The problems
of heat dissipation, quantum interference, and production precision become more and more
difficult to solve as transistor sizes are atoms scales, nanometers are used for measuring. At
present, processors are equipped with transistors only a few atoms wide, and going on further to
reduce the size may result in electrical instability and leakage currents, which in turn will cause a
decrease in performance. These physical limitations set a boundary on how much smaller and
faster transistors can be made in the traditional silicon-based technology way (Null & Lobur,
2014).
Moreover, factors relating to the economy are also putting forward a question of whether
Moore's Law can be held. The cost of semiconductor manufacturing has escalated substantially
46
as the processes for fabricating have become more intricate. It costs several billion dollars to
build advanced fabs (fabrication facilities), thus, companies have fewer and fewer opportunities
to keep up with the pace of innovation at affordable costs. Besides, the chip designing and testing
of a billion transistor-based chip is extremely resource-consuming, both financially and in terms
of skilled manpower. As a result of these increasing expenses, it becomes difficult to keep up
with the exponential progress Moore originally referred to (Null & Lobur, 2014).
After these problems, the engineers and scientists still keep on going and they are inventing new
technologies and architectures that are in line with the spirit of Moore’s Law. To delay the need
to shrink transistors, multi-core processors, quantum computing, 3D chip stacking, and
nanotechnology are some of the innovations that are being developed to reflate the performance.
As an illustration, 3D architectures raise computing density by stacking layers of circuits
vertically, whereas quantum computing seeks completely different methods of handling
information with quantum bits (qubits). At the same time, there are also alternative materials
such as graphene and carbon nanotubes which are considered to be substitutes of silicon, thus
possibly opening the way for more miniaturization and higher performance.
22. How is Rock’s Law related to Moore’s Law?
Rock's Law (also called Moore's Second Law) expands and contrasts Moore's Law by dealing
with the economic aspect of semiconductor manufacturing rather than the technological one.
Rock's Law, named after Arthur Rock, a venture capitalist who was an early investor in Intel,
says that the cost of making semiconductor fabrication plants (fabs) goes up by a factor of two
every four years or so (Null & Lobur, 2014). While Moore's Law is a technological forecast that
implies the number of transistors per chip will double every couple of years leading to
performance improvements, Rock's Law is an economic measure that points to the increasing
47
financial challenges that block the way. These two laws together show the interplay between
economic and technological challenges that drive the field of computer hardware forward.
On the one hand, Moore’s Law describes how engineers manage to cram more transistors into a
chip, thus boosting its performance and energy efficiency, and on the other hand, Rock’s Law
intimates that sustaining this rate of progress comes with a cost that increases exponentially. The
continuing miniaturization of transistors and the increasing complexity of chip designs make it
necessary to upgrade the tools and methods used to produce chips with even greater precision
and in extremely clean environments. To have access to the latest generation of semiconductor
fabrication technology one has to be prepared to meet the costs of the equipment, the materials,
and the testing systems that are all more advanced. Namely, the transition to nanometer-scale
transistors and extreme ultraviolet (EUV) lithography has driven the price for each of the modern
chip fabrication plants to more than ten billion dollars, in contrast to just several millions in the
first few decades of the industry (Null & Lobur, 2014).
The interaction between Moore's Law and Rock's Law may be interpreted as a technological-
economic conflict. Moore's Law is the major source of innovation as it compels engineers to
integrate more transistors into smaller areas, thus enhancing performance and reducing the cost
per transistor. On the other hand, Rock's Law restricts the development as the cost of following
Moore's Law becomes more and more difficult to sustain. Initially, based on the semiconductor
development history, both laws were not contradictory to each other because the cost per
transistor kept going down even if total fabrication costs were going up. However, as production
technology gets closer to the limits set by nature and economics, Rock's Law challenges the
continuation of Moore's Law. The eventual outcome will be that the exponential growth of
48
production costs will be able to offset the advantages of transistor miniaturization (Null & Lobur,
2014).
Today, the influence of Rock's Law can be seen without a doubt in the semiconductor industry.
The rising expense of pioneering new fabrication technology has led to the concentration of chip
manufacturing in the capacity of a few major companies, for example, Intel, TSMC (Taiwan
Semiconductor Manufacturing Company), and Samsung. These corporations have the money and
the technology required to construct and operate the next generation of fabs. While smaller
companies are hardly capable of competing at this level, which has resulted in the semiconductor
industry's consolidation. This economic fact is a manifestation of the increasing dominance of
Rock's Law and the necessity for new solutions to maintain technological progress while
avoiding non-sustainable cost increments (Null & Lobur, 2014).
Despite all, researchers and manufacturers strive to find different ways to keep Moore's and
Rock's Laws in balance by ongoing innovation. Several such advancements as 3D chip stacking,
chiplet architectures, and modular semiconductor design open the ways to improve performance
and efficiency without the necessity of full-scale fabrication overhauls. Furthermore, the move to
specialized processors (like GPUs, TPUs, and AI accelerators) enables manufacturers to enhance
performance for specific applications, thus cutting down the need for drastic transistor scaling.
These tactics indicate that the industry is not trapped by Rock's Law and can still respond to this
challenge with ingenious engineering and alternative design philosophies (Null & Lobur, 2014).
Rock's Law and Moore's Law is a pair of two intimately linked principles which, in tandem,
sketch the semiconductor industry's route of progress and its uphill battles. On the one hand,
Moore's Law is the main driver of computing power growth at an exponential rate through
further transistor miniaturization, on the other hand, Rock's Law is telling us that the price of
49
such progress is doubling rapidly as well. According to Rock's Law, as technology gets more
advanced, it would become harder to maintain Moore's pace due to mounting costs. The tug-of-
war between these two forces has had a major impact on the birth of modern computing and is
still determining the move to be taken by the utopian strategists who are looking for ways to
keep the innovation going despite the existence of physical and monetary constraints (Null &
Lobur, 2014).
23. Name and explain the seven commonly accepted layers of the Computer Level Hierarchy.
How does this arrangement aid in understanding computer systems?
The Computer Level Hierarchy is a theory that helps to know the various levels of abstraction of
a computer system. The levels are used as a model to describe how hardware and software
interact to run programs and perform tasks as they are built up in a structured model that presents
a level of functionality on top of the previous level. This top-down method offers a rational and
systematic method of investigating complex computer systems, both in their physical circuitry
and application. There exist seven widely used levels of the Computer Level Hierarchy: Level 0
(Digital Logic Level), Level 1 (Microarchitecture Level), Level 2 (Instruction Set Architecture
Level), Level 3 (Operating System Level), Level 4 (Assembly Language Level), Level 5 (High-
Level Language Level) and Level 6 (user Level). At each level, operations at a higher level are
converted into instructions that can be executed by the lower levels, and this way a cohesive
work of a computer system is guaranteed (Null & Lobur, 2014).
Level 0 - The Digital Logic Level.
The lowest level of the hierarchy is the Digital Logic Level that concerns itself with the
electronic circuits that constitute the physical hardware of a computer. This level consists of the
50
logic gates, transistors and flip-flops, which are the basic building blocks of the digital systems.
Logic gates can be used to implement basic Boolean operations like AND, OR and NOT so that
logical conditions can be represented using binary signals (0s and 1s). Electronically, transistors,
and especially transistors, are electronic switches used to regulate the current flow and so permit
binary computing. Computer circuits in this level perform simple arithmetic and control
functions used by higher levels. The digital logic level engineers design and optimize hardware
components, which make the system capable of making reliable and efficient computations. It is
a level on which all other levels of the hierarchy are developed (Null & Lobur, 2014).
Level 1- Microarchitecture Level.
The Microarchitecture Level or the register transfer level describes the organization and
interaction of the basic hardware components to process instructions. On this level, data are
exchanged between registers, the caches, and the control units via the buses and intra pathways.
The microarchitecture defines the implementation of the hardware instructions of the instruction
set of a CPU. As an example, two processors possibly share the same instruction set architecture
(ISA), but their microarchitectures can vary in performance, efficiency and the complexity of
their design. The typical components of microarchitecture are ALUs (Arithmetic Logic Units)
control units and data paths. The timing of the instruction execution is also controlled at this
level and some of the techniques used are pipelining and branch prediction that improve
processing speed. The knowledge of this level assists in the performance and efficiency of the
processor because it is the point in the hardware and software execution aspect (Null & Lobur,
2014).
Level 2 - Instruction set architecture (ISA) Level.
51
Instruction Set Architecturelevel is an interface between software and hardware. It determines
the instructions that a processor can execute, and also how the CPU can interoperate with the
memory and the input/output devices. ISA defines the data format, address mode, register format
and instruction format. Some of the most commonly used instruction sets architectures would be
x86, ARM, and MIPS. At this level, the instruction of the programmers and compilers is in
symbolic machine language as opposed to the raw binary codes implemented by the hardware.
The ISA offers a standard enabling software to execute on any hardware capable of executing the
same architecture of instructions. Simply, it guarantees cross-compatibility and portability at the
hardware implementation level. The structure of a efficient ISA is of high essence since it
determines the overall functionality, complexity and usability of the computer system (Null &
Lobur, 2014).
Level 3 - An Operating System Level.
Operating System (OS) Level the OS level deals with system resources and it provides interface
between the user programs and hardware. Functions including the handling of memory,
scheduling of processes, handling of files, and control of input/output are key functions that the
operating system manages at this level. The OS facilitates efficient utilization of the hardware
resources and multiple programs can run simultaneously without being disruptive to the
application. This level presents the virtual memory concept that enables programs to access
beyond physical available memory and abstraction of processes, which enables users to execute
multi-tasking. The operating system gives a reliable and simple platform on which software can
run by concealing the hardships of management of hardware. Some examples of operating
systems are windows, linux, and MacOS. This layer is what allows closing the gap between the
low-level hardware operations and the high-level application execution (Null & Lobur, 2014).
52
Level 4 - level with the assembly language.
The Assembly Level has a human representation of the machine code. The assembly language
has one instruction per ISA instruction, so it is a low-level program language with a face value
control over the hardware. Instead of using binary codes like MOV, ADD, and SUB, the
assembly language has mnemonics that enable the programmer to create easier to understand and
debug programs. These mnemonics are converted to machine code by assemblers so that they
can be implemented by the CPU. The assembly language language is time-intensive but
important in performance, especially in the crucial programs since it requires detailed knowledge
of the hardware and enables high performance programs particularly in operating systems,
embedded systems, and device programs. The secondary part is the assembly level, which is
important in learning what happens at the higher-level programming language to machine-
executable code (Null & Lobur, 2014).
Level 5 - Level of the High-Level Language.
Software development takes place mostly at the High-Level Language Level. It is a level that
removes the physical details of the hardware and enables programmers to write computer code in
a human-like syntax that can be interpreted and executed by computers. High-level languages
like C, C++, Java and Python are made portable i.e. they can be used on dissimilar hardware
architecture with slight adjustments. A compiler is a program that converts a high-level language
code into either an assembly code or a machine code that can be executed on the CPU. High-
level programming languages enhance productivity by breaking down complicated functions and
statements into manageable statements and functions. They are also very suitable in the
development of large and complex software systems as they increase their readability,
maintainability and scalability. This abstraction is crucial to computing since it enables
53
individuals to use a computing system without necessarily having any knowledge of the
hardware involved (Null & Lobur, 2014).
Level 6 - The User Level
At the highest in the hierarchy is User Level which is the interface between human beings and
the computer system. Users are the people who use applications and interfaces at this level to
accomplish a certain action that includes word processing, browsing, or playing games. The user
communicates with the system by using a graphical user interface (GUI) or command-line
interface (CLI) and so on. The lower tiers of the computer hierarchy are all there to be able to
support the functionality and responsiveness that is felt in this tier. The user level conceals all the
processes and thus the details can be done without individuals knowing the details of any
programming, hardware, and managing of systems, because they do complex computations and
operations. It is this level that eventually represents the idea of all the computer systems to be
efficient and effective in the service of human needs (Null and Lobur, 2014).
The benefit of the Hierarchical Arrangement to Understanding.
The Computer Level Hierarchy is a system that eases study and analysis of computer systems
through a pro-systematic formulation. Separating a computer into layers helps understand the
interaction and reliance between various components on the computer. The levels fulfill certain
functions and hide the complexity of lower levels. This modular structure enables the engineers,
programmers and users to specialize in their respective fields without necessarily having to know
how every aspect of the system works. As an example, a software programmer who writes high
level language does not need to understand how transistors or circuits work but just write code
that will be efficiently executed by the translation process of the hierarchy.
54
To add on, this layered structure promotes innovation, optimization and troubleshooting. One
level of performance, say, optimization of microarchitecture or a new ISA, can be enhanced
without affecting the other levels. On the same note, hardware can be redesigned without having
to do upgrades or improvements on the operating system. The hierarchy also forms a basis of
teaching computer science to students, they get a step by step knowledge of how simple
electronic signals can develop to become elaborate user applications.
24. What was it about the von Neumann architecture that distinguished it from its predecessors?
One of the most influential designs in the history of computer system is the von Neumann
architecture created by John von Neumann in the mid-1940s. It also changed the history of
computers when it revolutionized the idea of the stored-program computer, where both software
(instructions) and data occupied the same memory space. This invention essentially altered the
construction, coding as well as the utilization of computers. Prior to the proposal by von
Neumann computers were computer architectures based on fixed programs, and the programs
were hard-wired into the machines and could not be changed easily. This rigidity was substituted
by the von Neumann model, which had a logical and programmable design with which familiar
computers are based on. Its introduction led to the era of modern computing by establishing a
framework upon which computer design has been based to date (Null & Lobur, 2014).
Early computers before von Neumann included the ENIAC (Electronic Numerical Integrator and
Computer), the Harvard Mark I and the Colossus, all sizable machines suitable to personal tasks,
which were either mechanical or electronic machines. These systems did not have the flexibility
of the advanced computers since the software was embedded into the system. Indicatively,
ENIAC, a one of the first most fully electronic computers, was also forced to be rewired and
reconfigured manually to complete new computations. This would consume days and even
55
weeks. A Harvard architectural method, first created by Howard Aiken, used a separate store of
instructions and data, preventing the Harvard Mark I from using as much efficiency and
programming flexibility as possible. The most important idea of Von Neumann was to treat the
data and instructions as one, and put them both into memory so that the machine could evolve
due to dynamically changing instructions (Null and Lobur, 2014).
The latter is the characteristic property of the von Neumann architecture the idea of a stored-
program. The data and the program instructions in this model are stored in the same memory unit
but can be accessed and manipulated by the central processing unit (CPU). This enabled the
electronic reconfiguring of computers without alteration of the hardware set up. The CPU may
read an instruction in the memory and perform its encoding, executing, and process the next one
sequentially. This design led to introduction of the fetch-decode- execute cycle, and the concept
is still in use in all modern processors. Self-modifying programs, in which a program can modify
its own instructions during execution, were also made possible by the concept of instructions as
data, which made it possible to have more complex computational logic and adaptive behavior
thereof (Null & Lobur, 2014).
The centralized control structure of another significant innovation of the von Neumann
architecture made the computer design easier. The model of Von Neumann attached the
computer to three primary parts that included: the Central Processing Unit (CPU), memory, and
input/output (I/O) devices. The CPU, in its turn, had two major subunits: the Arithmetic Logic
Unit (ALU), which performed mathematical and logical operations, and the Control Unit (CU),
which received program instructions and could provide direction to proceed with the flow of
data, the flow of data between the memory, the ALU and the I/O devices. This group was a
rational frame through which the computer engineers were able to standardize design principles.
56
All the operations done by a computer were now explained in terms of interaction of these core
components, and this concept still forms the basis in the designation of the computer
permanently (Null & Lobur, 2014).
A major difference between the von Neumann architecture and its predecessors is its use of
binary representations both of instructions and data. The machines and calculators in earlier
periods, including those of Analytical Engine built by Charles Babbage, had to use a
representation based on decades. Electronic implementation was now easier and more
dependable (shift to binary), and directly related to the on- and off-state of transistors and
electrical signals. This binary coding allowed all kinds of information numbers, characters and
instructions to be represented using the same fundamental format. It further made it possible to
create machine languages which could be translated to electrical signals in an easy way, leading
to programmable digital computers (Null & Lobur, 2014).
The other major distinction made by the architecture by von Neumann was the sequential
execution. In the previous systems, the tasks carried out were usually done in a linear and
manually directed way. The design by von Neumann, however, put a logical method of
executing a list of instructions that were stored in the memory. The various instructions were
then obtained, decoded and carried out sequentially, and thus, a regular and automated
mechanism of computation could be attained. Branching instructions were also possible in this
sequence and allowed the program to make logical decisions. Branching and looping instructions
enabled computers to execute repetitive or conditional functions automatically and enhanced
their functionality and efficiency significantly (Null & Lobur, 2014).
A certain degree of flexibility and generality was also brought out by the approach of von
Neumann that made it a bit different than more specialized predecessors. The previous machines
57
had an intended purpose like calculating ballistics or breaking codes. When constructed, they
were incapable of convenient reuse in the new applications. It was however the von Neumann
model that allowed the development of general purpose computers that were capable of running
any form of program so long as it was written in the right machine language. Such generality
made computer much more generalized allowing them to be applied in a very wide area to be
used in science, business, engineering and education. The concept of stored programs
fundamentally upgraded computers into fixed machines to be reprogrammable and able to do an
unlimited number of programs (Null and Lobur, 2014).
The von Neumann architecture is not flawless however. The so-called von Neumann bottleneck
is also one of its most popular weaknesses. This name is used to describe the small bandwidth
between the CPU and the memory. Since data and instructions are sent through the same
communication channel, the processor is held until data is sent to and out of the memory, which
decreases performance. In the current systems, the same limitation has been addressed with
caching, pipelining, and parallel processing though the fundamental problem is inherent in the
architecture. Nevertheless, the von Neumann model remains the paradigm due to its simplicity,
functionality, and versatility (Null and Lobur, 2014).
One of the significant impacts of the von Neumann architecture is that it not only influenced the
hardware design but also the software and programming languages. As the instructions and data
are in the same memory, programmers could develop more straightforward and modularized
programs. The layout gave rise to the development of assembly language that offered symbolic
representations for machine instructions and eventually, high-level languages like Fortran, C, and
Python. These languages gave programmers the ability to describe algorithms in an abstract way,
and it is the job of the compilers and assemblers to convert them into machine code. Such an
58
abstraction was at the core of the development of software engineering as a separate field which,
on the one hand, made it possible for software to be compatible with different hardware systems
based on the von Neumann model and, on the other hand, allowed software to evolve
independently of hardware (Null & Lobur, 2014).
25. Name the 7 characteristics present in a von Neumann architecture.
The architecture of von Neumann is the basic architecture on which almost all contemporary
computers are developed. This architecture, named after John von Neumann who was the first to
propose the concept of an architecture in the 1940s, marked a ground breaking advance in
computing - the stored-program principle, in which a single memory is shared by both data and
instructions. This design made computers programmable, flexible and efficient and this was a big
change to the previous systems which utilized hard wiring or manual reconfiguration system.
The von Neumann architecture is also used presently due to the fact that it forms a definite and
rational framework of how the computers perform their tasks. It is defined with seven basic
characteristics, which, in different combinations, constitute the functioning of the computer
system: (1) single memory of data and instructions, (2) binary information storage, (3) sequential
execution of instructions, (4) the central processing unit (CPU), (5) input and output
mechanisms, (6) the stored-program concept, and (7) the separation by the use of the fetch-
decode-execute cycle (Null & Lobur, 2014).
One Memory of Data and Instructions.
A shared memory of both programs (instructions) and data is one of the most prominent features
of the von Neumann architecture. The computer will execute the instructions that command it on
what to do in the same memory space as the data it manipulates in this type of design. This was a
59
great contrast to the previous ones like the Harvard architecture that stored data and instructions
in different memories. The design of von Neumann made the hardware of the computer simpler
and programming it became much more flexible since the computer operated using one memory
system. Hardware connections could be modified easily overriding the programs. Instructions
can be treated like data with this shared memory system, permitting self-modifying code 4 that
is, a program can modify its own code. Yet, this design also incorporates the von Neumann
bottleneck, which is a drawback of ability to access the data or the instructions one at a time and
slows down the performance (Null & Lobur, 2014).
Binary Information is stored in Memory.
The von Neumann architecture uses binary representation of any data and instructions. Rather
than counting in decimal number systems or other kinds of number systems, binary simplifies
some kind of computation, in that only two states are used to make the information, generally 0
and 1, or electrical signal (off and on). This two-state system enables electronic circuits to
compute information in a stable and in an effective manner. Binary data can be used to encode
every form of information numbers, text, images, program instructions. Not only had the
complexity of the hardware been simplified with binary, but logical functions like addition,
subtraction and comparison that could be described using Boolean logic were also simpler to
design. The universal representation formed the basis of the digital revolution because binary
was the standard language of all contemporary computing systems (Null & Lobur, 2014).
Linear Sequence of Instruction Execution.
Sequential execution of instructions is the other basic characteristic of the von Neumann
architecture. Unless directed otherwise by control code like loops or conditional branches the
60
instructions are executed in sequence as they are loaded into memory. This step-by-step flow
offers a definite and systematic format over which the programs will be carried out. The CPU
will fetch an instruction, decode it to figure out what it needs to do and then execute it and move
on to the next instruction. The von Neumann machines are based on this process, which is
referred to as the fetch-decode-execute cycle. Sequential execution makes the programming and
debugging very simple as the operations happen in a foreseeable sequence. It is however
restrictive to performance since only one instruction is handled at a given time. Modern
computers overcome this drawback through the methods of pipelining and parallel processing,
but still adhere to the sequential logic model introduced by von Neumann (Null & Lobur, 2014).
Central Processing Unit (CPU)
One of the defining features of the von Neumann architecture is the CPU or the brain of the
architectural design. It performs the task of commands and the management of the functioning of
the whole computer system. A CPU consists of two elements namely the Arithmetic Logic Unit
(ALU) and the Control Unit (CU). The ALU and Control Unit carry out all the mathematical and
logical operations as the addition, subtraction, and comparison, whereas the Control Unit reads
the instructions in memory and determines the flow of data between the ALU, memory and the
input/output devices. A set of registers is also a part of the CPU, these are the high-speed
temporary storage locations that store data that is in use during their processing. This is a
breakdown of labor in the CPU that enables a system to carry out intricate calculations in an
effective and orderly way. One of the most important contributions of von Neumann was the idea
of a centralized processing unit because it offered a clear and single framework of the
implementation of instructions (Null and Lobur, 2014).
Input and Output Mechanisms
61
The von Neumann architecture supports input and output (I/O) systems so that the computer can
interact with the external environment. The keyboards, the sensors, and the scanners allow the
input of the information or commands to the computer. The results of computations are shown or
sent to the output devices that include monitors, printers, and speakers. I/O system is between the
human user and the internal processing of the machine. In von Neumann model, the CPU
communicates with input and output devices via memory, i.e. all incoming data and all the
results are transmitted through shared memory space that both instructions and processing are
executed on. This design makes the communication between the components easier, but may
cause competition to memory access which is also a cause of the von Neumann bottleneck. Still,
the incorporation of I/O mechanisms guarantees the ability of computers to carry out the
practical activities by accepting information, manipulating it, and generating a quality output
(Null and Lobur, 2014).
The Stored-Program Concept
Another new feature of the von Neumann architecture that may be considered the most radical is
the very concept of the stored-program, according to which the instructions of the program are
held in the same memory with data. This enables a computer to be rewritten by just loading a
new code into memory instead of being forced to rewire the hardware as was the case in earlier
machines. This invention made computers not fixed usage machines but general-purpose
machines that can carry out a broad variety of tasks. It also allowed it to allow programs to
interact with other programs or at least change themselves. The idea of the stored-programs
made computers more versatile, flexible and economical; computers began to be used as
sophisticated data processing, simulation, and automation tools rather than a basic calculator. All
62
smartphones and big computing computers at present day still apply this principle in one way or
another (Null & Lobur, 2014).
Appendix B The Fetch-Decode-Execute Cycle.
The von Neumann architecture has its operational backbone that is the fetch-decode-execute
cycle which explains the components with which the CPU executes the instructions in bits. First,
the program counter positions the memory with the address that belongs to the next instruction
and the CPU reads an instruction. It then decodes the instruction to know what operation is
required to be done and what data operation it involves. Lastly, it is the one that carries out the
instruction, and performs the intended operation - moving data, a calculation, or controlling the
I/O devices. Following execution the program counter gets updated and refers to the following
instruction and the cycle recurs. This cycle has the benefit of allowing systematic automatic
execution of programs without the involvement of human beings. The fetch-decode-execute
model is what offers structure and predictability to the process of computing, and it is the
foundation of every CPU design and programming model in the current world (Null and Lobur,
2014).
The Use of These Characteristics to Cognize Computer Systems.
To know how modern computers work, one should understand the seven properties of the von
Neumann architecture. All characteristics define the layer of functionality which is built on the
others and create a consistent system. Single shared memory model describes the co-existence of
data and instructions and the concept of the stored-program demonstrates how computers can
reprogram to do the tasks of more than one task. The CPU architecture and the fetch-decode-
execute cycle explains the logical design of the operations in the processor. Meanwhile, the
63
simplicity and reliability of the digital computation are emphasized, with the use of binary
representation and sequential performance of instructions. Lastly, the input and output systems
illustrate how internal processing is linked into a real-world use.
These features can be used together to produce a conceptual blueprint of both hardware
engineers and software developers. The von Neumann model is utilized by engineers to create
efficient CPUs, memory hierarchies, and buses and by programmers to create a code that works.
Even though the development of modern computing has seen the addition of parallelism, multi-
core computers and specialized architecture, the von Neumann model has remained the standard
of insight when it comes to the processing of information within computers. It gives the reasons
that computing systems act in the manner that they do, causes of performance bottlenecks and
the flow of instructions between software and hardware execution.
26. How does the fetch-decode-execute cycle work?
The basic cycles of operation of the central processing unit (CPU) of a computer are the fetch-
decode-execute cycle. It determines the process by which a computer will access the instructions
available in the memory, process them and execute them to accomplish the duties. Through this
repeated cycle, every program or application that a computer runs goes through and therefore
makes sure that the program instructions are executed in a logical and systematic order. The
fetch-decode-execute cycle represents the ideas of the von Neumann architecture, in which the
data and instructions are consolidated in the same memory and retrieved in a certain sequence
(Null & Lobur, 2014).
There are three major steps in the cycle: fetch, decode, and execute, whereas in modern systems,
the steps to include in the cycle are often store and memory access. All these steps contribute to a
64
particular purpose that is to make sure that the CPU transfers and understands instructions
correctly. The system clock synchronizes these operations and makes this clock offers timing
signals that organize all the activities in the processor. The rate at which the clock runs is
controlled by the number of cycles that the CPU is capable of executing in a second and is
usually expressed in gigahertz (GHz).
The Fetch Stage
The initial process in the cycle is fetch which is the process of retrieving the next instruction to
be implemented in the computer memory. This involves starting at the Program Counter (PC),
which is a special register, which contains the address of the following instruction in a memory.
In the fetch stage, the address that has been stored in the PC is forwarded to the Memory Address
Register(MAR) that controls the main memory of the system (RAM). The CPU then passes a
request by the address bus to access the data stored at the given memory address.
The data obtained in the memory such as the machine code instruction is stored temporally in the
Memory Data Register (MDR) or Memory Buffer Register (MBR). Then it is loaded onto the
Instruction Register (IR) where it will stay until it is decoded. Once the instruction is brought in
the PC is automatically advanced to the next instruction in order to be sure the CPU has a clue as
to where to resume in the following cycle. This step is important as it allows the sequential
execution of instructions, except that a control operation, say a jump or a branch, may switch the
flow of the program (Null and Lobur, 2014).
The Decode Stage
After the instruction is placed in the Instruction Register, the CPU passes into the decode state.
At this stage, the Control Unit (CU) decodes the binary instruction to find out what action should
65
be provided to be done. All the instructions have two primary components: opcode (operation
code) that defines the operation to be performed and the operand that defines the data present or
address in memory to which the operation will be performed.
An example is that an instruction may be to perform an arithmetic operation such as addition,
transfer data between registers, a logical operation such as AND or OR. The control executes the
opaque and drives the remaining sections of the CPU including Arithmetic Logic Unit (ALU),
registers, and memory interfaces in what can be called a sort of preparation. During this step, the
CPU will decide which hardware components are needed to complete the job and the control
lines and signals should be adjusted to provide this coordination. The decoding is referred to as
the interpretation stage and it translates binary machine code into internal control signals which
control the behavior of the processor (Null and Lobur, 2014).
The Execute Stage
Once the decoding is executed the CPU enters the execute phase and then it carries out the
operation defined by the instruction. This operation varies and is dependent on the kind of
instruction. In case it is an arithmetic or a logical operation, the ALU calculates the operation
using the data presented. As an illustration, when the command to be followed is ADD R1, R2
the ALU sums the contents of registers R1 and R2 and stores the output in a register or memory.
When the instruction concerns the transfer of data, the CPU would be able to transfer data
between registers or a register to memory. With control instructions, e.g., a branch or jump, the
CPU can reset the value of the Program Counter to vary the order of execution of instructions.
On input/output operations, there can be the exchange of data between the CPU and other
external devices. After the computation of the data has been completed the CPU can store the
66
result in a register or in memory depending on what type of operation the instruction is. Once
that has happened, the process starts anew, and the Program Counter indicates the subsequent
instruction in the memory (Null & Lobur, 2014).
Other Components and Processes.
There are a number of important elements that help in the seamless functioning of the fetch-
decode-execute cycle. Registers (i.e. PC, MAR, MDR and IR) are important in the short-term
storage of data and addresses during the instruction processing. The address bus, data bus and the
control bus make up the system bus through which, communication occurs between the CPU, the
memory, and the input/output devices. The clock signal helps all the steps within the cycle to be
made in a synchronized way so that millions and billions of cycles can be completed with the aid
of the processor in a second.
The contemporary processors have improved the traditional von Neumann cycle with the concept
of pipelining and parallel processing. In pipelining, several instructions are overlapped, that is,
one instruction is undergoing its decoding process, yet another can be fetch and a third one can
execute. The method makes the CPU more efficient and throughput. Equally, multiprocessor
architecture can be viewed as multi-instruction processors (or multi-core processors) where
several units are used to actively run multiple instructions at the same time. Although these
innovations have occurred, the essentials of the fetch-decode-execute cycle are the same and they
remain the core elements of how processors work (Null & Lobur, 2014).
Fetch-Decode-Execute Cycle Significance.
Fetch-decode- execute cycle is very important since it offers a methodical and consistent
procedure in executing the instructions that allow the computers to execute complicated tasks in
67
a reliable manner. It simplifies the complex electric and logical processes inside the CPU to a
line of simple steps to enable engineers and software developers to comprehend the interaction
between software and hardware. This cycle also fences the stored-program concept which the
von Neumann architecture postulated with, wherein the programs are merely series of
instructions kept in memory.
27. What is meant by parallel computing?
Parallel computing as used is a computation technique whereby two or more processors or
processing units are used to solve a problem in a more effective way. Parallel computing breaks
down a large problem into smaller sub problems which can be processed concurrently, as
opposed to traditional sequential computing where only one task is performed at a time. The
primary aim of parallel computing is to boost their computational speed, performance, and
resource exploitation, in particular, when there are complex and data-heavy tasks that can
otherwise be slow to be implemented with a single processor (Null & Lobur, 2014).
Fundamentally, parallel computing performs on the premise that numerous computing processes
can be reduced into smaller and independent computational processes, which are not reliant on
the outcomes of one another. Such minor tasks then get shared out across several processors or
cores in a system. Every processor works on the task assigned to it at the same time, and when
all the subtasks are finished, the outcome is put collectively to get the final output. This method
enables computers to perform processing that is large in scale significantly quicker than single-
threaded (serial) processing, instructions being executed sequentially.
Parallel computing may be performed on hardware and software design levels. On hardware
level parallelism is through multi-core processors in which more than one processing core as a
68
designer is put in a single chip. Each central processing unit is able to run independent threads or
code concurrently. On the system level, computers on a larger scale, commonly referred to as
supercomputers or distributed systems, are clusters of computers which collaborate to perform
large-scale computations. Software-level parallelism is achieved with the help of parallel
programming where a programmer creates an algorithm that breaks down tasks effectively and
helps communicate effectively between processing units (Null & Lobur, 2014).
Parallel computing models are of different types which are determined by the ways processors
share memory and communicate with each other. There are two principal types of systems,
shared-memory and distributed-memory. In a shared-memory, all processors share a common
memory space. This is a configuration which provides rapid exchange of data however, it needs
to be synchronized properly to avoid this situation where many processors are competing to
modify the same data at the same time. Multi-core CPUs can be found, as well as symmetric
multiprocessing (SMP) systems. On the contrary, distributed-memory systems include a number
of autonomous processors that have own local memory. Processors produce messages that sent
by a network. This is an efficient scaleable model in large systems and is commonly applied in
super computers, as well as the cloud computing environment (Null & Lobur, 2014).
Parallelism may also be categorized on the type of parallelism adopted in parallel computing.
These are the two most prevalent types that include data parallelism and task parallelism. Data
parallelism takes place at the same time an identical operation is made on various chunks of
distributed data. As a case in point, with image processing one can process multiple pixels
simultaneously with the identical algorithm. Task parallelism on the contrary is associated with
assigning different tasks or functions to processors. Processors do different and unique
operations on the same or different data sets. This can be common in pipeline architectures,
69
whereby they attempt to execute the various stages of a process in parallel so as to enhance
throughput.
Parallel computing has one of the greatest strengths in terms of its capability to execute the high-
performance applications that demand high processing power. Parallel processing finds extensive
application in scientific simulations, weather forecasting, artificial intelligence, big data analytics
and computer graphics. As can be used as an example, climate patterns should be modeled using
a large amount of environmental information, and such model would take weeks to process using
a single processor, but the same process can be completed within only a few hours with a parallel
system. In a similar manner, current graphics processing units (GPUs) operate on the principles
of parallel computing to process advanced 3D image rendering, or to train a complex deep
learning model.
Parallel computing however brings in its challenges too. Synchronization is one of the greatest
problems; it is getting all the processors to coordinate their work without any inconsistency or
deadlock of the data. Also, it is not always an easy task to divide a task into parallel components.
There are some problems that have dependencies; that is, a calculation cannot start until a
transition occurs in a different calculation. It impedes the speedup that can be achieved with
parallelism since the speedup is described by the Law of Amputation which means that only a
small part of the overall performance of the program may be achieved with the help of parallel
computing. Managing communication overhead between processors, particularly in distributed
systems, can also lead to reduced efficiency in the case that it is not addressed (Null & Lobur,
2014).
Parallelism is becoming a more common characteristic of modern computing. In the modern
computers, be it desktop computers to smart devices, the computers have multi-core processors
70
which execute multiple functions in the real time. Mass computing Supercomputers and cloud-
based clusters (which use thousands or millions of processing cores operating in parallel) have
performance in the petaflop range (in units of quadrillions of calculations per second). With the
emergence of parallel programming languages like CUDA, the open MP and MPI software
engineers now find it easier to code programs that truly take advantage of these architectures.
28. What is the underlying premise of Amdahl’s Law?
It is a general law of computer architecture and parallel computing, and applies to describing the
theoretical scale limits of the performance improvement when a section of a system is improved
or parallelized. Put forward by the computer scientist Gene Amdahl in 1967, the law highlights
the fact that the maximum speed at which a program can be executed in parallel is dictated by the
fraction of the program, which cannot be completed in parallel. Principally, regarding the
existence of as many processors or computational resources as possible added to a system, the
cumulative effect of improvement will steadily come to a point of diminishing returns because of
these inelastic sequential operations (Null & Lobur, 2014).
The general assumption made in the Amdahl Law is that the computer program itself is
composed of two distinct parts, a parallelizable part (that is, this part can be split into two or
more distinct parts and executed in parallel by more than one processor) and a non-parallelizable
part (that is, the part that must be performed in a fixed order by one processor). The balance in
these two parts determines the overall time on which the program is executed. The acceleration
of the parallel portion may increase substantially but the sequential portion is still a bottleneck
which eventually restricts the possible speedup. The Amdal Law can be mathematically defined
to say:
71
Speedup = 1 / [(1 P) + (P / N)]
Where:
P is the proportion of the program which is parallelizable,
Where (1 -P) is the sequential portion, and.
N denotes the quantity of the processors.
This formula shows that the greater the value of N, the greater the effect of the sequential
portion. With a 90 percent parallelizable program (P = 0.9) even an infinite number of processors
would only give a possible maximum theoretical speedup of 1 / (1 0.9) = 10 times faster. It
implies that the performance increase will not be more than ten times no matter how many
processors are added since still 10 percent of the execution time will need to be performed in a
straight line (Null and Lobur, 2014).
An important principle in computing performance is presented in the Amdahl Law. At first sight,
a performance improvement can be observed with the addition of more processors or cores. The
benefits however start to diminish, with the increase of the number of processors, as the
sequential part becomes larger in the total execution time. As an example, the computation time
could greatly decrease as the number of processors is doubled initially, but additional processors
added would decrease the payback less and inexpensively. This concept plays an imperative role
in computer architecture and the design of a system as system designers seek how to distribute
the hardware resources optimally.
In addition to parallel computing, the law of Amdahl is applicable to optimization of the system
in general. When one part of a system is being improved, the overall performance will be
72
determined by the size of the role played by that component of the total execution time. An
example can be given such that making a CPU faster would not significantly make the
performance faster since the program is a widespread waiting in memory access or disk input /
output. Therefore, the law gives emphasis to the value of defining and exploiting the real
bottlenecks in a system, versus the effort to have localized improvements.
Although the Amdahl Law is a corrective to the real expectations of performance, it can also be
used as the steering principle to design an efficient computing system. It is used by engineers and
programmers to calculate the possible benefits of parallelizing and whether it should be worth
the price of adding more hardware resources. The law serves to remind the system designers that
even with the parallel computing, the processing delays due to sequential processing or due to
communication overhead between the processors cannot be completely eliminated (Null &
Lobur, 2014).
It should be noted, however, that the Amdahl Law presupposes a constant workload and
therefore the size of the cumulative problem size does not decrease with the addition of more
processors. Practically this is not always true. In bigger and more complicated problems, more
alternative models like Gustafsons Law can be used to give an alternative perspective that
additional size of the problem and the number of processors can result in higher overall
efficiency. Nevertheless, the Law of Amdahl is still fundamental in the comprehension of the
theoretical boundaries of the performance enhancement in fixed tasks of computation.
73
Reference
Null, L., & Lobur, J. (2014). The Essentials of Computer Organization and Architecture (4th
ed.). Jones & Bartlett Publishers.
Students also viewed