Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Этот 68451 MMU может использоваться с Motorola 68010

Блок управления памятью ( MMU ), иногда называемый блоком управления страничной памятью ( PMMU ), представляет собой аппаратный блок компьютера , в котором все ссылки на память проходят через себя, в основном выполняющий преобразование адресов виртуальной памяти в физические адреса .

MMU эффективно выполняет виртуальную память управления, обработки и в то же время защиты памяти , кэш - контроль, шины арбитража и, в более простых компьютерных архитектур (особенно 8-битные системы), переключения банков .

Обзор [ править ]

Схема работы MMU [1] : 186 и сл.

Современные MMU обычно делят виртуальное адресное пространство (диапазон адресов, используемых процессором) на страницы , каждая из которых имеет размер, равный степени 2, обычно несколько килобайт , но они могут быть намного больше. Нижние биты адреса (смещение внутри страницы) остаются без изменений. Старшие биты адреса - это номера виртуальных страниц. [2]

Записи в таблице страниц [ править ]

Большинство MMU используют таблицу элементов в памяти, называемую « таблицей страниц », содержащую одну « запись таблицы страниц » (PTE) на страницу, для сопоставления номеров виртуальных страниц с номерами физических страниц в основной памяти. Ассоциативный кэш PTE называется резервным буфером трансляции (TLB) и используется, чтобы избежать необходимости доступа к основной памяти каждый раз, когда отображается виртуальный адрес. Другие MMU могут иметь частный массив памяти [3] или регистры, которые содержат набор записей таблицы страниц. Номер физической страницы в сочетании со смещением страницы дает полный физический адрес. [2]

PTE также может включать информацию о том, была ли страница записана (« грязный бит »), когда она использовалась в последний раз («доступный бит» для алгоритма замены наименее недавно использованной (LRU) страницы ), какой вид процессы ( пользовательский режим или режим супервизора ) могут читать и записывать его, а также следует ли его кэшировать .

Иногда PTE запрещает доступ к виртуальной странице, возможно, потому, что для этой виртуальной страницы не выделена физическая оперативная память . В этом случае MMU сигнализирует об ошибке страницы в CPU. Затем операционная система (ОС) обрабатывает ситуацию, возможно, пытаясь найти запасной фрейм ОЗУ и настроить новый PTE, чтобы сопоставить его с запрошенным виртуальным адресом. Если нет свободной оперативной памяти, может потребоваться выбрать существующую страницу (известную как «жертва»), используя некоторый алгоритм замены , и сохранить ее на диск (процесс, называемый « разбиение на страницы »). С некоторыми MMU также может быть нехватка PTE, и в этом случае ОС должна будет освободить один для нового сопоставления. [2]

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

Преимущества [ править ]

VLSI VI475 MMU "Apple HMMU"
из Macintosh II,
используемого с Motorola 68020

В некоторых случаях сбой страницы может указывать на ошибку программного обеспечения , которую можно предотвратить, используя защиту памяти как одно из ключевых преимуществ MMU: операционная система может использовать его для защиты от ошибочных программ, запрещая доступ к памяти, которую конкретная программа не должен иметь доступа к. Обычно операционная система назначает каждой программе собственное виртуальное адресное пространство. [2]

MMU также снижает проблему фрагментации памяти. После того, как блоки памяти выделены и освобождены, свободная память может стать фрагментированной (прерывистой), так что самый большой непрерывный блок свободной памяти может быть намного меньше, чем общий объем. С помощью виртуальной памяти непрерывный диапазон виртуальных адресов может быть сопоставлен с несколькими несмежными блоками физической памяти; это несмежное выделение - одно из преимуществ разбиения на страницы . [2]

В некоторых ранних конструкциях микропроцессоров управление памятью выполнялось отдельной интегральной схемой, такой как VLSI Technology VI475 (1986), Motorola 68851 (1984), используемая с ЦП Motorola 68020 в Macintosh II , или Z8010 [4] и Z8015 (1985) [5] используется с процессорами семейства Zilog Z8000 . Более поздние микропроцессоры (такие как Motorola 68030 и Zilog Z280 ) размещали MMU вместе с ЦП на той же интегральной схеме, как и микропроцессоры Intel 80286 и более поздние версии x86 .

