Память на магнитных сердечниках была преобладающей формой компьютерной памяти с произвольным доступом в течение 20 лет, примерно с 1955 по 1975 год. Такую память часто называют просто основной памятью или, неофициально, ядром .
В сердечнике памяти используются тороиды (кольца) из магнитотвердого материала (обычно полутвердый феррит ). Каждое ядро хранит один бит информации. Через каждую жилу проходят два или более провода, образуя массив жил XY. Когда к проводам прикладывается электрический ток выше определенного порога, сердечник намагничивается. Ядро для записи выбирается путем подачи питания на один провод X и один провод Y на половину необходимой мощности, так что записывается только одно ядро на пересечении. В зависимости от направления токов сердечник будет воспринимать магнитное поле по или против часовой стрелки, сохраняя 1 или 0.
Этот процесс записи также вызывает индуцирование электричества в близлежащих проводах. Если новый импульс, приложенный к проводам XY, такой же, как последний, приложенный к этому сердечнику, существующее поле не будет действовать, и индукции не произойдет. Если новый импульс направлен в противоположном направлении, импульс будет сгенерирован. Обычно это улавливается по отдельному «чувствительному» проводу, что позволяет системе узнать, содержит ли это ядро 1 или 0. Поскольку для этого процесса считывания требуется запись ядра, этот процесс известен как деструктивное считывание и требует дополнительных схем. для сброса ядра к исходному значению, если процесс перевернул его.
Когда ядра не читаются и не записываются, они сохраняют последнее значение, которое они имели, даже если питание отключено. Следовательно, они представляют собой тип энергонезависимой памяти. В зависимости от того, как она была подключена, основная память могла быть исключительно надежной. Например, постоянная память основного каната использовалась на критически важном компьютере управления Аполлоном , необходимом для успешных высадок НАСА на Луну . [1]
При использовании меньших ядер и проводов плотность памяти ядра медленно увеличивалась. К концу 1960-х годов типичная плотность составляла около 32 килобит на кубический фут (около 0,9 килобит на литр). Стоимость снизилась за этот период примерно с 1 доллара за бит до примерно 1 цента за бит. Достижение такой плотности требовало чрезвычайно тщательного производства, которое почти всегда выполнялось вручную, несмотря на неоднократные серьезные усилия по автоматизации процесса. Core был почти универсальным до появления первых микросхем полупроводниковой памяти в конце 1960-х годов и особенно динамической памяти с произвольным доступом (DRAM) в начале 1970-х годов. Первоначально DRAM стоила примерно столько же, сколько ядро, но была меньше и проще в использовании. Core постепенно вытеснялся с рынка в период с 1973 по 1978 год.
Хотя основная память устарела, компьютерную память до сих пор иногда называют «ядром», хотя она сделана из полупроводников, особенно людьми, которые работали с машинами, имеющими настоящую основную память. Файлы, образующиеся в результате сохранения всего содержимого памяти на диск для проверки, которая в настоящее время обычно выполняется автоматически при возникновении серьезной ошибки в компьютерной программе, до сих пор называются « дампами ядра ».
Память на магнитном барабане (изобретена в 1932 году) была предшественницей памяти на магнитном сердечнике.
Основная концепция использования квадратной петли гистерезиса некоторых магнитных материалов в качестве накопителя или переключающего устройства была известна с самых первых дней разработки компьютеров. Большая часть этих знаний возникла благодаря пониманию работы трансформаторов , которые позволяли усиливать и переключать характеристики при изготовлении с использованием определенных материалов. Стабильное поведение переключения было хорошо известно в области электротехники , и его применение в компьютерных системах было немедленно. Например, Дж. Преспер Эккерт и Джеффри Чуан Чу провели некоторую работу по разработке этой концепции в 1945 году в Школе Мура во время работы над ENIAC . [2]
Пионер робототехники Джордж Девол подал патент [3] на первую статическую (неподвижную) магнитную память 3 апреля 1946 года. Магнитная память Девола была усовершенствована посредством пяти дополнительных патентов [4] [5] [6] [7] [8] ] и в конечном итоге использовался в первом промышленном роботе . Фредерик Вие подал заявку на получение различных патентов на использование трансформаторов для построения цифровых логических схем вместо релейной логики, начиная с 1947 года. Полностью разработанная базовая система была запатентована в 1947 году, а затем приобретена IBM в 1956 году. [9] Эта разработка была незначительной. Однако это известно, и основная разработка ядра обычно связана с тремя независимыми командами.
Существенная работа в этой области была проведена американскими физиками из Шанхая Ан Ваном и Вэй -Донг Ву, которые в 1949 году создали устройство управления передачей импульсов . ядра можно было использовать для управления переключением тока; его патент был посвящен использованию ядер для создания систем памяти с линией задержки или сдвиговым регистром . В то время Ван и Ву работали в вычислительной лаборатории Гарвардского университета , и университет не был заинтересован в продвижении изобретений, созданных в их лабораториях. Ван смог самостоятельно запатентовать систему.
Компьютеру MIT Project Whirlwind требовалась быстрая система памяти для отслеживания самолетов в реальном времени . Сначала использовался массив трубок Вильямса — система хранения данных на основе электронно-лучевых трубок , но она оказалась капризной и ненадежной. В конце 1940-х годов несколько исследователей задумали использовать магнитные сердечники для компьютерной памяти, но компьютерный инженер Массачусетского технологического института Джей Форрестер получил основной патент на свое изобретение основной памяти с совпадающими токами, которая позволяла хранить информацию в трехмерном пространстве. [12] [13] Уильям Папиан из Project Whirlwind процитировал одну из этих попыток, Гарвардскую «Линию статической магнитной задержки», во внутренней записке. Первая основная память размером 32 × 32 × 16 бит была установлена на Whirlwind летом 1953 года. Папиан заявил: «Магнитное хранилище имеет два больших преимущества: (1) более высокая надежность с последующим сокращением времени обслуживания, затрачиваемого на хранение; (2) более короткое время доступа (время доступа к ядру составляет 9 микросекунд; время доступа к трубке составляет примерно 25 микросекунд), что увеличивает скорость работы компьютера». [14]
В апреле 2011 года Форрестер вспоминал: «Использование ядер Вангом не оказало никакого влияния на мою разработку оперативной памяти. Память Ванга была дорогой и сложной. Насколько я помню, что может быть не совсем верно, в ней использовались два ядра. на двоичный бит и по существу представлял собой линию задержки, которая немного выдвигалась вперед. Насколько я мог сосредоточиться на этом, этот подход не подходил для наших целей». Он описывает изобретение и связанные с ним события, произошедшие в 1975 году. [15] С тех пор Форрестер заметил: «Нам потребовалось около семи лет, чтобы убедить отрасль в том, что память с произвольным доступом на магнитных сердечниках является решением недостающего звена в компьютерных технологиях. Затем следующие семь лет мы провели в патентных судах, убеждая их, что не все они подумали об этом первыми». [16]
Третьим разработчиком, участвовавшим в ранней разработке ядра, был Ян А. Райхман из RCA . Плодовитый изобретатель, Райхман разработал уникальную систему сердечников с использованием ферритовых лент, обернутых вокруг тонких металлических трубок, [17] построив свои первые образцы с использованием переделанного аспиринового пресса в 1949 году. [9] Позже Райхман разработал версии трубки Вильямса и возглавил разработку Селектрон . [18]
Два ключевых изобретения привели к разработке памяти на магнитных сердечниках в 1951 году. Первое, изобретение Ань Вана, было циклом записи после чтения, который решил проблему использования носителя данных, на котором в процессе чтения стирались считанные данные. , позволяющий создавать последовательный одномерный сдвиговый регистр (50 бит), использующий два ядра для хранения бита. Сдвиговый регистр ядра Вана находится на выставке Revolution в Музее истории компьютеров . Вторая, разработанная Форрестером, представляла собой систему совмещенного тока, которая позволяла с помощью небольшого количества проводов управлять большим количеством ядер, создавая трехмерные массивы памяти размером в несколько миллионов бит. Впервые магнитный сердечник был использован в компьютере Whirlwind [19] , а «самым известным вкладом проекта Whirlwind была функция произвольного доступа и хранения магнитных сердечников». [20] Коммерциализация последовала быстро. Магнитный сердечник использовался в периферийных устройствах ENIAC в 1953 году, [21] в IBM 702 [22] , выпущенном в июле 1955 года, а затем и в самом 702. IBM 704 (1954 г.) и Ferranti Mercury (1957 г.) использовали память на магнитном сердечнике.
В начале 1950-х годов компания Seeburg Corporation разработала одно из первых коммерческих приложений хранения основной памяти с совпадающими токами в памяти «Tormat» своей новой линейки музыкальных автоматов, начиная с V200, разработанного в 1953 году и выпущенного в 1955 году. [23] ] Последовали многочисленные применения в вычислительной технике, телефонии и управлении промышленными процессами .
Патент Ванга не был выдан до 1955 года, и к тому времени память на магнитных сердечниках уже использовалась. Это положило начало длинной серии судебных процессов, которые в конечном итоге закончились, когда IBM полностью выкупила патент у Ванга за 500 000 долларов США . [24] Ван использовал средства для значительного расширения Wang Laboratories , которую он основал вместе с доктором Ге-Яо Чу, одноклассником из Китая.
MIT хотел взимать с IBM гонорар в размере 0,02 доллара за бит основной памяти. В 1964 году, после многих лет судебных тяжб, IBM заплатила MIT 13 миллионов долларов за права на патент Форрестера — крупнейшая выплата по патентам на тот момент. [25] [26]
В 1953 году испытанные, но еще не натянутые сердечники стоили 0,33 доллара США каждый. По мере увеличения объема производства к 1970 году IBM производила 20 миллиардов ядер в год, а цена за ядро упала до 0,0003 доллара США . Размеры сердечников за тот же период сократились с диаметра примерно 0,1 дюйма (2,5 мм) в 1950-х годах до 0,013 дюйма (0,33 мм) в 1966 году. [27] Мощность, необходимая для изменения намагниченности одного ядра, пропорциональна объему, поэтому это означает снижение энергопотребления в 125 раз.
В стоимости полной системы памяти с ядром преобладала стоимость прокладки проводов через ядра. Система совпадающих токов Форрестера требовала, чтобы один из проводов был проложен под углом 45 градусов к сердечникам, что оказалось затруднительно соединить с помощью машины, поэтому массивы сердечников приходилось собирать под микроскопами работникам с точным управлением моторикой.
В 1956 году группа из IBM подала заявку на патент на машину, которая автоматически пропускала первые несколько проводов через каждое ядро. Эта машина удерживала всю плоскость сердечников в «гнезде», а затем проталкивала через сердечники множество полых игл, чтобы направлять провода. [28] Использование этой машины сократило время, необходимое для продевания прямых линий выбора X и Y, с 25 часов до 12 минут на базовом массиве 128 на 128. [29]
Стержни меньшего размера сделали использование полых игл непрактичным, но в полуавтоматической заправке стержней были достигнуты многочисленные успехи. Разработаны опорные гнезда с направляющими каналами. Сердечники были постоянно прикреплены к «заплатке» из подложки, которая поддерживала их во время производства и последующего использования. Иглы для заправки ниток были приварены к проволоке встык, поэтому диаметры иглы и проволоки были одинаковыми, и были предприняты усилия, чтобы исключить использование игл. [30] [31]
Самым важным изменением, с точки зрения автоматизации, стало объединение сенсорных и запрещающих проводов, устраняющее необходимость в схематическом диагональном сенсорном проводе. С небольшими изменениями в компоновке это также позволило более плотно упаковать ядра в каждом патче. [32] [33]
К началу 1960-х годов стоимость ядра упала до такой степени, что оно стало почти универсальным в качестве основной памяти , заменив как недорогую низкопроизводительную барабанную память , так и дорогостоящие высокопроизводительные системы, использующие электронные лампы , а позже и дискретные транзисторы в качестве памяти. Стоимость основной памяти резко снизилась за время существования технологии: стоимость началась примерно с 1,00 доллара США за бит и упала примерно до 0,01 доллара США за бит.
Основная память устарела из -за памяти на полупроводниковых интегральных схемах в 1970-х годах, но продолжала использоваться для критически важных и высоконадежных приложений в IBM System / 4 Pi AP-101 (использовалась в космическом корабле "Шаттл" до модернизации в начале 1990-х годов). и бомбардировщики B-52 и B-1B ). [34] [35] [36]
Примером масштаба, экономики и технологии основной памяти в 1960-х годах был блок основной памяти емкостью 256 КБ 36-битных слов (1,2 МБ [37] ), установленный на PDP-6 в Лаборатории искусственного интеллекта Массачусетского технологического института к 1967 году. [38] ] В то время это считалось «невообразимо огромным» и получило прозвище «Память Моби». [39] Он стоил 380 000 долларов (0,04 доллара за бит), имел ширину 69 дюймов, высоту 50 дюймов и глубину 25 дюймов с поддерживающей схемой (189 килобит/кубический фут = 6,7 килобит/литр). Время его цикла составляло 2,75 мкс. [40] [41] [42]
В 1980 году цена основной платы памяти мощностью 16 кВт ( килослово , что эквивалентно 32 КБ), которая устанавливалась в компьютер DEC Q-bus, составляла около 3000 долларов США . В то время массив сердечников и вспомогательная электроника умещались на одной печатной плате размером примерно 25×20 см, массив сердечников монтировался на несколько мм выше печатной платы и защищался металлической или пластиковой пластиной.
Термин «сердечник» происходит от обычных трансформаторов , обмотки которых окружают магнитный сердечник . В основной памяти провода проходят через любое ядро один раз — это одновитковые устройства. Свойства материалов, используемых для ядер памяти, кардинально отличаются от тех, которые используются в силовых трансформаторах. Магнитный материал для сердечника памяти требует высокой степени магнитной остаточной намагниченности , способности оставаться сильно намагниченными и низкой коэрцитивной силы , поэтому для изменения направления намагничивания требуется меньше энергии. Ядро может принимать два состояния, кодируя один бит. Содержимое основной памяти сохраняется даже при выключении системы памяти ( энергонезависимая память ). Однако при чтении ядра оно сбрасывается на «нулевое» значение. Схемы в системе памяти компьютера затем восстанавливают информацию в ходе немедленного цикла перезаписи.
Наиболее распространенная форма памяти с сердечником, линия совмещенного тока X/Y , используемая для основной памяти компьютера, состоит из большого количества небольших тороидальных ферримагнитных керамических ферритов ( сердечников ), скрепленных вместе в решетчатую структуру (организованную в виде «сетки»). «стопка» слоев, называемых плоскостями ), с проводами, вплетенными в отверстия в центрах сердечников. В ранних системах было четыре провода: X , Y , Sense и Inhibit , но более поздние ядра объединили два последних провода в одну линию Sense/Inhibit . [32] Каждый тороид хранит один бит (0 или 1). Доступ к одному биту в каждой плоскости можно было получить за один цикл, поэтому каждое машинное слово в массиве слов было распределено по «стеку» плоскостей. Каждая плоскость будет параллельно манипулировать одним битом слова , позволяя прочитать или записать полное слово за один цикл.
Сердечник основан на свойствах квадратной петли гистерезиса ферритового материала, из которого изготовлены тороиды. Электрический ток в проводе, проходящем через сердечник, создает магнитное поле. Только магнитное поле, интенсивность которого превышает определенную величину («селект»), может заставить сердечник изменить свою магнитную полярность. Чтобы выбрать ячейку памяти, на одну из линий X и одну из линий Y подается половина тока («полувыбор»), необходимого для вызова этого изменения. Только объединенное магнитное поле, создаваемое в месте пересечения линий X и Y (логическая функция И), достаточно для изменения состояния; другие ядра будут видеть только половину необходимого поля («наполовину выбрано») или не видеть вообще. Пропуская ток по проводам в определенном направлении, возникающее индуцированное поле заставляет магнитный поток выбранного сердечника циркулировать в одном или другом направлении (по часовой стрелке или против часовой стрелки). Одно направление — это сохраненный 1 , а другое — сохраненный 0 .
Тороидальная форма сердечника предпочтительна, поскольку магнитный путь замкнут, нет магнитных полюсов и, следовательно, внешний поток очень мал. Это позволяет сердечникам располагаться близко друг к другу без взаимодействия их магнитных полей. Попеременное расположение под углом 45 градусов, использовавшееся в ранних массивах ядер, было обусловлено наличием диагональных сенсорных проводов. Благодаря устранению этих диагональных проводов стала возможной более плотная упаковка. [33]
Время доступа плюс время перезаписи составляет время цикла памяти .
Чтобы прочитать часть памяти ядра, схема пытается переключить бит в полярность, присвоенную состоянию 0, управляя выбранными линиями X и Y, которые пересекаются в этом ядре.
Обнаружение такого импульса означает, что последний раз бит содержал 1. Отсутствие импульса означает, что бит содержал 0. Задержка в обнаружении импульса напряжения называется временем доступа к основной памяти.
После любого такого чтения бит содержит 0. Это иллюстрирует, почему доступ к памяти ядра называется деструктивным чтением : любая операция чтения содержимого ядра стирает это содержимое, и оно должно быть немедленно воссоздано.
Чтобы записать бит основной памяти, схема предполагает, что произошла операция чтения и бит находится в состоянии 0.
Провод Sense используется только во время чтения, а провод Inhibit используется только во время записи. По этой причине более поздние базовые системы объединили их в один провод и использовали схему в контроллере памяти для переключения функций провода.
Однако, когда провод Sense пересекает слишком много жил, ток половинного выбора также может вызвать значительное напряжение по всей линии из-за суперпозиции напряжения на каждой отдельной жиле. Этот потенциальный риск «неправильного считывания» ограничивает минимальное количество проводов Sense.
Увеличение количества проводов Sense также требует большего количества схем декодирования.
Контроллеры памяти ядра были спроектированы таким образом, что за каждым чтением немедленно следовала запись (поскольку чтение приводило все биты в 0, а запись предполагала, что это произошло). Наборы инструкций были разработаны с учетом этого.
Например, значение в памяти может быть прочитано и изменено почти так же быстро, как оно может быть прочитано и записано. В PDP-6 инструкции AOS*
(или SOS*
) увеличивали (или уменьшали) значение между фазой чтения и фазой записи одного цикла памяти (возможно, сигнализируя контроллеру памяти о необходимости короткой паузы в середине цикла). Это может быть в два раза быстрее, чем процесс получения значения с помощью цикла чтения-записи, увеличения (или уменьшения) значения в каком-либо регистре процессора, а затем записи нового значения с помощью другого цикла чтения-записи.
Основная память словных строк часто использовалась для обеспечения регистровой памяти. Другие названия этого типа — линейный выбор и 2-D . Эта форма основной памяти обычно прокладывает три провода через каждое ядро на плоскости: чтение слов , запись слов и считывание/запись битов . Чтобы прочитать или очистить слова, полный ток подается на одну или несколько строк чтения слов ; это очищает выбранные ядра и все, что инвертирует импульсы напряжения в их линиях чтения/записи битов . Для чтения обычно выбирается только одна строка чтения слова ; но для ясности можно выбрать несколько строк чтения слов , в то время как строки чтения/записи битов игнорируются. Для записи слов половинный ток подается на одну или несколько линий записи слов , а половинный ток подается на каждую линию чтения/записи бита для установки бита. В некоторых конструкциях линии чтения и записи слов были объединены в один провод, в результате чего в массиве памяти было всего два провода на бит. Для записи можно выбрать несколько строк записи слов . Это давало преимущество в производительности по сравнению с совпадающим током линии X/Y , поскольку несколько слов можно было очистить или записать с одним и тем же значением за один цикл. В наборе регистров типичной машины обычно использовалась только одна небольшая плоскость этой формы основной памяти. Некоторые очень большие запоминающие устройства были построены с использованием этой технологии, например, вспомогательная память Extended Core Storage (ECS) в CDC 6600 , которая содержала до 2 миллионов 60-битных слов.
Память ядра — это постоянная память (ПЗУ) в виде основной памяти. В этом случае сердечники, в которых было больше линейных магнитных материалов, просто использовались в качестве трансформаторов ; никакая информация фактически не хранилась магнитно внутри отдельных сердечников. Каждый бит слова имел одно ядро. Чтение содержимого данного адреса памяти генерировало импульс тока в проводе, соответствующем этому адресу. Каждый адресный провод был пропущен либо через ядро, чтобы обозначить двоичный код [1], либо вокруг этого ядра, чтобы обозначить двоичный номер [0]. Как и ожидалось, физически ядра были намного больше, чем ядра памяти для чтения и записи. Этот тип памяти был исключительно надежным. Примером может служить управляющий компьютер Аполлона , который использовался НАСА при посадке на Луну.
Производительность ранних модулей памяти можно охарактеризовать в сегодняшних терминах как примерно сопоставимую с тактовой частотой 1 МГц (что эквивалентно домашним компьютерам начала 1980-х годов, таким как Apple II и Commodore 64 ). Ранние системы памяти с ядром имели время цикла около 6 мкс , которое к началу 1970-х годов упало до 1,2 мкс, а к середине 70-х годов оно снизилось до 600 нс (0,6 мкс). Некоторые конструкции имели значительно более высокую производительность: CDC 6600 имел время цикла памяти 1,0 мкс в 1964 году, используя ядра, которым требовался ток полувыбора 200 мА. [43] Было сделано все возможное, чтобы уменьшить время доступа и увеличить скорость передачи данных (пропускную способность), включая одновременное использование нескольких сеток ядра, каждая из которых хранит один бит слова данных. Например, машина может использовать 32 сетки ядра с одним битом 32-битного слова в каждой, а контроллер может получить доступ ко всему 32-битному слову за один цикл чтения/записи.
Основная память является энергонезависимым хранилищем : она может хранить свое содержимое неопределенно долго без питания. Он также относительно не подвержен влиянию ЭМИ и радиации. Это были важные преимущества для некоторых приложений, таких как промышленные программируемые контроллеры первого поколения , военные объекты и транспортные средства, такие как истребители , а также космические корабли , и привели к использованию ядра в течение ряда лет после появления полупроводниковой МОП-памяти (см. Также MOSFET ). . Например, бортовые компьютеры космического корабля IBM AP-101B использовали базовую память, которая сохраняла содержимое памяти даже после распада «Челленджера » и последующего падения в море в 1986 году. [44]
Другой характеристикой раннего ядра было то, что коэрцитивная сила была очень чувствительна к температуре; правильный ток полувыбора при одной температуре не является правильным током полувыбора при другой температуре. Таким образом, контроллер памяти будет включать в себя датчик температуры (обычно термистор ) для правильной регулировки уровней тока в зависимости от изменений температуры. Примером этого является основная память, используемая Digital Equipment Corporation для своего компьютера PDP-1 ; эта стратегия продолжалась во всех последующих системах базовой памяти, созданных DEC для линейки компьютеров PDP с воздушным охлаждением.
Другой метод управления температурной чувствительностью заключался в помещении «стопки» магнитных сердечников в печь с контролируемой температурой. Примерами этого являются ядро памяти IBM 1620 с подогревом воздуха (для достижения рабочей температуры которого может потребоваться до 30 минут , около 106 ° F (41 ° C), а также ядро памяти IBM 7090 с подогревом масляной ванны) . ранние IBM 7094 и IBM 7030. Ядро нагревалось, а не охлаждалось, потому что основным требованием была постоянная температура, и было проще (и дешевле) поддерживать постоянную температуру, значительно превышающую комнатную температуру, чем температуру на уровне или ниже нее.
Диагностика аппаратных проблем в основной памяти требовала запуска трудоемких диагностических программ. В то время как быстрый тест проверял, может ли каждый бит содержать единицу и ноль, эта диагностика проверяла основную память с наихудшими шаблонами и должна была работать в течение нескольких часов. Поскольку большинство компьютеров имели только одну плату основной памяти, эти диагностические средства также перемещались по памяти, позволяя проверять каждый бит. Расширенный тест назывался « тест Шму », в котором токи полувыбора изменялись вместе со временем, в которое проверялась чувствительная линия («стробировалась»). График данных этого теста, казалось, напоминал мультперсонажа по имени « Шму », и это имя прижилось. Во многих случаях ошибки можно было устранить, осторожно постучав по печатной плате с массивом сердечников о стол. Это немного изменило положение жил вдоль проходящих через них проводов и могло решить проблему. Эта процедура требовалась редко, поскольку основная память оказалась очень надежной по сравнению с другими компьютерными компонентами того времени.
{{cite book}}
: |website=
игнорируется ( помощь )CS1 maint: location missing publisher (link)