Компютърна архитектура

Компютърната архитектура е съвкупност от характеристики и параметри, определящи функционалната, логическа и структурна организация на компютрите. Това понятие включва принципите на построяване и функциониране на компютърните системи, заедно с основните програмни средства за работата му. Архитектурата на съвременните компютърни системи е многостепенна йерархия на апаратните и програмни средства, които изграждат системата.[1]

Според друго определение[2] това е набор от дисциплини, описващи функционалността, организацията и реализацията на компютърните системи. Някои я дефинират като описваща програмния модел и способностите на компютъра, но не и конкретната им реализация.[3] Според други компютърната архитектура включва набора от инструкции, микроархитектурата, организацията на логиката и реализацията.[4]

Според IEEE (на английски: Institute of Electrical and Electronics Engineers) компютърната архитектура е набор от хардуерни и софтуерни компоненти и интерфейсите между тях, които определят организационната структура на компютърната система.[5] Компютърната архитектура може да бъде разделена на две части – архитектура на хардуера и архитектура на софтуера. Всяка една от тези две части по-нататък може да се разглежда като съвкупност от архитектури на компонентите и модулите, от които е изградена.

За първи път понятието се споменава в кореспонденцията между Чарлз Бабидж и Ада Лъвлейс, където се описва Analytical engine, вид сметачна машина. Два други важни исторически примера са:

  • статията на Джон фон Нойман от 1945 г., „First Draft of a Report on the EDVAC“, в която се описва организацията на логическите елементи и
  • по-подробната работа на Алън Тюринг „Proposed Electronic Calculator“, също от 1945, в която се цитира статията на фон Нойман.[6]

Самият термин „архитектура“ в компютърната литература е въведен през 1959 г. от служителите на IBM Джонсън (Lyle R. Johnson), Кан (Mohammad Usman Khan) и Брукс (Frederick P. Brooks, Jr.) Джонсън трябвало да напише съобщение за разработвания суперкомпютър IBM 7030 Stretch за научната лаборатория в Лос Аламос. За да опише в детайли форматите, типовете инструкции, параметрите на хардуера и подобренията на скоростта, вместо машинна организация той употребява израза системна архитектура.

Впоследствие Брукс пише в книгата „Planning a Computer System: Project Stretch, ed. W. Buchholz“, 1962:

Компютърната архитектура, както и другата, е изкуството да се определят нуждите на ползвателя и тогава компютърът да се проектира така, че да отговори на тези нужди доколкото е възможно по-ефективно в рамките на икономическите и техническите ограничения

F. Brooks, „Planning a Computer System: Project Stretch, ed. W. Buchholz“
В оригинал
Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints.

Брукс участва и в разработката на серията компютри IBM System/360 (днес IBM zSeries), в които под „архитектура“ се подразбира „това, което потребителят трябва да знае“.

Първите компютърни архитектури са създадени на хартия и след това директно изградени с хардуер.[7] По-късно прототипите на компютърни архитектури се изграждат въз основа на т.нар. Transistor–Transistor Logic (TTL) – такива са прототипите на Motorola 6800 и PA-RISC, които се тестват, донастройват и тогава се изграждат хардуерно.

Към 1990-те обичайната практика е новите компютърни архитектури да се строят, тестват и донастройват в рамките на съществуваща архитектура–симулатор.

Дисциплината компютърна архитектура се разделя на три основни подкатегории:[8]

  1. наборът от инструкции (на английски: Instruction Set Architecture, ISA) определя какъв машинен код чете процесорът и как го обработва, включително размера на машинната дума, начина на адресиране на паметта (memory address modes), процесорните регистри (processor registers), и типа данни.
  2. микроархитектурата определя как конкретният централен процесор ще осъществява набора от инструкции.[9] Например размерът на процесорната кеш-памет най-общо няма нищо общо с набора от инструкции.
  3. системният дизайн включва всички останали хардуерни компоненти на компютъра и други въпроси като:

В големите компании, производители на процесори като Intel, се използват и други по-тесни понятия като макроархитектура, асемблерски набор от инструкции, пин архитектура

  Тази страница частично или изцяло представлява превод на страницата Computer architecture в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​

  1. Компютърни архитектури // Архивиран от оригинала на 2015-10-26. Посетен на 10 август 2015.
  2. ((en)) Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering. Association for Computing Machinery, 2004. с. 60. Computer architecture is a key component of computer engineering and the practicing computer engineer should have a practical understanding of this topic... Архив на оригинала от 2019-06-12 в Wayback Machine.
  3. ((en)) Clements, Alan. Principles of Computer Hardware. Fourth. с. 1. Architecture describes the internal organization of a computer in an abstract way; that is, it defines the capabilities of the computer and its programming model. You can have two computers that have been constructed in different ways with different technologies but with the same architecture.
  4. ((en)) Hennessy, John, Patterson, David. Computer Architecture: A Quantitative Approach. Fifth. с. 11. This task has many aspects, including instruction set design, functional organization, logic design, and implementation.
  5. IEEE, „IEEE Standard Computer Dictionary; A Compilation of IEEE Standard Computer Glossaries“, Standard Coordinating Committee of the IEEE Computer Society, ISBN-1-55937-079-3, 1990
  6. Възпроизведена в B. J. Copeland (Ed.), „Alan Turing's Automatic Computing Engine“, OUP, 2005, pp. 369 – 454.
  7. ACE претърпява седем преработки на хартия за година, преди започването на работа по прототипа през 1948. B. J. Copeland (Ed.), „Alan Turing's Automatic Computing Engine“, OUP, 2005, p. 57
  8. John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach. Third. Morgan Kaufmann Publishers.
  9. Laplante, Phillip A. Dictionary of Computer Science, Engineering, and Technology. CRC Press, 2001. ISBN 0-8493-2691-5. с. 94 – 95.