Хотя в этой статье основное внимание уделяется современным MMU, обычно основанным на страницах, ранние системы использовали аналогичную концепцию для адресации с ограничениями по базовому адресу, которая в дальнейшем получила развитие в сегментации . Иногда они также присутствуют на современных архитектурах. Архитектура x86 обеспечивала сегментирование, а не разбиение по страницам, в 80286 и обеспечивает как подкачку, так и сегментацию в процессорах 80386 и более поздних версий (хотя использование сегментации недоступно в 64-разрядных операциях).

Примеры [ править ]

Большинство современных систем разделяют память на страницы размером 4-64 КБ , часто с возможностью использования так называемых огромных страниц размером 2 МБ или 1 ГБ (часто возможны оба варианта). Переводы страниц кэшируются в резервном буфере перевода (TLB). Некоторые системы, в основном более старые разработки RISC , попадают в ловушку ОС, когда перевод страницы не найден в TLB. В большинстве систем используется аппаратный обходчик деревьев. Большинство систем позволяют отключать MMU, но некоторые отключают MMU при захвате кода ОС.

VAX [ править ]

Страницы VAX имеют размер 512 байт, что очень мало. ОС может обрабатывать несколько страниц, как если бы они были одной большой страницей. Например, Linux на VAX группирует вместе восемь страниц. Таким образом, система рассматривается как имеющая страницы размером 4 КБ . VAX делит память на четыре фиксированных области размером 1 ГБ каждая . Они есть:

P0 пространство
Используется для универсальной памяти для каждого процесса, такой как кучи.
Пространство P1
(Или пространство управления), которое также относится к отдельным процессам и обычно используется для супервизора, исполнительной системы, ядра , пользовательских стеков и других структур управления процессами, управляемых операционной системой.
S0 пространство
(Или системное пространство), которое является глобальным для всех процессов и хранит код и данные операционной системы, независимо от того, выгружены они или нет, включая таблицы.
S1 пространство
Который не используется и «зарезервирован для цифрового ».

Таблицы страниц представляют собой большие линейные массивы. Обычно это было бы очень расточительно, если адреса используются на обоих концах возможного диапазона, но таблица страниц для приложений сама хранится в выгружаемой памяти ядра. Таким образом, фактически существует двухуровневое дерево , позволяющее приложениям иметь разреженную структуру памяти, не тратя много места на неиспользуемые записи таблицы страниц. VAX MMU отличается отсутствием доступного бита . Операционные системы, реализующие разбиение по страницам, должны найти способ имитировать доступный бит, чтобы они работали эффективно. Обычно ОС периодически отключает отображение страниц, чтобы можно было использовать ошибки отсутствия страницы, чтобы позволить ОС установить бит доступа.

ARM [ править ]

Процессоры приложений на основе архитектуры ARM реализуют MMU, определяемую архитектурой системы виртуальной памяти ARM. Текущая архитектура определяет PTE для описания страниц размером 4 КБ и 64 КБ , разделов 1 МБ и суперсекций 16 МБ ; в старых версиях также была определена крошечная страница размером 1 КБ . ARM использует двухуровневую таблицу страниц при использовании страниц размером 4 КБ и 64 КБ или только одноуровневую таблицу страниц для разделов размером 1 МБ и разделов 16 МБ .

Обновления TLB выполняются автоматически аппаратными средствами перемещения таблицы страниц. PTE включают разрешение доступа для чтения / записи на основе привилегий, информации о кэшируемости, бита NX и небезопасного бита. [6]

IBM System / 360 Model 67, IBM System / 370 и последующие [ править ]

Системы IBM / 360 Model 67 , который был введен августа 1965, включал MMU называется окно перевод динамический адрес (DAT). [7] [8] Он имеет необычную функцию хранения битов доступа и грязных битов за пределами таблицы страниц (вместе с четырехбитным ключом защиты для всех процессоров S / 360). Они относятся к физической памяти, а не к виртуальной памяти, и доступ к ним осуществляется с помощью специальных инструкций. [8] Это снижает накладные расходы для ОС, которой в противном случае потребовалось бы распространять используемые и грязные биты из таблиц страниц в более физически ориентированную структуру данных. Это упрощает виртуализацию на уровне ОС , позже названную паравиртуализацией .

