The Role of Computer Architecture in Computer Engineering.
Computer Architecture: The Definition
The coordination of abstract levels of a processor under constantly and rapidly changing set
of forces, involving design, measurement and evaluation.
As the definition suggest, computer architecture deals with mainly three elements.
1. Instruction Set Architecture
2. Computer Organization
3. Hardware
Instruction Set Architecture is the interface that is laid between the software and hardware,
or rather; it can be expressed as a set of instructions that bridges the gap between high level
software and assembler. It contains instructions to interpret how a command should be
executed by a processor. For a processor to understand a command, it should be in binary,
thus ISA deals with encoding these values. Further, ISA deals with data types,
registers, addressing modes, memory organization etc. Registers are high speed storage
slots which can be accessed by a processor. Data as well as Instructions are stored in a
register. Addressing mode refers how each instruction specifies the location for its data or
operands. Memory organization specifies how instructions interact with the memory.
The Computer Organization refers to the constituent parts of the processor and how these
interconnect and interoperate to implement the ISA. It acts as a bridging between ISA and
Hardware.
The Hardware is the way actual hardware components are designed. It requires the ISA and
Computer Organization for the design process. Basically it deals with how the hardware
elements are interconnected with each other in an optimised manner to execute the
operations as ISA demands.
That been said, moving on to the role of Computer Architecture will be a broad area. In
computer designs, the first law is that, “Nothing Comes Free”. If you have to optimize
something, it must be done in the expense of another thing. For an example, if you want to
increase the speed of access to a memory element, it should be reduced in size, thus
showing that, the speed is increased in the expense of the storage.
This has always been a startling problem for the Computer Engineers to deal with because;
no design can be absolutely completely optimized, because optimization depends on the
purpose of the element. Even when the purpose is determined, heuristic optimization may
occur to yield an optimized model, but it still might not be the best model. The role of
Computer Architecture is mainly to gain this optimization in the designing process in order
to get the maximum benefit of the resources.
Computer Architecture is very important in yielding performance biased products. For an
example, if you are a software engineer and you are working on a project, you need to know
the processing ability of the target processors. If it is some old processors, you need to
optimize your software in order to gain the most possible outcome from those processors
while keeping the performance indicators intact.
Further, if you are in to developing utility software; say multimedia decoder, you should
know what would make the best use of the processor and place that in to the right section.
You need to know the cache inefficiencies n the traffic flow that occurs and have to mitigate
it in order to optimize the performance it. Further, if you know enough about the
architecture to dip into design, then you can design and enhance the architecture in order
to work best with the implied project.
Another important use of knowing how the internal systems work is in making a buying
decision. Say you are the techie of a company and it needs you to buy products for a specific
task. The processor you are going to buy should be cost effective as well as performance
biased for that task. In order to do that as their engineer, you need a thorough
understanding of the architecture of the processor and in which way they would facilitate
the implementation of the required program. For an example, some processors have
internal circuitry that makes them perform better than other chips running at the same
clock speed in certain specific tasks while they outperform the latter by a considerable
margin in other processes. Sometimes certain tasks need additional components in the
processor as well; for an example, to implement a virtual system, a processor needs a
special feature called VT to perform the real time tasks efficiently and with 100% speed as if
it were performed in the real system which has become a trend dealing with security issues.
Thus you need to analyse it in a cost beneficial way and choose what should be the best for
the company. Further, you may have to consider the power consumption and the area cost
of the processor as well which is governed by its architecture. A person who is competent in
Computer Architecture would be able to perform this task efficiently.
Even as an average buyer, you can still make your buying decision is the most cost‐and‐
performance effective way. For an example, as an average user, buying a 64‐bit processor
would not add much benefit compared to its cost. You can go for that if that is task specific
and is essential.
I would like to conclude this report by the fact that it is always handy to know how the
‘thing’ you are writing programs to; works, not just thinking it like a ‘magic black box’ which
gives the required output when you give an input. It may rather be the objective of a
programmer, but it should not be the objective of a Computer Engineer. It would be even
better if you can, as a Computer Engineer, get into the designing process of the architecture
itself starting from ISA and going all the way down to physical implementation of the
circuitry. After all we should not forget that the mostly used embedded microprocessor as
of 2009; the ARM: Acorn RISC Machine was inspired by a project that was initiated by the
Berkeley RISC project that was carried out by a group of undergraduates with the inspection
Professor David Patterson in University of Berkeley.
Computer Architecture: The Definition
The coordination of abstract levels of a processor under constantly and rapidly changing set
of forces, involving design, measurement and evaluation.
As the definition suggest, computer architecture deals with mainly three elements.
1. Instruction Set Architecture
2. Computer Organization
3. Hardware
Instruction Set Architecture is the interface that is laid between the software and hardware,
or rather; it can be expressed as a set of instructions that bridges the gap between high level
software and assembler. It contains instructions to interpret how a command should be
executed by a processor. For a processor to understand a command, it should be in binary,
thus ISA deals with encoding these values. Further, ISA deals with data types,
registers, addressing modes, memory organization etc. Registers are high speed storage
slots which can be accessed by a processor. Data as well as Instructions are stored in a
register. Addressing mode refers how each instruction specifies the location for its data or
operands. Memory organization specifies how instructions interact with the memory.
The Computer Organization refers to the constituent parts of the processor and how these
interconnect and interoperate to implement the ISA. It acts as a bridging between ISA and
Hardware.
The Hardware is the way actual hardware components are designed. It requires the ISA and
Computer Organization for the design process. Basically it deals with how the hardware
elements are interconnected with each other in an optimised manner to execute the
operations as ISA demands.
That been said, moving on to the role of Computer Architecture will be a broad area. In
computer designs, the first law is that, “Nothing Comes Free”. If you have to optimize
something, it must be done in the expense of another thing. For an example, if you want to
increase the speed of access to a memory element, it should be reduced in size, thus
showing that, the speed is increased in the expense of the storage.
This has always been a startling problem for the Computer Engineers to deal with because;
no design can be absolutely completely optimized, because optimization depends on the
purpose of the element. Even when the purpose is determined, heuristic optimization may
occur to yield an optimized model, but it still might not be the best model. The role of
Computer Architecture is mainly to gain this optimization in the designing process in order
to get the maximum benefit of the resources.
Computer Architecture is very important in yielding performance biased products. For an
example, if you are a software engineer and you are working on a project, you need to know
the processing ability of the target processors. If it is some old processors, you need to
optimize your software in order to gain the most possible outcome from those processors
while keeping the performance indicators intact.
Further, if you are in to developing utility software; say multimedia decoder, you should
know what would make the best use of the processor and place that in to the right section.
You need to know the cache inefficiencies n the traffic flow that occurs and have to mitigate
it in order to optimize the performance it. Further, if you know enough about the
architecture to dip into design, then you can design and enhance the architecture in order
to work best with the implied project.
Another important use of knowing how the internal systems work is in making a buying
decision. Say you are the techie of a company and it needs you to buy products for a specific
task. The processor you are going to buy should be cost effective as well as performance
biased for that task. In order to do that as their engineer, you need a thorough
understanding of the architecture of the processor and in which way they would facilitate
the implementation of the required program. For an example, some processors have
internal circuitry that makes them perform better than other chips running at the same
clock speed in certain specific tasks while they outperform the latter by a considerable
margin in other processes. Sometimes certain tasks need additional components in the
processor as well; for an example, to implement a virtual system, a processor needs a
special feature called VT to perform the real time tasks efficiently and with 100% speed as if
it were performed in the real system which has become a trend dealing with security issues.
Thus you need to analyse it in a cost beneficial way and choose what should be the best for
the company. Further, you may have to consider the power consumption and the area cost
of the processor as well which is governed by its architecture. A person who is competent in
Computer Architecture would be able to perform this task efficiently.
Even as an average buyer, you can still make your buying decision is the most cost‐and‐
performance effective way. For an example, as an average user, buying a 64‐bit processor
would not add much benefit compared to its cost. You can go for that if that is task specific
and is essential.
I would like to conclude this report by the fact that it is always handy to know how the
‘thing’ you are writing programs to; works, not just thinking it like a ‘magic black box’ which
gives the required output when you give an input. It may rather be the objective of a
programmer, but it should not be the objective of a Computer Engineer. It would be even
better if you can, as a Computer Engineer, get into the designing process of the architecture
itself starting from ISA and going all the way down to physical implementation of the
circuitry. After all we should not forget that the mostly used embedded microprocessor as
of 2009; the ARM: Acorn RISC Machine was inspired by a project that was initiated by the
Berkeley RISC project that was carried out by a group of undergraduates with the inspection
Professor David Patterson in University of Berkeley.

0 comments:
Post a Comment