Все мы знаем что такое оперативная память, а также что её всегда недостаточно. Не согласится разве что компания Apple, считающая, что 8 гигабайтов хватит всем. Но когда и как возникла оперативная память? Как устроена она на уровне полупроводников и логических вентилей? Как раньше обходились без неё, и возможно ли отказаться от неё снова? Попробуем разобраться в этом, пройдясь по хронологии развития технологии и заодно порассуждаем о том, что нас ожидает в будущем.

Архитектура фон Неймана

Современная вычислительная техника в значительной мере основывается на архитектуре, предложенной Джоном фон Нейманом в середине XX века. Эта архитектура предполагает разделение системы на пять основных компонентов: арифметико-логическое устройство, устройство управления, память, устройства ввода и вывода. 

Джон фон Нейман (слева) и Роберт Оппенгеймер у компьютера MANIAC I, 1952 год. 
Джон фон Нейман (слева) и Роберт Оппенгеймер у компьютера MANIAC I, 1952 год. 

Важным аспектом архитектуры фон Неймана является концепция программируемого устройства, где память используется для хранения как данных, так и инструкций, что обеспечивает гибкость и универсальность вычислительных машин. Эта архитектура стала основой для большинства современных компьютеров, определяя принципы работы центрального процессора (ЦП) и взаимодействия его с памятью.

И всё было бы прекрасно, если бы не одно «но»: память может быть либо быстрой, либо с малой задержкой, либо дешёвой по отношению к объёму. Но не всё сразу. Так было в начале прошлого века, и так остаётся до сих пор. В результате сегодня доминирующей архитектурой компьютеров является Гарвардская, где основной накопитель информации и память для хранения команд процессора являются раздельными устройствами.

С чего всё начиналось

История оперативной памяти начинается с момента зарождения вычислительной техники в середине XX века. В первых электронно-вычислительных машинах (ЭВМ) использовали электронные лампы в качестве основных элементов памяти. Эти устройства были громоздкими, энергоёмкими и требовали постоянного технического обслуживания. Например, одна из первых ЭВМ — ENIAC — занимала целую комнату и потребляла огромное количество электроэнергии.

Появление транзисторов в 1950-х и 1960-х годах стало важным этапом в развитии вычислительной техники. Транзисторы заменили электронные лампы, что позволило значительно уменьшить размеры устройств, снизить энергопотребление и повысить надёжность. В 1960-х годах появилась первая полупроводниковая память — статическая оперативная память (SRAM), которая использовала шесть транзисторов для хранения одного бита данных.

Переход к динамической памяти

В 1969 году был сделан следующий важный шаг в развитии оперативной памяти: компания Intel разработала первый коммерческий чип динамической оперативной памяти (DRAM). В отличие от SRAM, DRAM использует всего один транзистор и один конденсатор для хранения каждого бита данных, что позволяет значительно увеличить плотность размещения памяти и уменьшить её стоимость. Однако DRAM требует периодического обновления данных, что усложняет её использование.

Первый коммерческий чип SRAM-памяти, Intel 1101 на 256 битов, 1969 год.
Первый коммерческий чип SRAM-памяти, Intel 1101 на 256 битов, 1969 год.

Первые модули DRAM имели ёмкость всего 1 килобайт, но со временем ёмкость памяти увеличивалась экспоненциально. В 1980-х годах появились первые модули DRAM с ёмкостью в мегабайты, что открыло новые возможности для разработки более мощных и многофункциональных компьютеров. DRAM стала основой для оперативной памяти во многих системах, так как её высокая плотность хранения данных и сравнительно низкая стоимость позволили создавать более компактные и производительные устройства.

Модуль оперативной памяти 98257A на 1 МБ, 1985 год.
Модуль оперативной памяти 98257A на 1 МБ, 1985 год.

SRAM и DRAM

SRAM (Static RAM)