Начиная с августа 1972 года, IBM System / 370 имеет аналогичный MMU, хотя изначально он поддерживал только 24-битное виртуальное адресное пространство, а не 32-битное виртуальное адресное пространство System / 360 Model 67. Он также сохраняет доступ к и грязные биты за пределами таблицы страниц. В начале 1983 года архитектура System / 370-XA расширила виртуальное адресное пространство до 31 разряда, а в 2000 году была представлена 64-разрядная архитектура z / с расширением адресного пространства до 64 бит; те продолжают хранить использованные и грязные биты вне таблицы страниц.

DEC Alpha [ править ]

Процессор DEC Alpha делит память на страницы по 8 КБ . После промаха TLB низкоуровневый машинный код микропрограммы (здесь называется PALcode ) просматривает трехуровневую таблицу страниц с древовидной структурой. Адреса разбиты следующим образом: 21 бит не используется, 10 бит для индексации корневого уровня дерева, 10 бит для индексации среднего уровня дерева, 10 бит для индексации конечного уровня дерева и 13 бит, которые проходят через на физический адрес без изменений. Поддерживаются полные биты разрешений на чтение / запись / выполнение.

MIPS [ править ]

Архитектура MIPS поддерживает от одной до 64 записей в TLB. Количество записей TLB настраивается при конфигурации ЦП перед синтезом. Записи TLB двойные. Каждая запись TLB сопоставляет номер виртуальной страницы (VPN2) одному из двух номеров кадров страницы (PFN0 или PFN1) в зависимости от младшего бита виртуального адреса, который не является частью маски страницы . Этот бит и биты маски страницы не хранятся в VPN2. Каждая запись TLB имеет собственный размер страницы, который может принимать любое значение от 1 КБ до 256 МБ.кратно четырем. Каждый PFN в записи TLB имеет атрибут кэширования, грязный и действительный бит состояния. VPN2 имеет глобальный бит состояния и идентификатор, назначенный ОС, который участвует в сопоставлении записи TLB виртуального адреса, если глобальный бит состояния установлен в ноль. PFN хранит физический адрес без битов маски страницы.

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

MIPS32 и MIPS32r2 поддерживают 32 бита виртуального адресного пространства и до 36 бит физического адресного пространства. MIPS64 поддерживает до 64 бит виртуального адресного пространства и до 59 бит физического адресного пространства.

Вс 1 [ править ]

Оригинальный Sun 1 - это одноплатный компьютер, построенный на микропроцессоре Motorola 68000 и представленный в 1982 году. Он включает в себя оригинальный блок управления памятью Sun 1, который обеспечивает преобразование адресов, защиту памяти, совместное использование памяти и распределение памяти для нескольких процессов, запущенных на ЦП. . Весь доступ процессора к частной бортовой памяти, внешние Multibus памяти, на борту I / O и работает Multibus ввода / вывода через MMU, где перевод и защита адресов выполняются в единой форме. MMU аппаратно реализован на плате ЦП.

MMU состоит из регистра контекста, карты сегментов и карты страниц. Виртуальные адреса ЦП преобразуются в промежуточные адреса картой сегментов, которые, в свою очередь, преобразуются в физические адреса картой страниц. Размер страницы составляет 2 КБ, а размер сегмента - 32 КБ, что дает 16 страниц на сегмент. Одновременно можно отображать до 16 контекстов. Максимальное логическое адресное пространство для контекста составляет 1024 страницы или 2 МБ. Максимальный физический адрес, который может отображаться одновременно, также составляет 2 МБ.

Регистр контекста важен в многозадачной операционной системе, поскольку он позволяет процессору переключаться между процессами без перезагрузки всей информации о состоянии преобразования. 4-битный регистр контекста может переключаться между 16 разделами карты сегментов под управлением супервизора, что позволяет отображать 16 контекстов одновременно. Каждый контекст имеет собственное виртуальное адресное пространство. Совместное использование виртуального адресного пространства и межконтекстные коммуникации могут быть обеспечены записью одних и тех же значений в карты сегментов или страниц разных контекстов. Дополнительные контексты можно обрабатывать, рассматривая карту сегментов как кеш контекста и заменяя устаревшие контексты на наименее недавно использовавшиеся.

Регистр контекста не делает различий между состояниями пользователя и супервизора. Прерывания и ловушки не переключают контексты, что требует, чтобы все допустимые векторы прерываний всегда отображались на странице 0 контекста, а также на допустимый стек супервизора. [9]

PowerPC [ править ]

