Saturday 31 August 2013

2nd Week including Duties of Computer Architect

Computer Architecture 2nd Week


Duties of Computer Architect

Computer architects are primarily tasked with increasing overall system performances to meet the needs of businesses and other organizations. Their responsibilities can range from designing gaming software to improving meteorological models for weather forecasting. Computer architects put together individual components to build new systems that meet cost, performance and functional goals. They research, design, develop and test computers and related equipment. This may include designing supercomputers for government agencies or new business tools, such as phone applications. Some write algorithms to help computer operations run more smoothly and effectively.
A Computer Architect usually has the following responsibilities:
1.       Overall design - the blueprints which provide the map
2.       High level planning for the development - overall steps for creation of the solution from the blueprints
3.       Complete models and simulations, using manual or automated tools, to analyze or predict system performance under different operating conditions.
4.       Document design specifications, installation instructions, and other system-related information.
5.       Identify system data, hardware, or software components required to meet user needs.
6.       Provide advice on project costs, design concepts, or design changes.
7.       Verify stability, interoperability, portability, security, or scalability of system architecture.
8.       Communicate with staff or clients to understand specific system requirements.
9.       Design and conduct hardware or software tests.
10.   Direct the installation of operating systems, network or application software, or computer or network hardware.
11.   Evaluate current or emerging technologies to consider factors such as cost, portability, compatibility, or usability.
12.   Evaluate existing systems to determine effectiveness and suggest changes to meet organizational requirements.
13.    
14.   Collaborate with engineers or software developers to select appropriate design solutions or ensure the compatibility of system components.
15.   Investigate system component suitability for specified purposes and make recommendations regarding component use.
16.   Provide technical guidance or support for the development or troubleshooting of systems.
17.   Communicate project information through presentations, technical reports or white papers.
18.   Configure servers to meet functional specifications.
19.   Develop or approve project plans, schedules, or budgets.
20.   Direct the analysis, development, and operation of complete computer systems.
21.   Establish functional or system standards to ensure operational requirements, quality requirements, and design constraints are addressed.
22.   Monitor system operation to detect potential problems.
23.   Provide guidelines for implementing secure systems to customers or installation teams.
24.   Define and analyze objectives, scope, issues, or organizational impact of information systems.
25.   Develop system engineering, software engineering, system integration, or distributed system architectures.
26.   Perform ongoing hardware and software maintenance operations, including installing or upgrading hardware or software.
27.   Research, test, or verify proper functioning of software patches and fixes.
28.   Train system users in system operation or maintenance.
29.   Develop application-specific software.

Memory Mapping

A memory map is a massive table that comprises complete information about how the memory is structured in a computer system. A memory map works something like a very large office organizer. In the map, each computer file has a unique memory address reserved especially for it, so that no other data can inadvertently overwrite or corrupt it.
In order for a computer to function properly, its operating system must always be able to access the right parts of its memory at the right times. When a computer first boots up (starts), the memory map tells the OS how much memory is available. As the computer runs, the memory map ensures that data is always written to, and read from, the proper places. The memory map also ensures that the computer's debuggers can resolve memory addresses to actual stored data.

Taxonomy of Computer

Flynn Taxonomy:

The four classifications defined by Flynn are based upon the number of concurrent instruction (or control) and data streams available in the architecture:

Single Instruction, Single Data stream (SISD)

A sequential computer which exploits no parallelism in either the instruction or data streams. Single control unit (CU) fetches single Instruction Stream (IS) from memory. The CU then generates appropriate control signals to direct single processing element (PE) to operate on single Data Stream (DS) i.e. one operation at a time
Examples of SISD architecture are the traditional uniprocessor machines like a PC (currently manufactured PCs have multiple processors) or old mainframes.

Single Instruction, Multiple Data streams (SIMD)

A computer which exploits multiple data streams against a single instruction stream to perform operations which may be naturally parallelized. For example, an array processor or GPU.

Multiple Instructions, Single Data stream (MISD)

Multiple instructions operate on a single data stream. Uncommon architecture which is generally used for fault tolerance. Heterogeneous systems operate on the same data stream and must agree on the result. Examples include the Space Shuttle flight control computer.[citation needed]

Multiple Instruction, Multiple Data streams (MIMD)

Multiple autonomous processors simultaneously executing different instructions on different data. Distributed systems are generally recognized to be MIMD architectures; either exploiting a single shared memory space or a distributed memory space. A multi-core superscalar processor is an MIMD processor.

Semantic Gap

The difference between the complex operations performed by high-level language constructs and the simple ones provided by computer instruction sets. It was in an attempt to try to close this gap that computer architects designed increasingly complex instruction set computers.


No comments:

Post a Comment