SRAM, или статическая оперативная память, представляет собой тип памяти, который не требует периодического обновления для поддержания своих данных. В её основе лежит схема flip-flop из шести транзисторов. SRAM быстрее DRAM, так как доступ к данным осуществляется без задержек на обновление. Однако она дороже в производстве и имеет большую физическую размерность на бит данных.

SRAM широко используется в кеш-памяти процессоров благодаря своей высокой скорости и надёжности. Она позволяет значительно ускорить доступ к часто используемым данным и инструкциям, что критично для повышения общей производительности системы.

DRAM (Dynamic RAM)

DRAM, или динамическая оперативная память, использует один транзистор и один конденсатор для хранения каждого бита данных. Она требует регулярного обновления информации, поскольку заряд на конденсаторе постепенно расходуется. DRAM медленнее SRAM, но имеет гораздо более высокую плотность хранения и значительно меньшую стоимость производства, что делает её идеальной для использования в качестве основной оперативной памяти в компьютерах и других устройствах.

DRAM обеспечивает достаточный объём памяти для выполнения сложных вычислительных задач и работы с большим количеством информации.

Заглянем в будущее

Будущее развития памяти ведёт к возможному отходу от Гарвардской архитектуры и возвращению к архитектуре фон Неймана. Новые технологии позволяют создавать постоянную память (NVRAM), которая по скорости работы и времени задержки приближается к оперативной. Это может привести к исчезновению различий между оперативной и постоянной памятью, создавая единый накопитель данных. Уже сейчас постоянные накопители активно используются для swap-разделов, и современные PCIe SSD начинают приближаться по характеристикам к DDR4.

Постоянная память и swap-разделы

Использование постоянной памяти в качестве временного хранилища данных (swap) уже давно практикуется в вычислительных системах. С появлением высокоскоростных PCIe SSD накопителей этот подход становится всё более эффективным. Эти накопители предлагают высокую скорость чтения и записи, значительно улучшая производительность системы при интенсивных вычислительных нагрузках.

В будущем мы можем ожидать появления новых типов памяти, в которых объединятся преимущества оперативной и постоянной, обеспечивая быстрый доступ к данным и их надёжное хранение без необходимости разделения на разные типы памяти. Это может привести к революции в архитектуре компьютеров и созданию более эффективных и производительных систем.

Система на чипе Apple Silicone M1.
Система на чипе Apple Silicone M1.

Заключение

Оперативная память прошла долгий путь от громоздких и ненадёжных электронных ламп до современных высокоэффективных модулей DDR. Эволюция технологий памяти значительно повысила производительность и функциональность вычислительных систем, открыв новые горизонты для науки, техники и повседневной жизни. Однако эволюция не всегда ведёт только вперёд: иногда она возвращается к истокам. Возможно, архитектуры компьютеров вернутся от Гарвардской к фон Неймановской. С развитием процессоров ARM и x86, стремящихся к интеграции всех компонентов, и быстрым прогрессом постоянной памяти, это кажется всё более вероятным.