В PowerPC страницы G1, G2, G3 и G4 обычно имеют размер 4 КБ. После промаха TLB стандартный MMU PowerPC начинает два одновременных поиска. Один поиск пытается сопоставить адрес с одним из четырех или восьми регистров трансляции адреса блока данных (DBAT) или четырех или восьми регистров трансляции адреса блока инструкций (IBAT), в зависимости от ситуации. Регистры BAT могут отображать линейные блоки памяти размером до 256 МБ и обычно используются ОС для отображения больших частей адресного пространства для собственного использования ядром ОС. Если поиск BAT завершается успешно, другой поиск останавливается и игнорируется.

Другой поиск, не поддерживаемый напрямую всеми процессорами в этом семействе, осуществляется через так называемую « инвертированную таблицу страниц », которая действует как хешированное внешнее расширение TLB. Во-первых, четыре старших бита адреса используются для выбора одного из 16 сегментных регистров. Затем 24 бита из сегментного регистра заменяют эти четыре бита, создавая 52-битный адрес. Использование сегментных регистров позволяет нескольким процессам совместно использовать одну и ту же хеш-таблицу .

52-битный адрес хешируется, а затем используется в качестве индекса во внешней таблице. Там группа записей таблицы на восьми страницах просматривается на предмет соответствия. Если совпадений нет из-за чрезмерного количества хеш-коллизий , процессор снова пытается использовать немного другую хеш-функцию . Если это тоже не удается, ЦП переходит в ОС (с отключенным MMU), чтобы проблема могла быть решена. ОС необходимо удалить запись из хеш-таблицы, чтобы освободить место для новой записи. ОС может сгенерировать новую запись из более нормальной древовидной таблицы страниц или из структур данных для каждого отображения, которые, вероятно, будут медленнее и эффективнее по пространству. Поддержка запрета на выполнение находится в сегментных регистрах, что обеспечивает гранулярность 256 МБ .

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

Также несколько медленно удаляются записи таблицы страниц процесса. ОС может избежать повторного использования значений сегментов, чтобы отложить решение этой проблемы, или она может решить потерять память, связанную с хеш-таблицами для каждого процесса. Микросхемы G1 не ищут записи в таблице страниц, но они генерируют хэш, ожидая, что ОС будет искать стандартную хеш-таблицу с помощью программного обеспечения. ОС может писать в TLB. Чипы G2, G3 и ранние G4 используют оборудование для поиска в хеш-таблице. Последние чипы позволяют ОС выбирать любой метод. На микросхемах, которые делают это необязательным или не поддерживают его вообще, ОС может использовать исключительно древовидную таблицу страниц.

IA-32 / x86 [ править ]

Архитектура x86 развивалась в течение очень долгого времени при сохранении полной совместимости программного обеспечения, даже для кода ОС. Таким образом, MMU чрезвычайно сложен с множеством различных возможных режимов работы. Здесь описывается нормальная работа традиционного процессора 80386 и его преемников ( IA-32 ).

ЦП в основном делит память на страницы по 4 КБ . Сегментные регистры, лежащие в основе старых конструкций MMU 8088 и 80286 , не используются в современных операционных системах, за одним важным исключением: доступ к данным, зависящим от потока, для приложений или данным, зависящим от процессора, для ядер ОС, который осуществляется с явным использованием Сегментные регистры FS и GS. Весь доступ к памяти включает в себя сегментный регистр, выбираемый в соответствии с выполняемым кодом. Сегментный регистр действует как индекс в таблице, который обеспечивает смещение, добавляемое к виртуальному адресу. За исключением случаев использования FS или GS, ОС гарантирует, что смещение будет нулевым.

После добавления смещения адрес маскируется, чтобы его длина не превышала 32 бита. Результат можно просмотреть с помощью древовидной таблицы страниц, при этом биты адреса разделяются следующим образом: 10 бит для ветви дерева, 10 бит для листьев ветви и 12 младших битов непосредственно скопировал в результат. Некоторые операционные системы, такие как OpenBSD с его функцией W ^ X и Linux с патчами Exec Shield или PaX , также могут ограничивать длину сегмента кода, как указано в регистре CS, чтобы запретить выполнение кода в изменяемых областях адресное пространство.

