В реферате рассматриваются ключевые концепции работы американского математика Джона фон Неймана ”First Draft of a Report on the EDVAC”, где впервые изложена т.н. «архитектура фон Неймана». С 1945 года она используется при построении универсальных электронных вычислительных систем. Автор рассматривает концепции в разрезе их логики: какую проблему они решали и с помощью каких подходов были разработаны. Выделение таких связок предназначено для исследователей, которые стремятся выделить логику зарождения компьютерных областей.
Автор статьи: Владимир Куценко, программист, исследователь зарождения и развития новых ИТ-областей.
Один раздел реферата – это одна из проблем, которые должны были решить фон Нейман и участники исследовательской группы при работе над компьютером EDVAC. Они рассматриваются по следующей структуре:
Список проблем проглядывается в отчете ”First Draft of a Report on the EDVAC”. Однако не все они сформулированы в открытом виде. Чтобы более полно понимать проблемы и условия, в которых работали Джон фон Нейман и коллектив исследователей, также участвовавших в проекте, можно обратиться к дополнительным источникам.
Практически все проблемы, сформулированные участниками исследовательской группы, относятся к первому программируемому электронному вычислительному устройству ENIAC. Вот что пишет об этом Герман Голдстайн (Herman Goldstine), непосредственный участник событий.
![]() [НАЧАЛО ЦИТАТЫ] At the same time а general reassessment of the ENIAC's operational characteristics was being undertaken at the Moore School. This revealed а number of serious problems and deficiencies in the machine as аn instrument for general-purpose scientific calculation. In particular (and probably Cunningham as well) was bothered by the clumsiness of the mechanisms for programming the ENIAC and by the small electronically alterable storage registers. We already had visualized doing much more elaborate calculating than solving ballistic equations. Thus of 11 August 1944 I was writing Col. Simon in this sense: “2. Due however to the necessity for providing the ENIAC in a year and а half it has bееn necessary to accept certain make-shift solutions of design notably in the means of establishing connections between units to carry out given procedures апа in the paucity of high speed storage devices. These defects will result in considerable inconvenience and loss of time to the Laboratory in setting up new computing problems. З. It is believed highly desirable that а new RAD contract be entered into with the Moore School to permit that institution to continue research and development with the object of building ultimately а new ENIAC of improved design...” This memorandum makes very clear that conversations were going оn at the Moore School looking toward ап amelioration of the operational deficiencies of the ЕМАС. It is evident that by mid-August these conversations had progressed to the point where new technological ideas had emerged. In fact there is an undated report by Eckert and Маuchly, written that summer prior to 31 August, when it was sent by Brainerd to me, describing а device, called а delay line, for increasing the storage capacity of the machine. This device, discussed at length below, was to be crucial to the next phase of development. The 11 August memorandum was followed by extensive conversations at the Ballistic Research Laboratory, which resulted in а meeting on 29 August 1944 of а committee known as the Firing Table Reviewing Board and а recommendation to Simon backing my request. The minutes of that meeting show that von Neumann was present. This makes it quite clear to me that von Neumann had already visited the Moore School. Му records indicate that I was back on duty after my illness around 24 July 1944 and that probably took von Neumann for а first visit to the ENIAC on or about 7 August. I recall that von Neumann's first visit was during the two-accumulator test. Му travel orders show that my first business visit to Philadelphia after being released from the University of Pennsylvania Hospital was in the first week of August 1944. Ву the end of August was urging development of а new electronic computing device that would: а. Contain many fewer tubes than the present machine and hence be cheaper and more practical to maintain. All this material makes clear that the thinking at the Moore School had advanced quite far by the end of August 1944. [КОНЕЦ ЦИТАТЫ. Источник: Herman H. Goldstine. The Computer from Pascal to von Neumann. Princeton University Press, 1993. PP. 184-187.] |
Описание работы двух других непосредственных разработчиков, Джона Преспера Эккерта (J. Presper Eckert) и Джона Мокли (John Mauchly), также говорит о недостаточной скорости работы программ на новом компьютере.
[НАЧАЛО ЦИТАТЫ] According to Herman Goldstine, an army officer assigned to the ENIAC project, John von Neumann (1903–1957) learned of the ENIAC from a chance meeting with him in the summer of 1944 at the Aberdeen, Maryland, railroad station. Despite his involvement in many other projects, including the design of the atomic bomb, von Neumann was sufficiently intrigued by what was going on at the Moore School to have himself introduced to Eckert and Mauchly and brought onto the project. Eckert and Mauchly were at that time busy thinking of ways to improve the process of setting up a computer faster. One possibility was to use perforated paper tape to feed instructions, as several relay machines of the 1940s did, but this was too slow for the high speeds of the ENIAC’s calculating circuits. So were the decks of cards used by the Card Programmed Calculator. In Mauchly’s words, ‘‘calculations can be performed at high speed only if instructions are supplied at high speed. [КОНЕЦ ЦИТАТЫ. Источник: Paul E. Ceruzzi. A history of modern computing. 2nd ed., 2003. PP. 21-22.] |
Отсюда можно выделить список общих проблем в их приоритете по отношению к предшествующему электронному компьютеру ENIAC:
#1. Как повысить универсальность вычислительной машины и уменьшить затраты на ее перепрограммирование?
#2. Как повысить производительность вычислительной машины?
#3. Как снизить уровень затрат на ее изготовление и обслуживание?
Главная проблема предшествующей версии компьютера под названием ENIAC – сложность с его перепрограммированием. Или, как выражались разработчики тех времен, его «перенастройка». Компьютер хорошо справлялся с изначально поставленными задачами – расчет уравнений для вычислений баллистических таблиц при эксплуатации различного оружия, – но плохо поддавался перепрограммированию для других задач.
[НАЧАЛО ЦИТАТЫ] The notion arose as Eckert, Mauchly, and others were rushing to finish the ENIAC to assist the U.S. Army, which was engaged in a ground war in Europe and North Africa. It arose because the ENIAC’s creators recognized that while the ENIAC was probably going to work, it was going to be a difficult machine to operate. Applying the modern term ‘‘to program’’ to a computer probably originated with the ENIAC team at the Moore School. More often, though, they used the phrase ‘‘set up’’ to describe configuring the ENIAC to solve different problems. Setting up the ENIAC meant plugging and unplugging a maze of cables and setting arrays of switches. In effect, the machine had to be rebuilt for each new problem it was to solve. When completed in late 1945, the ENIAC operated much faster than any other machine before it. But while it could solve a complex mathematical problem in seconds, it might take days to set up the machine properly to do that. It was in the midst of building this machine that its creators conceived of an alternative. It was too late to incorporate that insight into the ENIAC, but it did form the basis for a proposed follow-on machine called the ‘‘EDVAC’’ (Electronic Discrete Variable Computer). [...] The ENIAC, though ill-suited for many problems, nevertheless was in such demand that its physical transfer from Philadelphia to Aberdeen had to be put off. With the end of the War there was less urgency to compute firing tables, although the Aberdeen Proving Ground still expected the machine to be moved there for that purpose. After the public unveiling, a flood of interested parties was petitioning to use it. Mauchly reported, for example, that in March of 1948 Pratt & Whitney asked him if they could run an urgent problem ‘‘the week of April 17.’’ That gave him a ‘‘chuckle’’ — by 1948 the ENIAC was already fully booked for the next two years! What was less well known was that the Moore School team had carefully evaluated the architecture of the follow-on computer, the EDVAC, in light of the problems it might be expected to solve. Von Neumann found that although it was initially intended for evaluating mathematical expressions, the EDVAC’s stored-program design made it ‘‘very nearly an ‘all-purpose machine’ ’’ and that it was better than punched card equipment for sorting data. This was a crucial observation, as sorting was a central task for commercial work, and punched card equipment had been optimized for it. [КОНЕЦ ЦИТАТЫ. Источник: Paul E. Ceruzzi. A history of modern computing. 2nd ed., 2003. PP. 20-25.] |
Одна из ключевых проблем заключалась в том, что так называемое «программирование» для ENIAC выполнялось сразу для множества компонентов, которые нуждались в перенастройке при изменении процесса вычислений.
[НАЧАЛО ЦИТАТЫ] It remains now to describe how one instructed the ENIAC to do а given task. This was а highly complex undertaking and was оnе of the reasons why it was to be а unique machine. This aspect of the machine was unsatisfactory, as the evolutionary process was to reveal. Most units contained individual program controls which were сараblе of noting that the unit was to perform а given operation such as addition and also generally to signal when this was completed. Usually several program controls were needed to carry out completely аn arithmetic operation. Thus, if the number stored in Accumulator was to be added to that in Accumulator 2, а control оn 1 had to be instructed to transmit its contents and а control оn 2 to receive. Parenthetically, а channel between the two accumulators had also to be so that the numbers could actually flow between them. Let us program а trivial but perhaps illustrative example to show how this all took place. The example we choose is to form а table of squares. Thus at the start we assume Accumulator contains n and Accumulator 2 contains n² and we show how to form n + 1 and (n + 1)². This is done in Fig. 11. ![]() At the start we may suppose that Accumulator 1 contains n and Accumulator 2 contains n² and that somehow — by pushing а button — the initiating unit transmits а pulse causing Accumulator 1 to transmit its contents twice and Accumulator 2 to receive it twice. Then, upon the execution of this operation, Accumulator 2 will contain n² + 2n and Accumulator 1 will send out а signal which causes the constant transmitter to send out а 1 and both ассumulators to receive it. Thus Accumulator 1 now contains n + 1 and Accumulator 2 contains n² + 2n + 1 = (n + 1)². At this point the program stops since no other program pulses are transmitted. How could this be used in аn iterative fashion to build up а table for n = 0, 1, ...? This was the function of а unit called the Master Programmer. It contained 10 program controls each which could count program pulses and switch program connections. То illustrate its use let us suppose we desired to compute and print n, n² for n = 0, 1, ..., 99. ![]() In Fig. 12 the program controls (1), (2), ... (6) аre as before. Note the differences in the actions, however, caused by the presence of the Master Programmer. The accumulators are assumed to be cleared to zero at the start. Then the action of the Initiating Unit is to start the Master Programmer to count the printings and to order the first one to take place; this records n = О, n² = О. The result is to cause the accumulators to do as before; i.e. Accumulator 1 sends out 2 х 0 and Accumulator 2 receives this number causing the Constant Transmitter to send а into each and to advance the Master Programmer one step. Now we print n = 1, n² = 1 and repeat our fundamental cycle as before. This goes on until 100 pulses have been emitted by the Master Programmer, at which time the last printing takes place and the process ceases. This yields а table of n vs. n² for n = 0, 1, ..., 99, as desired. This illustration was of course trivial, but it does serve to illustrate the operation of the system. [КОНЕЦ ЦИТАТЫ. Источник: Herman H. Goldstine. The Computer from Pascal to von Neumann. Princeton University Press, 1993. PP. 160-162.] |
Таким образом задача для фон Неймана состояла в том, чтобы устранить указанные проблемы и повысить универсальность новой вычислительной машины и всех последующих, которые придут за ней.
[НАЧАЛО ЦИТАТЫ] Не [John von Neumann] stated that he wrote the report in order to further the development of the art of building high speed computers and scientific as well as engineering thinking on this subject as widely and as early as feasible. [КОНЕЦ ЦИТАТЫ. Источник: Paul E. Ceruzzi. A history of modern computing. 2nd ed., 2003. P. 191.] |
ХОД: Изучение функций универсального вычислительного устройства.
Чтобы создать возможность дальнейших серий универсальных вычислительных электронных машин, фон Нейману пришлось исследовать логический принцип универсальных электронных вычислений.
[НАЧАЛО ЦИТАТЫ] 1.1 The considerations which follow deal with the structure of a very high speed automatic digital computing system, and in particular with its logical control. Before going into specific details, some general explanatory remarks regarding these concepts may be appropriate. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
Для этого фон Нейман начал с изучения функций универсального вычислительного устройства. Разнообразные сложные задачи для вычислений должны быть представлены в виде инструкций для машины – настолько конкретных, чтобы та могла выполнять их без человеческой помощи.
[НАЧАЛО ЦИТАТЫ] 1.2 An automatic computing system is a (usually highly composite) device, which can carry out instructions to perform calculations of a considerable order of complexity – e.g. to solve a non-linear partial differential equation in 2 or 3 independent variables numerically. The instructions which govern this operation must be given to the device in absolutely exhaustive detail. They include all numerical information which is required to solve the problem under consideration: Initial and boundary values of the dependent variables, values of fixed parameters (constants), tables of fixed functions which occur in the statement of the problem. These instructions must be given in some form which the device can sense: Punched into a system of punchcards or on teletype tape, magnetically impressed on steel tape or wire, photographically impressed on motion picture film, wired into one or more fixed or exchangeable plugboards -- this list being by no means necessarily complete. All these procedures require the use of some code to express the logical and the algebraical definition of the problem under consideration, as well as the necessary numerical material (cf. above). Once these instructions are given to the device, it must be able to carry them out completely and without any need for further intelligent human intervention. At the end of the required operations the device must record the results again in one of the forms referred to above. The results are numerical data; they are a specified part of the numerical material produced by the device in the process of carrying out the instructions referred to above. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
Далее фон Нейман выделил основные функции вычислительного устройства высшего уровня: (1) получение инструкций и (2) выполнение инструкций.
[НАЧАЛО ЦИТАТЫ] 2.3 Second: The logical control of the device, that is the proper sequencing of its operations can be most efficiently carried out by a central control organ. If the device is to be elastic, that is as nearly as possible all purpose, then a distinction must be made between the specific instructions given for and defining a particular problem, and the general control organs which see to it that these instructions – no matter what they are – are carried out. The former must be stored in some way – in existing devices this is done as indicated in 1.2 – the latter are represented by definite operating parts of the device. By the central control we mean this latter function only, and the organs which perform it form the second specific part: CC. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
После этого фон Нейман переходит на уровень ниже и выделяет основные функции устройства, связанные с высшими функциями.
(1) Получение инструкций:
(1.1.) Передача инструкций из внешней среды в устройство;
(1.2.) Сохранение инструкций для выполнения в устройстве.
(2) Выполнение инструкций:
(2.1.) Выполнение инструкций;
(2.2.) Выполнение элементарных арифметических операций;
(2.3.) Вывод результата выполнения во внешнюю среду.
Для каждой функции фон Нейман, по аналогии с биологией, выделяет «орган» устройства, который должен ее выполнять.
(1) Получение инструкций:
(1.1.) Передача инструкций из внешней среды в устройство – Устройство для ввода (Input – I);
(1.2.) Сохранение инструкций для выполнения в устройстве – Память (Memory – M).
(2) Выполнение инструкций:
(2.1.) Выполнение инструкций – Устройство центрального управления (Central control – CC);
(2.2.) Выполнение элементарных арифметических операций – Центральная арифметическая часть устройства (Central arithmetic part – CA);
(2.3.) Вывод результата выполнения во внешнюю среду – (Output – O).
[НАЧАЛО ЦИТАТЫ] 2.1 In analyzing the functioning of the contemplated device, certain classificatory distinctions suggest themselves immediately. 2.2 First: Since the device is primarily a computer, it will have to perform the elementary operations of arithmetics most frequently. These are addition, subtraction, multiplication and division: +; −; ×; ÷. It is therefore reasonable that it should contain specialized organs for just these operations. It must be observed, however, that while this principle as such is probably sound, the specific way in which it is realized requires close scrutiny. Even the above list of operations: +; −; ×; ÷, is not beyond doubt. It may be extended to include such operations as √ ; ³√ ; sgn; | |; also log₁₀; log₂; ln; sin and their inverses, etc. One might also consider restricting it, e.g. omitting ÷ and even ×. One might also consider more elastic arrangements. For some operations radically different procedures are conceivable, e.g. using successive approximation methods or function tables. These matters will be gone into in {10:3; 10:4}. At any rate a central arithmetical part of the device will probably have to exist, and this constitutes the first specific part: CA. 2.3 Second: The logical control of the device, that is the proper sequencing of its operations can be most efficiently carried out by a central control organ. If the device is to be elastic, that is as nearly as possible all purpose, then a distinction must be made between the specific instructions given for and defining a particular problem, and the general control organs which see to it that these instructions – no matter what they are – are carried out. The former must be stored in some way – in existing devices this is done as indicated in 1.2 – the latter are represented by definite operating parts of the device. By the central control we mean this latter function only, and the organs which perform it form the second specific part: CC. 2.4 Third: Any device which is to carry out long and complicated sequences of operations (specifically of calculations) must have a considerable memory. At least the four following phases of its operation require a memory. [...] 2.5 To sum up the third remark: The device requires a considerable memory. While it appeared that various parts of this memory have to perform functions which differ somewhat in their nature and considerably in their purpose, it is nevertheless tempting to treat the entire memory as one organ, and to have its parts even as interchangeable as possible for the various functions enumerated above. This point will be considered in detail, cf. {13.0}. At any rate the total memory constitutes the third specific part of the device: M. 2.6 The three specific parts CA, CC (together C) and M correspond to the associative neurons in the human nervous system. It remains to discuss the equivalents of the sensory or afferent and the motor or efferent neurons. These are the input and the output organs of the device, and we shall now consider them briefly. In other words: All transfers of numerical (or other) information between the parts C and M of the device must be effected by the mechanisms contained in these parts. There remains, however, the necessity of getting the original definitory information from outside into the device, and also of getting the final information, the results, from the device into the outside. By the outside we mean media of the type described in 1.2: Here information can be produced more or less directly by human action (typing, punching, photographing light impulses produced by keys of the same type, magnetizing metal tape or wire in some analogous manner, etc.), it can be statically stored, and finally sensed more or less directly by human organs. The device must be endowed with the ability to maintain the input and output (sensory and motor) contact with some specific medium of this type (cf. 1.2): That medium will be called the outside recording medium of the device: R. Now we have: 2.7 Fourth: The device must have organs to transfer (numerical or other) information from R into its specific parts, C and M. These organs form its input, the fourth specific part: I. It will be seen that it is best to make all transfers from R (by I) into M, and never directly into C (cf. {14.1, 15.3}). 2.8 Fifth: The device must have organs to transfer (presumably only numerical information) from its specific parts C and M into R. These organs form its output, the fifth specific part: O. It will be seen that it is again best to make all transfers from M (by O) into R, and never directly from C, (cf. {14.1, 15.3}). [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
На еще более низком уровне фон Нейман заключает, что для выполнения функций, которые являются составляющими функций «органов», описанных выше, используются «органы» более низкого порядка, состоящие из Е-элементов (E-elements). По аналогии с нейронами, Е-элементы могут объединяться в сети (network), чтобы выполнять элементарные действия, такие как суммирование, умножение, запоминание. Любое взаимодействие между такими элементами рассматривается как входящий и исходящий стимулы.
[НАЧАЛО ЦИТАТЫ] 4.2 It is worth mentioning, that the neurons of the higher animals are definitely elements in the above sense. They have all-or-none character, that is two states: Quiescent and excited. They fulfill the requirements of 4.1 with an interesting variant: An excited neuron emits the standard stimulus along many lines (axons). Such a line can, however, be connected in two different ways to the next neuron: First: In an excitatory synapse, so that the stimulus causes the excitation of the neuron. Second: In an inhibitory synapse, so that the stimulus absolutely prevents the excitation of the neuron by any stimulus on any other (excitatory) synapse. The neuron also has a definite reaction time, between the reception of a stimulus and the emission of the stimuli caused by it, the synaptic delay. Following W.S. MacCulloch and W. Pitts (”A logical calculus of the ideas immanent in nervous activity,” Bull. Math. Biophysics, Vol. 5 (1943), pp. 115-133) we ignore the more complicated aspects of neuron functioning: Thresholds, temporal summation, relative inhibition, changes of the threshold by after-effects of stimulation beyond the synaptic delay, etc. It is, however, convenient to consider occasionally neurons with fixed thresholds 2 and 3, that is, neurons which can be excited only by (simultaneous) stimuli on 2 or 3 excitatory synapses (and none on an inhibitory synapse). (cf. {6.4}). It is easily seen that these simplified neuron functions can be imitated by telegraph relays or by vacuum tubes. Although the nervous system is presumably asynchronous (for the synaptic delays), precise synaptic delays can be obtained by using synchronous setups. (cf. {6.3}). [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
[НАЧАЛО ЦИТАТЫ] 6.2 The analogs of human neurons, discussed in 4.2-4.3 and again referred to at the end of 5.1, seem to provide elements of just the kind postulated at the end of 6.1. We propose to use them accordingly for the purpose described there: As the constituent elements of the device, for the duration of the preliminary discussion. We must therefore give a precise account of the properties which we postulate for these elements. The element which we will discuss, to be called an E-element, will be represented to be a circle ◯, which receives the excitatory and inhibitory stimuli, and emits its own stimuli along a line attached to it: ◯——. This axon may branch: ◯——<, ◯——<—. The emission along it follows the original stimulation by a synaptic delay, which we can assume to be a fixed time, the same for all E-elements, to be denoted by τ. We propose to neglect the other delays (due to conduction of the stimuli along the lines) aside of τ. We will mark the presence of the delay τ by an arrow on the line: ◯—>—, ◯—>—<. This will also serve to identify the origin and the direction of the line. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
Е-элементы являются идеализированным теоретическим элементом. Они основаны на следующем предположении: вне зависимости от технологии, на которой они будут реализованы, устройства, чья работа описана через входящие и исходящие стимулы, могут быть построены.
[НАЧАЛО ЦИТАТЫ] 6.1 The considerations of 5.0 have defined the main principles for the treatment of CA. We continue now on this basis, with somewhat more specific and technical detail. In order to do this it is necessary to use some schematic picture for the functioning of the standard element of the device: Indeed, the decisions regarding the arithmetical and the logical control procedures of the device, as well as its other functions, can only be made on the basis of some assumptions about the functioning of the elements. The ideal procedure would be to treat the elements as what they are intended to be: as vacuum tubes. However, this would necessitate a detailed analysis of specific radio engineering questions at this early stage of the discussion, when too many alternatives are still open to be treated all exhaustively and in detail. Also, the numerous alternative possibilities for arranging arithmetical procedures, logical control, etc., would superpose on the equally numerous possibilities for the choice of types and sizes of vacuum tubes and other circuit elements from the point of view of practical performance, etc. All this would produce an involved and opaque situation in which the preliminary orientation which we are now attempting would be hardly possible. In order to avoid this we will base our considerations on a hypothetical element, which functions essentially like a vacuum tube – e.g. like a triode with an appropriate associated RLC-circuit – but which can be discussed as an isolated entity, without going into detailed radio frequency electromagnetic considerations. We re-emphasize: This simplification is only temporary, only a transient standpoint, to make the present preliminary discussion possible. After the conclusions of the preliminary discussion the elements will have to be reconsidered in their true electromagnetic nature. But at that time the decisions of the preliminary discussion will be available, and the corresponding alternatives accordingly eliminated. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
Фон Нейман применил логический анализ вычислительного устройства на основе изучения его функций. Применив теоретический аппарат из биологии и нейробиологии, он описал абстрактные сущности, которые должны выполнять указанные функции вычислительной системы.
1. Достижения биологии и нейробиологии. Ход с созданием абстрактных «органов» вычислительной машины стал возможен благодаря достижениям этих отраслей науки. В особенности благодаря их теоретическому аппарату, который описывает выполнение функций через органы и нейронные сети.
2. Однородность памяти устройства. При построении абстракций для устройств вычислительной машины фон Нейман делает один из шагов, который становится возможен благодаря открытию в области аппаратной компонентной базы.
[НАЧАЛО ЦИТАТЫ] 2.5 To sum up the third remark: The device requires a considerable memory. While it appeared that various parts of this memory have to perform functions which differ somewhat in their nature and considerably in their purpose, it is nevertheless tempting to treat the entire memory as one organ, and to have its parts even as interchangeable as possible for the various functions enumerated above. This point will be considered in detail, cf. {13.0}. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
До построения EDVAC память рассматривалась только как набор отдельных устройств (регистров) для хранения каких-либо частей данных (состояния, разрядной части числа и т.п.). Но в 1943 году инженер Джон Мокли изобрел «вакуумные трубки», которые часто упоминаются в работе. Замыкая выходной сигнал трубки на входной, можно было получить запоминающее устройство, которое стоило в 100 раз дешевле.
[НАЧАЛО ЦИТАТЫ] Let us understand the significance of this compared to what was done in the ЕNIAC. There а binary digit could be stored using а flip-flop, i.e. at the cost of а pair of vacuum tubes; however, since such а pair саme in оne glass envelope, let us say оne binary digit could be stored at the cost of оne vacuum tube, In the case of the delay line 1,000 binary digits could be stored at а cost of 10 vacuum tubes or less. Thus the cost of storing а binary digit dropped from 1 to 1/100 vacuum tube under the new technology. Moreover by means of suitable vacuum tube circuits called gates the recirculation сап be interrupted to permit information to be read out or new information to be fed in as desired. Therefore, а pattern тау be changed at will. This, then, was Eckert's great new technological invention. In the ЕNIAC it was possible to store only 20 words because of tho clumsy way in which binary digits — or bits, to use John Tukey's word — were stored, i.e. in vacuum tubes. For the proposed new machine using the mercury delay line it was decided tentatively to increase the storage capacity to about 2,000 words, i.e. by а factor of а hundred, thereby taking advantage of the hundred-fold drop in the cost of storage. [КОНЕЦ ЦИТАТЫ. Источник: Herman H. Goldstine. The Computer from Pascal to von Neumann. Princeton University Press, 1993. PP. 190-191.] |
Поскольку ENIAC был первой версией программируемой электронной вычислительной машины, создателям было понятно, что она содержит неоптимальные решения, исправив которые, можно получить выигрыш в производительности.
[НАЧАЛО ЦИТАТЫ] Let us now return to our temporal sequence and bring the story up to date. At the beginning of September 1944 the construction of virtually all parts of the ENIAC was well underway, and it was generally felt that the problem had decisively shifted from а developmental to а constructional phase. Indeed, this is why there was so much emphasis just at this moment оп the EDVAC. The design engineers had little to do at this time оп the ЕNIAC while those engaged in the actual construction were fully occupied. It is interesting to see now how the shortcomings of the ENIAC were acknowledged at that time. In writing to Gillon, who was then in the PaciFIc Theatre of Operations, said: ”То illustrate the improvements wish to realize, let me say that to solve а quite complex partial differential equation of von Neumann's ... the new Harvard IBM will require about 80 hours as against 1/2 hour оп ЕМАС of which about 28 minutes will be spent just in card cutting and 2 minutes for computing. The card cutting is needed simply because the solution of partial differential equations requires the temporary storage of large amounts of data. We hope to build а cheap high-speed device for this purpose... . The second major improvement ... саn again be illustrated оп the Harvard machine. То evaluate seven terms of a power series took 15 minutes оп the Harvard device of which З minutes was set-up time, whereas it will take at least 15 minutes to set ир ЕМАС and about 1 second to do the computing. То remedy this disparity we propose а centralized programming device in which the program routine is stored in coded form in the same type storage suggested above. The other crucial advantage of central programming is that апу routine, however complex, саn be carried out whereas in the present ENIAC we аrе limited.” [КОНЕЦ ЦИТАТЫ. Источник: Herman H. Goldstine. The Computer from Pascal to von Neumann. Princeton University Press, 1993. PP. 198-199.] |
ХОД: Программные инструкции для выполнения размещаются в той же памяти, что и данные.
Как указывалось в предварительном разделе, одна из ключевых проблем производительности новой машины EDVAC состояла в том, что не существовало способа передавать машине инструкции для выполнения так же быстро, как работали ее электронные вычислительные блоки. Инженеры и фон Нейман пришли к выводу, что синхронизировать скорости подачи команд и работы электронных вычислительных устройств машины можно будет, разместив программы для машины в той же памяти, что и числовые данные, с которыми она работает через устройства памяти. Иными словами, программа тоже стала рассматриваться как данные.
Инструкции программы представлялись в виде чисел с помощью специальной системы кодирования. Управляющий блок получал на вход числа и декодировал их перед выполнением.
[НАЧАЛО ЦИТАТЫ] 14.1 Our next aim is to go deeper into the analysis of CC. Such an analysis, however, is dependent upon a precise knowledge of the system of orders used in controlling the device, since the function of CC is to receive these orders, to interpret them, and then either to carry them out, or to stimulate properly those organs which will carry them out. It is therefore our immediate task to provide a list of the orders which control the device, i.e. to describe the code to be used in the device, and to define the mathematical and logical meaning and the operational significance of its code words. Before we can formulate this code, we must go through some general considerations concerning the functions of CC and its relation to M. The orders which are received by CC come from M, i.e. from the same place where the numerical material is stored. (Cf. 2.4 and 12.3 in particular (b).) The content of M consists of minor cycles (cf. 12.2 and 12.7), hence by the above each minor cycle must contain a distinguishing mark which indicates whether it is a standard number or an order. The orders which CC receives fall naturally into these four classes: (a) orders for CC to instruct CA to carry out one of its ten specific operations (cf. 11.4); (b) orders for CC to cause the transfer of a standard number from one place to another; (c) orders for CC to transfer its own connection with M to a different point in M, with the purpose of getting its next order from there; (d) orders controlling the operation of the input and the output of the device (i.e. I of 2.7 and O of 2.8). [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
ХОД: Увеличение количества памяти для более сложных расчетов.
Чтобы повысить производительность машины, увеличили количество доступной памяти устройства, о чем фон Нейман прямо указывает в отчете. Дополнительная память была необходима, чтобы сохранять также и промежуточные результаты, которые порождала программа во внутренней памяти, а не выводить их во внешнюю среду. Это позволило не снижать скорость исполнения различных этапов программных вычислений.
[НАЧАЛО ЦИТАТЫ] 2.9 The output information, which goes into R, represents, of course, the final results of the operation of the device on the problem under consideration. These must be distinguished from the intermediate results, discussed e.g. in 2.4, (e)-(g), which remain inside M. At this point an important question arises: Quite apart from its attribute of more or less direct accessibility to human action and perception R has also the properties of a memory. Indeed, it is the natural medium for long time storage of all the information obtained by the automatic device on various problems. Why is it then necessary to provide for another type of memory within the device M? Could not all, or at least some functions of M – preferably those which involve great bulks of information – be taken over by R? Inspection of the typical functions of M, as enumerated in 2.4, (a)-(h), shows this: It would be convenient to shift (a) (the short-duration memory required while an arithmetical operation is being carried out) outside the device, i.e. from M into R. (Actually (a) will be inside the device, but in CA rather than in M. Cf. the end of 12.2). All existing devices, even the existing desk computing machines, use the equivalent of M at this point. However (b) (logical instructions) might be sensed from outside, i.e. by I from R, and the same goes for (c) (function tables) and (e), (g) (intermediate results). The latter may be conveyed by O to R when the device produces them, and sensed by I from R when it needs them. The same is true to some extent of (d) (initial conditions and parameters) and possibly even of (f) (intermediate results from a total differential equation). As to (h) (sorting and statistics), the situation is somewhat ambiguous: In many cases the possibility of using M accelerates matters decisively, but suitable blending of the use of M with a longer range use of R may be feasible without serious loss of speed and increase the amount of material that can be handled considerably. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
ХОД: Произвольный доступ к памяти.
Чтобы программа могла в любой момент вычислений обращаться к нужным данным, а также переходить на другие участки памяти, содержащие наборы инструкций, в случае ветвления во время выполнения, управляющий блок мог обращаться к данным в любом произвольном участке памяти. Это достигалось с помощью адресации устройств памяти и нумерования циклов их работы.
[НАЧАЛО ЦИТАТЫ] 14.5 Some further remarks [...] Third: The 256 DLA organs have numbers 0; 1; … ; 255, i.e. all 8-digit binary numbers. It is desirable to give the 32 minor cycles in each DLA organ equally fixed numbers 0; 1; … ; 31 i.e. all 5-digit binary numbers. Now the DLA organs are definite physical objects, hence their enumeration offers no difficulties. The minor cycles in a given DLA organ, on the other hand, are merely moving loci, at which certain combinations of 32 possible stimuli may be located. Alternatively, looking at the situation at the output end of the DLA organ, a minor cycle is a sequence of 32 periods τ, this sequence being considered to be periodically returning after every 1,024 periods τ. One might say that a minor cycle is a 32τ ”hour”of a 1,024τ ”day,” the ”day” thus having 32 ”hours.” It is now convenient to fix one of these ”hours,” i.e. minor cycles, as zero or ”first”and let it be at the same time at the outputs of all 256 DLA organs of M. We can then attribute each ”hour”, i.e. minor cycle, its number 0; 1; … ; 31, by counting from there. We assume accordingly that such a convention is established – noting that the minor cycles of any given number appear at the same time at the outputs of all 256 DLA organs of M. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
Ход по представлению программы в виде числовых данных представлял собой простую таблицу соответствия, что является функцией из области элементарной математики. Произвольный доступ к памяти и ее адресация были аналогами существующих систем индексации для однородных хранилищ данных – например, каталог библиотеки.
Как указано в предыдущем аналогичном разделе, это также получилось благодаря изобретению более дешевой памяти на т.н. «вакуумных трубках». Стало возможным оперировать бóльшими объемами – нежели отдельные биты чисел, как было в ENIAC.
Упрощение конструкции и повышение надежности элементов устройства явилось причиной следующих, описанных в ”First Draft of a Report on the EDVAC”.
ХОД: Отказ от параллельного выполнения операций в устройстве.
Параллельное выполнение операций внутри устройства привело бы к усложнению конструкции его элементов и снизило бы их надежность. Вследствие этого фон Нейман отказывается от этого сразу на нескольких уровнях системы.
1) На уровне выполнения логических операций.
[НАЧАЛО ЦИТАТЫ] 5.6 Accelerating these arithmetical operations does therefore not seem necessary -- at least not until we have become thoroughly and practically familiar with the use of very high speed devices of this kind, and also properly understood and started to exploit the entirely new possibilities for numerical treatment of complicated problems which they open up. Furthermore it seems questionable whether the method of acceleration by telescoping processes at the price of multiplying the number of elements required would in this situation achieve its purpose at all: The more complicated the vacuum tube equipment – that is, the greater the number of elements required – the wider the tolerances must be. Consequently any increase in this direction will also necessitate working with longer reaction times than the above mentioned one of one microsecond. The precise quantitative effects of this factor are hard to estimate in a general way – but they are certainly much more important for vacuum tube elements than for telegraph relay ones. Thus it seems worthwhile to consider the following viewpoint: The device should be as simple as possible, that is, contain as few elements as possible. This can be achieved by never performing two operations simultaneously, if this would cause a significant increase in the number of elements required. The result will be that the device will work more reliably and the vacuum tubes can be driven to shorter reaction times than otherwise. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
2) На уровне взаимодействия центральных устройств с памятью.
[НАЧАЛО ЦИТАТЫ] The orders which CC receives fall naturally into these four classes: (a) orders for CC to instruct CA to carry out one of its ten specific operations (cf. 11.4); (b) orders for CC to cause the transfer of a standard number from one place to another; (c) orders for CC to transfer its own connection with M to a different point in M, with the purpose of getting its next order from there; (d) orders controlling the operation of the input and the output of the device (i.e. I of 2.7 and O of 2.8). Let us now consider these classes (a)-(d) separately. We cannot at this time add anything to the statements of 11.4 concerning (a) (cf. however {}). The discussion of (d) is also better delayed (cf. {}). We propose, however, to discuss (b) and (c) now. 14.2 Ad (b): These transfers can occur within M, or within CA, or between M and CA. The first kind can always be replaced by two operations of the last kind, i.e. all transfers within M can be routed through CA. We propose to do this, since this is in accord with the general principle of 5.6 (cf. also the discussion of the second question in 11.1), and in this way we eliminate all transfers of the first kind. Transfers of the second kind are obviously handled by the operating controls of CA. Hence those of the last kind alone remain. They fall obviously into two classes: Transfers from M to CA and transfers from CA to M. We may break up accordingly (b) into (b’) and (b’’), corresponding to these two operations. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
3) На уровне передачи стимулов (сигналов) между элементами.
[НАЧАЛО ЦИТАТЫ] 11.1. [...] It is clearly necessary to be able to transfer from any part of M to CA, i.e. to Ica, Jca, and conversely from CA, i.e. from Oca, to any part of M. Direct connections between various parts of M do therefore not seem to be necessary: It is always possible to transfer from one part of M to the other via CA (cf. however, f14.2g). These considerations give rise to two questions: First: Is it necessary to connect each part of M with both Ica and Jca, or can this be simplified? Second: How are the transfers from one part of M to another part of M to be handled, where CA is only a through station? The first question can be answered in the light of the principle of 5.6 – to place multiple events in a temporal succession rather than in (simultaneous) spatial juxtaposition. This means that two real numbers which go from M into Ica and Jca, will have to go there in two successive steps. This being so, it is just as well to route each real number first in Ica, and to move it on (within CA) from Ica to Jca when the next real number comes (from M) into Ica. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
ХОД: Размещение инструкций для выполнения в последовательных ячейках памяти.
В архитектуре фон Неймана память состояла из 256 отдельных органов памяти, каждый из которых передавал информацию, и она хранилась в нем 32 цикла времени. Орган памяти передавал на вход новое число из памяти в управляющий блок каждый цикл. Таким образом, чтобы повысить надежность конструкции и увеличить быстродействие, имело смысл размещать команды для выполнения в последовательных циклах всего органа памяти.
[НАЧАЛО ЦИТАТЫ] 14.3 Ad (c): In principle CC should be instructed, after each order, where to find the next order that it is to carry out. We saw, however, that this is undesirable per se, and that it should be reserved for exceptional occasions, while as a normal routine CC should obey the orders in the temporal sequence in which they naturally appear at the output of the DLA organ to which CC is connected. (cf. the corresponding discussion for the iconoscope memory, (c) in 12.8.) There must, however, be orders available, which may be used at the exceptional occasions referred to, to instruct CC to transfer its connection to any other desired point in M. This is primarily a transfer of this connection to a different DLA organ (i.e. a dl organ in the sense of 12.7). Since, however, the connection actually wanted must be with a definite minor cycle, the order in question must consist of two instructions: First, the connection of CC is to be transferred to a definite DLA organ. Second, CC is to wait there until a definite τ-period, the one in which the desired minor cycle appears at the output of this DLA, and CC is to accept an order at this time only. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
Организация процессов в виде последовательности операций перенесена из схемотехники. Последовательные соединения содержали в себе меньше компонентов, были легче в производстве и реже ломались.
Строгая последовательность всех операций в машине стала возможной благодаря их синхронизации выполнения через фиксированные промежутки времени. Понятие синхронной работы было взято фон Нейманом их нейробиологии и работы нейронов головного мозга, которые были изучены к тому времени.
[НАЧАЛО ЦИТАТЫ] 6.3 At this point the following observation is necessary. In the human nervous system the conduction times along the lines (axons) can be longer than the synaptic delays, hence our above procedure of neglecting them aside of τ would be unsound. In the actually intended vacuum tube interpretation, however, this procedure is justified: τ is to be about a microsecond, an electromagnetic impulse travels in this time 300 meters, and as the lines are likely to be short compared to this, the conduction times may indeed by neglected. (It would take an ultra high frequency device – τ ≈ 10−8 seconds or less – to vitiate this argument.) Another point of essential divergence between the human nervous system and our intended application consists in our use of a well-defined dispersionless synaptic delay τ, common to all E-elements. (The emphasis is on the exclusion of a dispersion. We will actually use E-elements with a synaptic delay 2τ, cf. {6.4, 7.3}.) We propose to use the delays τ as absolute units of time which can be relied upon to synchronize the functions of various parts of the device. The advantages of such an arrangement are immediately plausible, specific technical reasons will appear in {}. In order to achieve this, it is necessary to conceive the device as synchronous in the sense of 4.1. The central clock is best thought of as an electrical oscillator, which emits in every period τ a short, standard pulse of a length τ’ of about (1/5)τ – (1/2)τ. The stimuli emitted nominally by an E-element are actually pulses of the clock, for which the pulse acts as a gate. There is clearly a wide tolerance for the period during which the gate must be kept open, to pass the clock-pulse without distortion. Cf. Figure 1. Thus the opening of the gate can be controlled by any electric delay device with a mean delay time τ, but considerable permissible dispersion. Nevertheless the effective synaptic delay will be τ with the full precision of the clock, and the stimulus is completely renewed and synchronized after each step. For a more detailed description in terms of vacuum tubes, cf. {}. [КОНЕЦ ЦИТАТЫ. Источник: First Draft of a Report on the EDVAC by John von Neumann. Moore School of Electrical Engineering. University of Pennsylvania. June 30, 1945.] |
Мы видим, что концепция архитектуры фон Неймана решала 3 конкретные проблемы построения первых электронных вычислительных машин серией из 6 ходов на разных уровнях: концептуальный, логический и физический. Отдельные ходы были взяты из таких смежных областей, как нейробиология и схемотехника.
Архитектура фон Неймана является ярким примером случая, когда высокая популярность и влияние новой концепции достигается непосредственно благодаря тому, что она закрывает сразу ряд потребностей зарождающейся области.
Концентрированная книга издательства LIVREZON складывается из сотен и тысяч проанализированных источников литературы и масс-медиа. Авторы скрупулёзно изучают книги, статьи, видео, интервью и делятся полезными материалами, формируя коллективную Базу знаний.
Пример – это фактурная единица информации: небанальное воспроизводимое преобразование, которое используется в исследовании. Увы, найти его непросто. С 2017 года наш Клуб авторов собрал более 80 тысяч примеров. Часть из них мы ежедневно публикуем здесь.
Каждый фрагмент Базы знаний относится к одной или нескольким категориям и обладает точной ссылкой на первоисточник. Продолжите читать материалы по теме или найдите книгу, чтобы изучить её самостоятельно.
📎 База знаний издательства LIVREZON – только полезные материалы.