Кто предложил концепцию компьютера с хранимой программой
- ЖАНРЫ 361
- АВТОРЫ 285 018
- КНИГИ 680 471
- СЕРИИ 26 045
- ПОЛЬЗОВАТЕЛИ 626 753
Сорок лет назад для обозначения новой научной дисциплины французом Филиппом Дрейфусом был введен термин «информатика». Независимо от него, год спустя этот термин был предложен Ф. Е. Темниковым в России. Синонимичный термин — «computer science» в эти же годы в США ввел Джордж Форсайт.
С тех пор новая научная дисциплина начала бурно развиваться. В подавляющем большинстве школ и гимназий, лицеев и колледжей, институтах и университетах мира стали преподавать информатику. Причем, несмотря на большое множество вариантов дефиниций новой дисциплины, предложенных в различных публикациях за прошедшие десятилетия, в настоящее время ее рассматривают как научную дисциплину, включающую три составляющих: hardware, software и knowledgeware. А проще говоря, под информатикой понимают все то, что связано с созданием и использованием компьютеров, компьютерных систем и сетей, иными словами, компьютерный мир является основой информатики.
Возникает естественный вопрос, а кто те люди — ученые, инженеры и изобретатели, которые заложили краеугольный камень в основание этого мира, кто своими трудами и исследованиями успешно способствовал его развитию.
Работая над книгой по истории компьютеров, вышедшей в 1996 году, автор параллельно, по крупицам, стал собирать сведения из различных источников об этих людях — пионерах компьютерной науки и техники. В результате появилась предлагаемая читателю новая книга.
Источниками, из которых были почерпнуты сведения о многих персоналиях, послужили многочисленные публикации отечественной и зарубежной компьютерной периодики; книга Р. С. Гутера и Ю. Л. Полунова «От абака до компьютера» о некоторых предшественниках компьютерной эпохи; книга Роберта Слейтера «Portraits in Silicon», основанная на интервью со знаменитыми личностями компьютерной истории Америки; книга воспоминаний известного советского ученого, члена-корреспондента Национальной академии наук Украины Б. Н. Малиновского «История вычислительной техники в лицах», посвященная отечественным ученым; статьи автора из рубрики «История информатики в лицах», которую он вел на протяжении ряда лет в журнале «Информатика и образование»; статьи автора из рубрики «Языки программирования», которую он вел вместе с М. П. Малыхиной в 1988–1991 годах в периодическом издании «Вычислительная техника и ее применение».
Конечно, автор отдает себе отчет в том, что далеко не все ученые и изобретатели, имеющие отношение к затрагиваемой проблеме и заслуживающие в связи с этим внимание, включены в книгу, но хочется надеяться, что все главные действующие лица компьютерной истории нами здесь представлены и никто не забыт. В дальнейшем, если будет предоставлена возможность переиздания книги, автор учтет все отзывы, замечания и пожелания читателей.
Книга адресована учащимся и учителям школ, гимназий и лицеев, студентам и преподавателям колледжей, институтов, академий и университетов в качестве пособия и справочного руководства при изучении дисциплины «Информатика», а также всем тем, кто интересуется историей и эволюцией компьютерного мира.
Автор выражает свою признательность и благодарность О. Харченко, Е. Петровой, Г. Ворошиловой, В. Частиковой, М. Янаевой за помощь в подготовке рукописи книги к изданию.
Автор благодарит рецензентов за ряд ценных замечаний, которые способствовали улучшению книги.
В наш век, когда наука столь глубоко изменяет человеческое существование, вполне естественен тот интерес, который возбуждает жизнь ученого, ход его мыслей, сущность его исследований.
Прослеживая последовательность событий компьютерной истории, условно можно выделить несколько значимых периодов ее развития, а именно: период, предшествующий компьютерной эпохе; период создания первых компьютеров, появления первых языков программирования, становления компьютерной индустрии; период расцвета компьютерной индустрии, появления компьютерных систем и сетей, персональных компьютеров, создания операционных систем и объектно-ориентированных языков программирования, создания новых компьютерных технологий.
В соответствии с этими периодами и их фрагментами настоящая книга разделена на пять глав.
Первая глава посвящена предшественникам и концептуалистам. Эпоха, предшествующая компьютерам, исторически начиналась с механизации вычислений. Создателями первых механических калькуляторов были Блез Паскаль, Вильгельм Шиккард и Готфрид Вильгельм Лейбниц, причем Лейбниц, по-видимому, был первым, кто выдвинул идею использования двоичной системы счисления в арифметических машинах. Придавая большое значение двоичной системе, Лейбниц был склонен рассматривать ее как универсальный логический язык, однако далее арифметизации логики он не пошел. Решающий вклад в алгебраизацию логики сделал английский ученый Джордж Буль. Одним из основных принципов построения компьютера является принцип программного управления, и впервые его выдвинул в своем проекте Аналитической машины Чарльз Бэббидж, которого часто называют «дедушкой» компьютера. После Бэббиджа значительный вклад в технику автоматизации обработки информации внес Герман Голлерит, основоположник счетно-перфорационной техники — непосредственной предшественницы релейных компьютеров. Работая над проблемой Гильберта («проблема разрешимости»), английский математик Алан Тьюринг в 1936 году создал умозрительную машину («машину Тьюринга»), явившуюся по своему логическому устройству прообразом цифровых компьютеров, которые появились только десять лет спустя. И наконец, Клод Шеннон, работая над своей диссертацией, пришел к выводу, что булева алгебра может с успехом использоваться для анализа и синтеза переключателей и реле в электрических схемах. Считается, что работы Тьюринга и Шеннона стали поворотным моментом в истории информатики и компьютерной техники.
Во второй главе повествуется об изобретателях компьютеров. Первым стоит имя немецкого изобретателя Конрада Цузе, создавшего первый программируемый компьютер. Джон Атанасов и Клиффорд Берри были признаны изобретателями электронного компьютера — по решению суда 1973 года, хотя в 1996 году весь компьютерный мир отмечал пятидесятилетие первого электронного компьютера ENIAC, созданного Джоном Маучли и Джоном Преспером Эккертом. Джон П. Эккерт был первым, кто выдвинул идею хранимой в памяти программы, которая считается наиболее важной идеей компьютерной архитектуры.
В этой главе повествуется о Говарде Айкене, ученом, который воплотил идеи и неосуществленные проекты Чарльза Бэббиджа, хотя с этими проектами он познакомился гораздо позднее; о знаменитом математике Джоне фон Неймане, описавшем основные элементы и логическую структуру компьютера; о двух английских ученых Морисе Уилксе и Томе Килбурне, создателях первых компьютеров с хранимой программой, а также о Джее Форрестере, впервые разработавшем память на ферритовых сердечниках и создавшем систему ПВО SAGE. И наконец, в данной главе рассказывается об отечественных ученых: Сергее Алексеевиче Лебедеве — основоположнике отечественной вычислительной техники, Исааке Семеновиче Бруке — родоначальнике отечественных малых вычислительных и управляющих машин и о Николае Петровиче Брусенцове — создателе первого в мире троичного компьютера.
Выдающимся конструкторам компьютеров и компьютерных систем посвящена третья глава. В ней рассказывается о таких личностях компьютерной истории, как Джин Амдал, Гордон Белл, Сеймур Крей, Тед Хофф, Стив Джобс и Стив Возняк, Адам Осборн и Клайв Синклер — архитекторах и конструкторах мэйнфреймов, миникомпьютеров, суперкомпьютеров, микропроцессоров, персональных и портативных компьютеров.
Отечественные конструкторы вычислительных машин, систем и комплексов представлены такими известными именами, как Башир Искандарович Рамеев, Михаил Александрович Карцев, Николай Яковлевич Матюхин, Виктор Михайлович Глушков, Георгий Павлович Лопато.
Кто предложил концепцию компьютера с хранимой программой
Внимание!
Зелёным цветом выделен правильный ответ
Если выделено несколько вариантов, значит все они являются верными.
- Д. Буль
- К. Шеннон
- А. Тьюринг
- Д. Нейман
Если у вас в тесте остались нерешённые вопросы, то обязательно воспользуйтесь поиском по нашей базе тестов. С большой долей вероятности они там есть.
Большая Энциклопедия Нефти и Газа
В соответствии с принципом хранимой программы все команды, составляющие программу, размещаются в виде специальных кодов в памяти машины. Для хранения команд может быть использована специальная память. В современных вычислительных машинах программа хранится в том же устройстве машины, где размещена и перерабатываемая информация. 5
Память большого объема и принцип хранимой программы не только позволяют применять длинные программы, но и дают другие существенные преимущества. 6
Неймана заключались в необходимости использования двоичной системы счисления, иерархической организации памяти машины, создания арифметического устройства на основе схем, реализующих операцию сложения ( создание специализированных устройств для выполнения других операций нецелесообразно) и др. Одной из главных концепций Дж. Неймана был принцип хранимой программы — программа хранится в памяти машины точно так же, как и числа. Это позволяет оперировать с закодированной в двоичном коде программой так же, как с числами, что дает возможность модифицировать программу по ходу вычислений. Был также предложен принцип параллельной организации вычислений, когда операции над числом осуществляются одновременно по всем его разрядам. 7
Естественным обобщением различных форм организации вычислительного процесса явился принцип хранимой программы , сформулированный известным американским математиком Джоном фон Нейманом в 1946 г. Согласно этому положению программа кодируется и хранится в памяти машины так же, как и другая информация. Последовательность считывания и дешифровки составляющих программу указаний обуславливается, с одной стороны, организацией запоминающего устройства, а с другой — типом самих указаний. Так как программа в закодированном виде размещается в том же запоминающем устройстве, что и числа, над составляющими ее указаниями можно производить арифметические и логические операции, подобно тому, как это делается с числами. 8
Первые компьютеры ( тогда они еще назывались электронно-вычислительными машинами — ЭВМ) появились в конце 40 — х гг. Это были ЭНИАК, разработанный в Пенсильванском университете в США в 1945 г., и ЭДСАК, построенный в Кембриджском университете в 1949 г. Элементная база, на основе которой были построены эти ЭВМ, появилась ( благодаря достижениям физики. Так, диод ( двухэлектродная электронная лампа) была изобретена в 1904 г., триод ( трехэлектродная электронная лампа) появилась в 1906 г., а ламповый триггер ( электронное реле) — в 1918 г. ЭНИАК имела автоматическое программное управление, но внутреннее запоминающее устройство для хранения команд у этой ЭВМ отсутствовало. На ЭВМ ЭДСАК был впервые реализован принцип хранимой программы , сформулированный в 1945 — 1946 гг. американским ученым Дж. Основные положения данного принципа следующие: 1) команда и числа однотипны по форме представления ( записаны в двоичном коде); 2) числа размещаются в том же запоминающем устройстве, что и программа; 3) благодаря числовой форме записи команд программы ЭВМ может производить операции над командами. 9
Нейман подготовил проект машины EDVAC. Этот принцип состоял в том, что программы для ЭВМ должны были храниться в памяти практически в том же виде, что и данные. Хотя по-прежнему неизвестно, кому принадлежала первоначальная идея хранимой программы — Мокли и Эке — — или фон Нейману, — в упомянуто -, роекте эта идея впервые изложена письменном виде. Вне зависимости от авторства принцип хранимой программы лег s основу конструкции машины EDVAC и был использован во всех последующих ЭВМ. 10
Принципы фон Неймана
- Использование двоичной системы счисления в вычислительных машинах. Преимущество перед десятичной системой счисления заключается в том, что устройства можно делать достаточно простыми, арифметические и логические операции в двоичной системе счисления также выполняются достаточно просто.
- Программное управление ЭВМ. Работа ЭВМ контролируется программой, состоящей из набора команд. Команды выполняются последовательно друг за другом. Созданием машины с хранимой в памяти программой было положено начало тому, что мы сегодня называем программированием.
- Память компьютера используется не только для хранения данных, но и программ. При этом и команды программы и данные кодируются в двоичной системе счисления, т.е. их способ записи одинаков. Поэтому в определенных ситуациях над командами можно выполнять те же действия, что и над данными.
- Ячейки памяти ЭВМ имеют адреса, которые последовательно пронумерованы. В любой момент можно обратиться к любой ячейке памяти по ее адресу. Этот принцип открыл возможность использовать переменные в программировании.
- Возможность условного перехода в процессе выполнения программы. Не смотря на то, что команды выполняются последовательно, в программах можно реализовать возможность перехода к любому участку кода.
Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. А вот аппаратура, конечно же, остается неизменной, и очень простой.
Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров после несколько минутной установки на жесткий диск.
Фоннеймановская структура ЭВМ. Принцип хранимой в памяти программы
Лекция является вводной и в ней рассматриваются вопросы архитектур компьютера, формулируются требования к ОС, вводятся основные понятия и абстракции операционной системы.
Более конкретно рассматриваются следующие вопросы:
· Фоннеймановская архитектура ЭВМ. Принцип хранимой в памяти программы.
· Процедура выполнения команд.
· Устройства ввода-вывода и организация памяти.
· Виды архитектур современных вычислительных систем.
Предложенная Von Neumann архитектура ЭВМ основывается на концепции хранимой программы и последовательных вычислениях. В ней определены следующие основные устройства: арифметико-логическое устройство (АЛУ), память (ЗУ), управляющее устройство (УУ), устройство ввода данных в машину, устройство вывода из нее результатов расчета и устройство взаимодействия с пользователем для приема управляющих команд.
Арифметико-логическое устройство (АЛУ) осуществляет арифметические и логические преобразования над поступающими в него машинными словами, т. е. кодами определенной длины.
Память хранит информацию, передаваемую из других устройств, в том числе поступающую в машину извне через устройство ввода, и выдает во все другие устройства информацию, необходимую для исполнения вычислительного процесса. По тем временам память была представлена: быстродействующей основной или оперативной (внутренней) памятью (ОП) и более медленной, но значительно большей по объему внешней памятью (ВнП). Принципиально важно, что память состоит из ячеек, каждая из которых имеет адрес, по которому к ней может осуществляться доступ. Непосредственно в вычислительном процессе участвует только ОП, и лишь после окончания отдельных этапов вычислений между ВнП и ОП осуществляется обмен информацией, необходимый для следующего этапа решения задачи.
Управляющее устройство (УУ) автоматически управляет вычислительным процессом, посылая всем другим компонентам управляющие команды и сигналы, предписывающие им конкретные действия.
УУ осуществляет автоматическое управление вычислительным процессом на основе принципа программного управления, являющегося основной особенностью ЭВМ. Он тесно связан с другим принципом хранимой в памяти программы. Согласно этому принципу команды программы, закодированные в цифровом виде, хранятся в памяти наравне с операндами. В команде указываются не операнды непосредственно, а соответствующие им адреса ОП, и адреса ячеек для помещения результата операции.
Поскольку команды представляются в форме чисел, то над командами также могут выполняться операции (“модификация команд”).
Команды выполняются в порядке их расположения в последовательных ячейках памяти, кроме команд безусловного и условного переходов, изменяющих этот порядок.
В настоящее время известна и используется гарвардская архитектура (Harvard architecture), отличающаяся раздельной памятью программ и данных для конвейерной обработки, а также раздельными шины адреса и данных для доступа к ним. Команда и операнд могут считываться одновременно за один машинный такт, что уменьшает число тактов, требуемых для выполнения машинной команды), чем отличается от фон-неймановской архитектуры. Развитие этого направления представляет модифицированная гарвардская архитектура (modified Harvard architecture), в которой применяются три банка памяти, со своими собственными наборами шин.
В этой связи представляет интерес обратиться к отечественным разработкам в области построения программного обеспечения (ПО) архитектурных решений, например, к разработанным в ИТМиВТ системам Эльбрус-1 (1978) и Эльбрус-2 (1984), реализованным с использованием языка программирования высокого уровня Эль-76, а не традиционного ассемблера. Эль-76 отличался динамическим связыванием типов, которое поддержано на аппаратном уровне. Эль-76 являлся одновременно языком прикладного программирования, управления заданиями, системного программирования. Эль-76 перед исполнением переводился в байткод. Этот байткод «на лету» аппаратно транслировался в машинные команды. Возглавлявший проект 32-разрядного микропроцессора Эль-90 Владимир Пентковский затем являлся главным архитектором Pentium III (1993). В Эль-90 сочетались концепция RISC и архитектура Эльбрус-2. Основные характеристики Эль-90, которые также иллюстрируют основную терминологию определения архитектуры вычислительной системы:
· выдача до трех команд за такт;
· упрощенный набор команд, большинство команд исполняются за один такт;
· аппаратная поддержка языков программирования высокого уровня;
· исполнение по предположению;
· изменение порядка исполнения команд ;
· предсказаниеветвлений;
· раздельные кэши команд и данных по 32KB;
· конвейеризованное устройство вещественной арифметики;
· поддержка многоуровневой иерархии памяти, кэш первого и второго уровня;
· поддержка мультипроцессорности (до 10 процессоров);
· поддержка отладки, мониторинг производительности;
· режим «сверхнадежных вычислений«, в котором несколько процессоров независимо производят вычисления и сравнивают результаты, а если результаты расходятся, считают заново.
Эти характеристики иллюстрируют сложность построения современных вычислительных систем. В этой связи следует обратиться также к терминологии.
Центральный процессор, ЦП (CPU) — компонент компьютера, непосредственно исполняющий машинные команды, соответствующие его набору команд. Содержит регистровый файл (register file) , устройство управления (control unit) , устройство управления памятью (MMU) , арифметико-логическое устройство (ALU) и другие блоки.
ALU (Arithmetic-Logic Unit) — арифметико-логическое устройство, компонент процессора, выполняющий набор его арифметических и логических команд, а также команды сдвигов. Команды арифметики с плавающей запятой выполняются блоком арифметики с плавающей запятой (FPU) , управление памятью и взаимодействие с внешними устройствами осуществляется блоком MMU.
Набор команд (instruction set) — совокупность всех машинных команд, которые может исполнять данный процессор. Типичный набор состоит из арифметических и логических команд, команд пересылки данных, команд переходов и ввода-вывода. Набор команд — составная часть архитектуры процессора и может рассматриваться в качестве интерфейса между программным и аппаратным обеспечением. Существуют RISC- , CISC- и VLIW –архитектуры.
RISC-архитектура — архитектура процессоров, построенная на основе сокращённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации.
CISC (Complex Instruction Set Computer) — процессор со сложным набором команд, традиционной архитектуры процессоров с широким набором различных машинных команд переменной длины и различным временем их исполнения.
VLIW (Very Long Instruction Word) – архитектура процессора с командными словами очень большой длины, в такой команде объединено несколько обычных команд, которые выполняются одновременно (параллельно) разными функциональными блоками процессора для повышения его быстродействия. Рост производительности достигается за счет того, что процессору не нужно тратить время на организацию параллелизма на уровне команд (ILP, Instruction Level Parallelism). Группирование параллельно исполняемых операций выполняет компилятор.
EPIC (Explicitly Parallel Instruction Computing) — вычисления с явно заданным параллелизмом команд. В этой технологии компилятор явным образом говорит процессору, какие команды можно исполнять параллельно, а какие зависят от других команд
ILP — параллелизм на уровне машинных команд, означает способность процессора исполнять несколько машинных команд одновременно в рамках одного программного потока (Thread).
Hyper-Threading (HT) – гиперпотоковость, название технологии, реализованной в процессоре Pentium 4. Она использует возможности незадействованных регистров и блоков процессора, позволяя ему работать до 30% производительнее. Благодаря этому настольный ПК может выполнять два разных приложения одновременно или одно приложение, но быстрее, чем однопроцессорная система.
Parallel processing — параллельная обработка. Способ выполнения задачи на многопроцессорном компьютере, когда отдельные её блоки (процессы) распределяются по всем доступным процессорам
Parallel computer — параллельный компьютер. Вычислительная система с распараллеливанием выполнения операций на множестве арифметических и логических блоков (процессоров). Различают системы с общей и распределённой оперативной памятью, многопроцессорные и многокомпьютерные системы.
Symmetric multiprocessing (SMP) — симметричная многопроцессорная система. Сильносвязанная система, используемая для параллельных вычислений, в которой однотипные процессорные элементы управляются единой операционной системой, причем каждый процессор имеет одинаковый доступ к устройствам ввода-вывода и все процессоры делят общее пространство памяти. Задачи (потоки) распределяются между разными процессорами. Так как все процессоры рассматриваются как эквивалентные, то новая задача поступает на процессор с наименьшей рабочей загрузкой на момент диспетчеризации задач. Процессоры взаимодействуют друг с другом по так называемой шине межсоединения
NUMA (Non-Uniform Memory Architecture Access) — архитектура неоднородного доступа к памяти, архитектура NUMA. Это архитектура с распределённой разделяемой памятью многопроцессорной системы, в которой время доступа в память зависит от её расположения (доступ процессора к локальному ОЗУ быстрее, чем к нелокальному). Для этого процессоры организуются в небольшие группы (кластеры), каждая из которых имеет собственный общий пул ОЗУ. Позволяет значительно увеличить число процессоров в SMP–системе.
Локальная память (local memory) — в многопроцессорных системах (например, в кластерах) относится к конкретному процессору (обычно расположена на одной с ним плате).
MPP (Massively Parallel Processing) — вычисления с массовым параллелизмом. Это архитектура многопроцессорной системы, в которой каждый из процессоров имеет собственное ОЗУ и копию ОС, приложения и обрабатывает данные независимо (SMP) от других процессоров.
SSP (Small-Scale Parallel system) — вычислительная система с ограниченным параллелизмом в работе.