Незначительные изменения MMU, представленные с Pentium , позволили получить очень большие страницы размером 4 МБ , пропустив нижний уровень дерева (это оставляет 10 бит для индексации первого уровня иерархии страниц, а оставшиеся 10 + 12 битов напрямую копируются в результат ). Незначительные изменения MMU, представленные с Pentium Pro, представили функцию расширения физического адреса (PAE), позволяющую 36-битным физическим адресам с 2 + 9 + 9 битами для трехуровневых таблиц страниц и 12 младшими битами, непосредственно копируемыми в результат. Большие страницы ( 2 МБ) также доступны при пропуске нижнего уровня дерева (что приводит к 2 + 9 битам для двухуровневой иерархии таблиц, а оставшиеся 9 + 12 младших битов копируются напрямую). Кроме того, таблица атрибутов страницы позволяла определять кэшируемость путем поиска нескольких старших битов в небольшой таблице на процессоре.

Изначально поддержка без выполнения была предоставлена ​​только для отдельных сегментов, что делало ее очень неудобной в использовании. Более поздние чипы x86 предоставляют бит неисполнения для каждой страницы в режиме PAE. Механизмы W ^ X , Exec Shield и PaX , описанные выше, имитируют постраничную поддержку неисполнения на машинах с процессорами x86, у которых отсутствует бит NX, путем установки длины сегмента кода с потерей производительности и уменьшением доступного адресного пространства. .

x86-64 [ править ]

Гетерогенная системная архитектура (HSA) создает единое виртуальное адресное пространство для процессоров, графических процессоров и DSP, устраняя трюки сопоставления и копирования данных.

x86-64 - это 64-битное расширение x86, которое почти полностью устраняет сегментацию в пользу плоской модели памяти, используемой почти во всех операционных системах для процессоров 386 или новее. В длинном режиме игнорируются все смещения сегментов, кроме сегментов FS и GS. При использовании страниц размером 4 КБ дерево таблицы страниц имеет четыре уровня вместо трех.

Виртуальные адреса делятся следующим образом: 16 битов не используются, по девять бит для четырех уровней дерева (всего 36 бит), и 12 младших битов напрямую копируются в результат. Для страниц размером 2 МБ имеется только три уровня таблицы страниц, всего 27 бит, используемых при подкачке страниц, и 21 бит смещения. Некоторые новые процессоры также поддерживают страницу размером 1 ГБ с двумя уровнями подкачки страниц и 30 битами смещения. [10]

CPUID можно использовать, чтобы определить , поддерживаются ли страницы размером 1 ГБ . Во всех трех случаях требуется, чтобы 16 старших битов были равны 48-му биту, или, другими словами, младшие 48 битов имеют знаковое расширение до старших битов. Это сделано для обеспечения возможности расширения адресуемого диапазона в будущем без ущерба для обратной совместимости. На всех уровнях таблицы страниц запись в таблице страниц включает бит неисполнения .

Unisys MCP Systems (Burroughs B5000) [ править ]

Burroughs B5000 с 1961 был первой коммерческой системой для поддержки виртуальной памяти (после Атласа ), даже если он не имеет MMU [11] Это не обеспечивает две функции в MMU - виртуальные адреса памяти и защиту памяти - с другой архитектурным подходом .

Во-первых, при отображении адресов виртуальной памяти вместо MMU системы MCP основаны на дескрипторах . Каждому выделенному блоку памяти дается главный дескриптор со свойствами блока (т. Е. Размером, адресом и наличием в памяти). Когда делается запрос на доступ к блоку для чтения или записи, оборудование проверяет его присутствие через бит присутствия (pbit) в дескрипторе.

Бит 1 указывает на наличие блока. В этом случае доступ к блоку можно получить через физический адрес в дескрипторе. Если pbit равен нулю, для MCP (операционной системы) генерируется прерывание, чтобы обеспечить наличие блока. Если поле адреса равно нулю, это первый доступ к этому блоку, и он выделяется (бит инициализации). Если адресное поле не равно нулю, это дисковый адрес блока, который ранее был развернут, поэтому блок извлекается с диска, бит устанавливается в единицу, а адрес физической памяти обновляется, чтобы указывать на блок. в памяти (еще pbit). Это делает дескрипторы эквивалентными записи в таблице страниц в системе MMU. Производительность системы можно контролировать по количеству битов. Начальные биты указывают на начальные распределения, но высокий уровень других битов указывает на то, что система может перегружаться.