Комментарии (35)


  1. SIISII
    26.08.2024 08:39
    +7

    Крайне поверхностно, без упоминания многих фактов и т.д. и т.п. Чьим был "первый коммерческий чип SRAM-памяти", я не скажу, но им точно не была приведённая в статье интеловская микросхема ёмкостью 256 бит. В частности, у TI были микросхемы 7481 и 7484 ёмкостью аж 16 бит, причём это ещё не совсем полноценное ОЗУ, а лишь его накопитель: этим микросхемам был нужен внешний дешифратор адреса и схемы управления записью и считыванием. Тем не менее, это самая что ни на есть настоящая статическая память на триггерах (но каждый триггер -- отнюдь не шесть транзисторов; последние -- это современная схемотехника КМОП, а отнюдь не доминировавшая в 1960-70-х годах ТТЛ и не n-МОП, которая применялась в микросхемах памяти более-менее значительного объёма в 1970-80-х). Да и первые "модули DRAM", а точнее, микросхемы, имели ёмкость поменьше 1 килобайта; например, массово были распространены микросхемы организацией 4096*1 бит, т.е., в пересчёте на байты, 512 байт.

    Ну и впечатление такое, что до Интела памяти вообще не было :) Где, например, рассказ про ферритовую память, на которой работали абсолютно все вычислительные машины 60-начала 70-х? Или про более ранние реализации, где использовались и запоминающие ЭЛТ, и ртутные линии задержки, а то и вовсе магнитные барабаны?

    На лампах, кстати, оперативную память никто не делал. На них были собраны усилители и логические элементы, а не сама память. И появившиеся транзисторы сначала потеснили лампы именно в этом качестве, а память оставалась той же самой -- ферритовой.

    В общем, совершенно ни о чём.


    1. fedorro
      26.08.2024 08:39
      +1

      Да и картинки со схемами SRAM и DRAM перепутаны, ну и то что должно было быть DRAM - не очень подходит под описание "один транзистор и один конденсатор".


      1. AKudinov
        26.08.2024 08:39
        +3

        Картинки не перепутаны, на них на обеих SRAM изображена, DRAM вообще там нет.


  1. KirpaPuto
    26.08.2024 08:39
    +1

    Содержание статьи:

    Новые технологии позволяют создавать постоянную память (NVRAM), которая по скорости работы и времени задержки приближается к оперативной

    ...

    Зачем эта бубуйня про Эниак, электронные лампы и 1969 год? Мы тут вроде как всё айтишеики, а не сосиски в тесте.


    1. unreal_undead2
      26.08.2024 08:39

      Новые технологии - это в смысле прикрытый пару лет назад интеловский Optane/3D XPoint?


  1. unreal_undead2
    26.08.2024 08:39
    +3

    память может быть либо быстрой, либо с малой задержкой, либо дешёвой по отношению к объёму. Но не всё сразу.

    Поэтому есть основная память на DRAM и кеши на SRAM. А вот откуда взялось

    В результате сегодня доминирующей архитектурой компьютеров является Гарвардская

    совершенно непонятно, на Гарварде сейчас разве что простые микроконтроллеры, в "обычных" процессорах никакого ухода от фон Неймана не было. Разве что статью генерировал AI в Сберклауде.


    1. SIISII
      26.08.2024 08:39
      +2

      Потому что с терминами обращаются очень вольно, а заодно часто не понимают реальный смысл терминологии, а смотрят лишь на некий формальный признак. Торчат из процессорного ядра отдельные порты для доступа к коду и данным -- всё, это Гарвард, хотя сам проц как был фон-неймановским, так и остался, ибо адресное пространство-то общее у кода и данных, а не принципиально отдельное как у гарвардской архитектуры (именно в едином или разных адресных пространствах отличия между этими двумя подходами, а отнюдь не в числе внешних интерфейсов процессорного ядра, иначе, например, придётся сказать, что, скажем, Cortex-M1 может быть то гарвардским, то фон-неймановским в зависимости от того, включены в настоящий момент времени DTCM и ITCM или отключены).


      1. ptr128
        26.08.2024 08:39

        Во многих современных CPU общего назначения разделены кеш данных и кеш инструкций. Получается, внутри CPU гарвардской архитектуры (физически инструкции и данные в разной памяти и доступ к ним по разным каналам), а снаружи - фон Неймановской. Оттуда и путаница.


        1. SIISII
          26.08.2024 08:39
          +1

          Принципиальное отличие гарвардской архитектуры от фон-неймановской -- наличие двух независимых адресных пространств для кода и для данных, из-за чего численно одинаковый адрес вызывает обращение к разным ячейкам памяти в зависимости от того, используется ли он для доступа к коду или данным. Из современных действительно гарвардских архитектур, пожалуй, самая известная -- это AVR8 (благодаря Ардуине); в частности, в ней для доступа к константам, записанным во флэш-памяти, т.е. в памяти кода, пришлось ввести специальные команды, а не обычные, работающие с данными в ОЗУ.

          Обычные же процы все поголовно являются фон-неймановскими, и разделение кэшей не делает их гарвардскими: обращение по одному и тому же адресу вызовет доступ к одной и той же ячейке памяти независимо от того, где она кэширована (как это будет реализовано технически -- второй вопрос). Правда, их нередко называют "модифицированными гарвардскими" или чем-то подобным, но лишь вносят лишнюю путаницу: с точки зрения программиста это фон-неймановские архитектуры, а что у них там внутри, программиста вообще не касается (а вот на настоящих гарвардских перед программистом появляется ряд дополнительных проблем; можете попробовать для интереса на той же Ардуине использовать printf("abc") и char S[] = "abc"; printf(S) -- сразу увидите разницу).


          1. ptr128
            26.08.2024 08:39

            Принципиальное отличие гарвардской архитектуры от фон-неймановской -- наличие двух независимых адресных пространств для кода и для данных

            Это Ваша личная интерпретация. Если же поискать определения, то оказывается несколько иначе.

            "The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data." - об адресном пространстве ни слова.

            "Modern processors appear to the user to be systems with von Neumann architectures, with the program code stored in the same main memory as the data. For performance reasons, internally and largely invisible to the user, most designs have separate processor caches for the instructions and data, with separate pathways into the processor for each. This is one form of what is known as the modified Harvard architecture."

            Иными словами, современные CPU относятся к модифицированной Гарвардской архитектуре.

            Из современных действительно гарвардских архитектур, пожалуй, самая известная -- это AVR8 (благодаря Ардуине); в частности, в ней для доступа к константам, записанным во флэш-памяти, т.е. в памяти кода, пришлось ввести специальные команды, а не обычные, работающие с данными в ОЗУ.

            Так же известен STM8, явно заявленный "Harvard architecture", но имеющий общее адресное пространство для данных и инструкций. Более того, позволяющего выполнять код из RAM, пусть и с меньшей производительностью, чем из флеша, но зато с меньшим энергопотреблением (см. Table 21).


            1. SIISII
              26.08.2024 08:39

              Моя личная интерпретация как раз и отражает единственную существенную разницу между гарвардской архитектурой и фон-неймановской, а приведённая Вами цитата лишь запутывает картину, цепляясь к техническим подробностям и упуская из вида главное. Вспомните о том, что эти самые "separate storage and signal pathways for instructions and data" для фон-неймановских процессоров (которые, если не ошибаюсь, Вы склонны называть гарвардскими или модифицированными гарвардскими) имеют место только между ядром и кэш-памятью первого уровня; в последующих кэшах и тем более в собственно памяти разделения на код и данные у фон-неймановских процессоров нет. Ну и сравните это с настоящими гарвардскими архитектурами, например, с AVR8, где команды и данные хранятся в разных модулях памяти, которые между собой вообще не пересекаются по адресам (и для выборки данных из памяти команд нужны специальные команды, отличающиеся от команд, работающих с памятью данных).

              Насчёт STM8 я не в курсе -- не сталкивался с ними. Ну а если кто-то безграмотно пишет (а и на Вике, и даже в технической документации на процессорные ядра безграмотности хватает) -- это уже не моя вина. Я, например, для какое-то из ядер Cortex-M видел, что в TRM его назвали гарвардской архитектурой (не модифицированной даже, а просто гарвардской), хотя все разновидности архитектуры ARM являются фон-неймановскими (и команды, и данные могут извлекаться из одной и той же памяти по одним и тем же адресам; для ускорения могут, но не обязаны использоваться отдельные кэши или TCM для кода и данных, но их всегда можно отключить в процессе работы -- и что, это изменит архитектуру процессора?)

              И, замечу, что документацию, что Вику, что комментарии на Хабре пишут обычные люди. Считать заранее, что написанное где-то "там" является авторитетным и правильным -- такое себе... Даже в настоящих, тщательно выверенных энциклопедиях иногда попадаются ошибки, а уж в кое-как состряпанных быдлоиндусами документах...


              1. ptr128
                26.08.2024 08:39

                Моя личная интерпретация как раз и отражает единственную существенную разницу между гарвардской архитектурой и фон-неймановской

                Но только с точки зрения пользователя и с очень большой натяжкой. А с точки зрения инженера принципиально не столько общее или раздельное адресное пространство, сколько параллельный доступ по разным каналам к данным и инструкциям.

                если кто-то безграмотно пишет -- это уже не моя вина.

                Но когда беграмотно пишете Вы - это уже Ваша вина. А так как ни одной(!) ссылки, подтверждающей Ваше личное мнение Вы не привели (в отличии от меня), то безграмотным выглядите именно Вы.

                Я могу привести сотни ссылок, подтверждающих, что "modified Harvard architecture" подразумевает общее адресное пространство для данных и инструкций. А сколько найдете Вы?


                1. unreal_undead2
                  26.08.2024 08:39
                  +1

                  с точки зрения инженера принципиально не столько общее или раздельное адресное пространство, сколько параллельный доступ по разным каналам к данным и инструкциям.

                  С точки зрения программиста гораздо важнее, можно ли зачитать или записать код инструкциями доступа к данным (скажем, на гарвардской архитектуре нельзя загрузить код с внешнего устройства в RAM и начать исполнять).


                  1. ptr128
                    26.08.2024 08:39

                    С точки зрения программиста

                    Программист и есть пользователь CPU.

                    на гарвардской архитектуре нельзя загрузить код с внешнего устройства в RAM и начать исполнять

                    Читаем даташит на STM8 и убеждаемся, что на Гарвардской архитектуре это можно.

                    Далее читаем ARM документацию и видим фразу "the instruction bus of Harvard architecture processors such as ARM9TDMI" и ещё раз убеждаемся в том же.

                    А вот Вы тоже не смогли привести ни одной ссылки на компетентный источник, подтверждающей Ваше мнение.


                    1. unreal_undead2
                      26.08.2024 08:39
                      +1

                      Достаточно посмотреть, как был устроен Harvard Mark I, от которого пошла терминология.

                      Читаем даташит на STM8

                      Из интереса - а где там конкретно там пишут про исполнение кода из RAM?


                      1. ptr128
                        26.08.2024 08:39

                        Еще раз, дайте ссылки на компетентные источники, где указано, что "модифицированная Гарвардская архитектура" исключает наличие общего адресного пространства для данных и инструкций.


                      1. unreal_undead2
                        26.08.2024 08:39
                        +1

                        А "модифицированная" откуда взялась? В обсуждаемой статье этого слова не было. Так то да, раздельные кеши называют модифицированным Гарвардом - но это на мой взгляд только к путанице приводит.


                      1. ptr128
                        26.08.2024 08:39

                        С моего первого комментария. И более подробно на эту тему в следующем комментарии.

                        И как раз про то, что это приводит к путанице я первым же комментарием указал )


                      1. SIISII
                        26.08.2024 08:39

                        И я про то же говорю. Фон-неймановская и просто гарвардская относятся... ну, к архитектуре -- т.е. к самим принципам функционирования процессора/компьютера с точки зрения программиста (предусматривает ли архитектура жёсткое разделение на код и данные или же не проводит различия между ними). А "модифицированная гарвардская" -- это чисто про реализацию, с точки зрения не программиста, а разработчика процессора.


                      1. unreal_undead2
                        26.08.2024 08:39

                        Если и говорить о "модифицированной гарвардской", то для программиста важнее не само по себе её наличие, а когерентность кешей инструкций и данных. Но по этому критерию вроде пока на гарвард/фон-нейман не разделяют.


                      1. SIISII
                        26.08.2024 08:39

                        А когерентность кэшей к "модифицированной гарвардской" вообще не относится, по большому счёту. Скажем, у мэйнфреймов IBM -- если не с Системы 360, то с Системы 370 точно -- есть чётко прописанные в руководстве по архитектуре критерии, которые аппаратура обеспечивает, при этом, естественно, сама архитектура не навязывает способ реализации. Например, самомодифицирующийся код автоматом учитывается процессором, на котором он выполняется (т.е. можно выполнить запись буквально следующей выполняемой команды -- и процессор обязан исполнить уже модифицированную команду). Однако изменения, вносимые в память другими процессорами или подсистемой ввода-вывода (каналами), могут оставаться неучтённым до тех пор, пока не произойдёт сериализация (она всегда происходит при прерываниях, а также в ряде других строго обозначенных случаев, но может происходить и чаще; в частности, если у машины в принципе нет никаких кэшей и буферов, это логически эквивалентно непрерывно выполняемой сериализации).

                        Понятно, что современные мэйнфреймы z/Architecture являются "модифицированными гарвардскими", т. е. с радельными кэшами команд и данных -- но архитектурно они как были фон-нейманами, так и остались, и ведут себя, с точки зрения программиста, так же, как вели себя их предки их 1970-х годов. В плане сериализации добавилось пару моментов для повышения общей эффективности. Скажем, в Системе 370 команды сравнения и обмена (CS и CDS) выполняли принудительную полную сериализацию, что требовало переписи всех изменённых строк кэшей в основную память (ОП; термин ОЗУ там исторически не используется, а никакой другой памяти у машины, с точки зрения программиста, нет -- ну, не считая "внешней памяти" в виде дисков и лент, конечно) и последующей полной очистки всех кэшей, чтобы учесть изменения в ОП, которые могли быть внесены другими процессорами или каналами. В z/Architecture эти команды ведут себя точно так же (обеспечение совместимости!), но появился ряд других команд, которые выполняют лишь "узкую" сериализацию -- гарантируют запись изменений из кэшей и последующую загрузку актуального содержимого ОП только для тех ячеек памяти, к которым эти команды обращаются (чем достигается повышение производительности: не всегда требуется полная сериализация, и какой способ выбрать, определяет программист).


                      1. ptr128
                        26.08.2024 08:39

                        Из интереса - а где там конкретно там пишут про исполнение кода из RAM?

                        Table 21.


                      1. unreal_undead2
                        26.08.2024 08:39
                        +1

                        Спасибо, действительно как то вольно нынче с терминологией обращаются.


                      1. ptr128
                        26.08.2024 08:39

                        Просто эта терминология исходит от разработчиков CPU и MK, а не программистов. Реализация отдельных шин доступа к данным и инструкциям, с точки зрения схемотехники, намного сложнее, чем реализация общего или раздельного адресного пространства.

                        Кто-то вообще не указывает архитектуру, кто-то придумывает уточняющие термины, такие как модифицированная/гибридная/расширенная Гарвардская архитектура.

                        Я с этого и начинал, что тут в терминологии путаница, а комитеты стандартизации, такие как ANSI/ISO/IEK даже не пытаются эту путаницу разрешить. Скорее всего, потому что это имеет чисто академический интерес.


                      1. unreal_undead2
                        26.08.2024 08:39

                        Да, посмотрел ещё - тут вообще три разных смысла выделяют. Но если придерживаться терминологии с раздельными кешами - тогда везде сплошной Гарвард и появление NVRAM никак этого не меняет - оно влияет только на архитектуру компьютера за пределами процессора, вклиниваясь между (или заменяя собой) обычную RAM и SSD, так что тут стоит рассуждать скорее о сглаживании различий между объектами в памяти и файлами на диске. Такие исследования тоже есть (тот же завалишинский Phantom не совсем умер), но пока адекватного железа не появилось.


                1. SIISII
                  26.08.2024 08:39

                  1) Как уже отметил другой товарищ, пользователем процессора является программист, и для него между фон-неймановской и гарвардской архитектурой есть только одно принципиальное различие -- единые или разные адресные пространства для кода и данных.

                  2) Я пишу о разнице фон-неймановской и гарвардской архитектуры, о гарвардской говорит и обсуждаемая изначально статья. О "модифицированной гарвардской" я написал лишь то, что этот термин вносит дополнительную путаницу; я нигде не утверждал, что "модифицированная гарвардская" архитектура вводит разные адресные пространства для кода и данных (тем самым не давая возможность использовать один и тот же адрес и для кода, и для данных в разных ситуациях). Так что попрошу не передёргивать.

                  3) Вам нужны ссылки -- ищите историю появления гарвардской архитектуры и почитайте, как работали первые компьютеры, построенные на ней. Именно на них различие с фон-неймановской и проявилось во всей красе.

                  4) Вы привели цитату из ARM9TDMI про "гарвардскую архитектуру" -- не "модифицированную", а просто "гарвардскую". Однако это ядро, как в целом вся без исключения архитектура ARM (конкретно это ядро относится к версии ARMv5T, если не изменяет память), является фон-неймановской архитектурой, допускающей исполнение кода и чтение-запись данных из одной и той же памяти, а не гарвардской, строго разграничивающей адресные пространства. Автор документа -- как раз тот самый быдлоиндус, безграмотно использующий термины, и реальная авторитетность данного источника в плане терминологии равна нулю (она ненулевая в плане описания особенностей реализации ядра).


                  1. ptr128
                    26.08.2024 08:39

                    Предлагаю закончить, так как Ваши мысленные изыскания мне не интересны, а агрументировать свое мнение ссылками на компетентные источники Вы явно не можете.

                    Я со ссылками доказал оспариваемое Вами моё утверждение в первом комментарии, что введение термина "модифицированная/гибридная/расширенная Гарвардская архитектура" внесло путаницу. И если лично для себя Вы эту путаницу решили за счет игнорирования схемотехники, то консенсуса в сообществе это создать не может, так как сначала разрабатывается схемотехника. И именно создатели схемотехники вводят терминологию. А вовсе не пользователи этой схемотехники. Даже если они программисты.


                    1. SIISII
                      26.08.2024 08:39

                      И если лично для себя Вы эту путаницу решили за счет игнорирования схемотехники, то консенсуса в сообществе это создать не может, так как сначала разрабатывается схемотехника. И именно создатели схемотехники вводят терминологию.

                      Начиная, по меньшей мере, с Системы 360, сначала разрабатывается архитектура, т.е. система команд, правила обработки прерываний и т.д. и т.п., и лишь затем реализация, включая схемотехнику.

                      Терминология же должна, вообще говоря, стандартизироваться -- и только в таком случае можно указывать тексты стандартов или иных нормативных документов как авторитетные источники. Но, кажется, Вы сами где-то выше говорили, что внести порядок в использование терминологии комитеты по стандартизации даже не пытались. Так что, простите, единственным авторитетным источником в такой ситуации может быть только анализ происхождения термина и его связь с описываемыми им явлениями -- а при таком анализе станет ясно, что процессоры "модифицированной гарвардской архитектуры" на практике ведут себя как фон-неймановские (исполняют код и обеспечивают доступ к данным в одних и тех же ячейках памяти), а не как гарвардские (строго разделяют хранилища кода и хранилища данных), а соответственно, опускать слово "модифицированная" недопустимо, что, однако, нередко делают -- как сделали в процитированном Вами документе от ARM.

                      В общем, "фон-неймановская" и "гарвардская" архитектуры, хотя и пошли изначально от реализации (в первом приближении -- схемотехники) конкретных вычислительных машин 1940-х годов, влияют на видение машины со стороны программиста (единое или разные адресные пространства кода и данных). А вот "модифицированная гарвардская" архитектура относится только к уровню микроархитектуры и реализации (опять-таки, в первом приближении -- к схемотехнике) и не влияет на наблюдаемое программистом "глобальное" поведение машины (при условии, конечно, что программист соблюдает требования архитектуры по, например, использованию самомодифицирующегося кода: в IA-32 или Системе 370 никаких действий ему предпринимать не надо, а вот в ARM требуется выполнить барьеры данных и команд, чтобы гарантировать учёт внесённых изменений).


              1. Vlad65536
                26.08.2024 08:39

                Простите, что вмешиваюсь, но

                единственную существенную разницу

                безграмотно пишет

                быдлоиндус

                А Вы кто, чтобы решать, что существенно для схемотехники и так грубо отзываться о сотрудниках крупнейших разработчиков МК и CPU? Д'Артаньян?


                1. SIISII
                  26.08.2024 08:39

                  1) Я где-то утверждаю, что что-то существенно или несущественно для схемотехники? Кажется, я утверждаю лишь то, что разделение на фон-неймановскую и гарвардскую (без всякой "модифицированной") существенно для программиста, а схемотехники вообще не касаюсь.

                  2) Я указал на фактическую ошибку, допущенную автором конкретного документа: он написал, что архитектура гарвардская (не "модифицированная гарвардская", а просто "гарвардская"), в то время как архитектура ARM не предполагает разделения на кода и данных и не реализует его, включая указанное ядро ARM9TDMI.

                  3) А если и д'Артаньян, то что с того? Это не я ошибку в документации допустил. Кстати, ARM её несколько раз повторяет в разных документах -- т.е. часть документации (а именно,TRM) там пишут люди, не видящие разницы между "гарвардской" и "модифицированной гарвардской".


                  1. Vlad65536
                    26.08.2024 08:39
                    +1

                    1) Вы утверждаете

                    отражает единственную существенную разницу между гарвардской архитектурой и фон-неймановской

                    Вообще, без уточнений, что она единственная только для Вас или некоторого ограниченного круга лиц.

                    2) Вы именно грубо отозвались о человеке за глаза. Вот если бы Вы написали в STM или ARM и в письме указали на предполагаемую лично Вами ошибку - это было бы указание, которое автор мог бы оспорить. А так это была обыкновенная грубость.

                    3) Ничего, кроме того, что считаете себя непогрешимым. А значит читать Вами написанное не имеет никакого смысла. Вот если бы Вы допустили ошибку, признали её и исправили, вот тогда наоборот, читать написанное Вами действительно имело бы смысл. А раз Вы не ошибаетесь - то значит ничего не делаете )


                    1. SIISII
                      26.08.2024 08:39

                      1) Из контекста ясно, что речь идёт о некотором ограниченном круге лиц -- о программистах (поскольку для программиста есть разница, можно ли обращаться к данным в произвольных областях памяти или такой разницы нет -- сравните на Ардуине поведение printf("abc") и printf(S), где S -- массив в оперативе).

                      2) Я писал в ARM -- реакция была нулевой. Приходилось мне писать и в IBM по поводу ошибок в z/Architecture Principles of Operations -- там отвечали, а замеченные ошибки исправляли в последующих версиях данного документа.

                      3) Где я утверждаю, что я непогрешим? Это Вы мне приписываете непогрешимость.


  1. ptr128
    26.08.2024 08:39
    +1

    Емкость первого серийного чипа DRAM (i1103) была 1 килобит, а не 1 килобайт. А о серийных чипах емкостью 1 мегабайт (8 мегабит) я в 80-х не слышал. Мегабит был в 1987. Может даже 4 мегабита (просто не помню, выпущен был в 1989 или 1990 году). Но уж точно не 8 мегабит.


  1. zbot
    26.08.2024 08:39
    +1

    Это ИИ от сбера статью писал?


    1. reregistration
      26.08.2024 08:39

      apple ai