Таким образом, все распределение памяти полностью автоматическое (одна из особенностей современных систем [12] ), и кроме этого механизма нет другого способа выделить блоки. Нет таких вызовов, как malloc или dealloc, поскольку блоки памяти также автоматически отбрасываются. Схема также является ленивой , поскольку блок не будет выделен, пока на него не будет ссылаться. Когда память почти заполнена, MCP проверяет рабочий набор, пробуя уплотнение (поскольку система сегментирована, а не выгружена на страницы), освобождая сегменты только для чтения (например, сегменты кода, которые могут быть восстановлены из их исходной копии) и, как в крайнем случае, выкатывание сегментов грязных данных на диск.

Другой способ, которым B5000 обеспечивает функцию MMU, - это защита. Поскольку все обращения осуществляются через дескриптор, аппаратное обеспечение может проверить, что все обращения находятся в установленных пределах, а в случае записи - что процесс имеет разрешение на запись. Система MCP по своей природе безопасна и, следовательно, не требует MMU для обеспечения такого уровня защиты памяти. Дескрипторы доступны только для чтения пользовательским процессам и могут обновляться только системой (аппаратным обеспечением или MCP). (Слова, тег которых является нечетным числом, доступны только для чтения; дескрипторы имеют тег 5, а кодовые слова имеют тег 3.)

Блоки могут совместно использоваться процессами с помощью дескрипторов копирования в стеке процессов. Таким образом, некоторые процессы могут иметь разрешение на запись, а другие - нет. Сегмент кода доступен только для чтения, поэтому повторно используется и используется процессами. Дескрипторы копирования содержат 20-битное адресное поле, дающее индекс главного дескриптора в массиве главного дескриптора. Это также реализует очень эффективный и безопасный механизм IPC. Блоки можно легко перемещать, поскольку при изменении статуса блока обновляется только главный дескриптор.

Единственный другой аспект - это производительность: обеспечивают ли системы на основе MMU или без них более высокую производительность? Системы MCP могут быть реализованы поверх стандартного оборудования, у которого есть MMU (например, стандартный ПК). Даже если реализация системы каким-то образом использует MMU, это вообще не будет видно на уровне MCP.

См. Также [ править ]

  • Контроллер памяти
  • Управление памятью
  • Сегментация памяти

Ссылки [ править ]

  1. ^ Таненбаум, Эндрю С. (2009). Современные операционные системы . Река Аппер Сэдл (Нью-Джерси): Прентис-Холл. ISBN 978-0-13-600663-3.
  2. ^ а б в г д Фрэнк Уеда (2009). «Лекция 7: Управление памятью» (PDF) . CSE 120: Принципы операционных систем . Калифорнийский университет в Сан-Диего . Проверено 4 декабря 2013 .
  3. ^ Spectra 70 70-46 Руководство по процессору (PDF) . RCA . Март 1968 г. с. 4 . Проверено 15 августа 2013 года .
  4. ^ "Технические характеристики устройства управления памятью Z8010 Z8000 MMU" (PDF) . Зилог . Апрель 1985 г. Цитировать журнал требует |journal=( помощь )
  5. ^ "Электронная таблица данных для поиска и загрузки сайта" (PDF) . Ic-on-line.cn . Проверено 3 мая 2017 . [ постоянная мертвая ссылка ]
  6. ^ "Cortex-A8 Техническое справочное руководство" (PDF) . Infoventer.arm.com . Проверено 3 мая 2017 .
  7. ^ "Архивы IBM: System / 360 Даты и характеристики" . 03.ibm.com . Проверено 3 мая 2017 .
  8. ^ a b «Функциональные характеристики IBM System / 360 Model 67, третье издание» (PDF) . Февраль 1972 года. GA27-2719-2. Архивировано из оригинального (PDF) 14 марта 2012 года . Проверено 8 ноября 2016 .
  9. ^ Руководство пользователя платы Sun 68000, Sun Microsystems, Inc, февраль 1983 г., редакция B
  10. ^ "Руководство программиста архитектуры AMD64 Том 2: Системное программирование" (PDF) . Марта 2017 года . Проверено 5 декабря 2017 .
  11. ^ Таненбаум, Эндрю С .; Гердер, Йоррит Н .; Бос, Герберт (май 2006 г.). «Можем ли мы сделать операционные системы надежными и безопасными?» . Компьютер . 39 (5): 44–51. CiteSeerX 10.1.1.112.3028 . DOI : 10,1109 / MC.2006.156 . 
  12. ^ Инголлс (август 1981). «Принципы проектирования Smalltalk» . Байт Журнал . Архивировано из оригинала на 2007-09-27.

Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.