Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Для промежуточного программного обеспечения для grid-вычислений см. UNICORE .

Unicore - это название архитектуры набора компьютерных команд, разработанной Центром исследований и разработок микропроцессоров (MPRC) Пекинского университета в КНР . Компьютер, построенный на этой архитектуре, называется Unity-863 . [1] ЦП интегрирован в полнофункциональную SoC для создания системы, подобной ПК. [2]

Процессор очень похож на архитектуру ARM , но использует другой набор инструкций. [3] [ нужен лучший источник ]

Он поддерживается ядром Linux, начиная с версии 2.6.39. [4] Поддержка будет удалена в ядре Linux версии 5.9, поскольку кажется, что никто не поддерживает ее, а код отстает от остального кода ядра и требований компилятора. [5]

Набор инструкций [ править ]

Инструкции почти идентичны стандартным форматам ARM, за исключением того, что условное выполнение было удалено, а биты переназначены для расширения всех спецификаторов регистров до 5 бит. [6] [7] Аналогичным образом, непосредственный формат - это 9 бит, повернутых на 5-битную величину (а не 8 бит, повернутых на 4), размеры смещения загрузки / сохранения составляют 14 бит для байта / слова и 10 бит для байта со знаком. или полуслова. Условные перемещения обеспечиваются кодированием условия во (не используемом ARM) поле второго исходного регистра Rn для инструкций MOV и MVN.

Значение различных битов флага (например, S = 1 позволяет устанавливать коды условий) идентично набору инструкций ARM. Команда загрузки / сохранения нескольких может иметь доступ только к половине набора регистров, в зависимости от бита H. Если H = 0, 16 битов указывают R0 – R15; если H = 1, R16 – R31.

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

  1. ^ «Введение в MPRC» . Центр исследований и разработок микропроцессоров, Пекинский университет.
  2. ^ Сюй Чэн; Сяоинь Ван; Цзюньлинь Лу; Цзянфан И; Донг Тонг; Сюэтао Гуань; Фэн Лю; Сяньхуа Лю; Чун Ян; Yi Feng (март 2010), "Исследование Прогресс UNICORE процессоров и PKUnity SoCs" (PDF) , журнал компьютерных наук и технологий (JCST) , 25 (2): 200-213 , извлекаться 2012-07-11
  3. ^ Бергманн, Арнд (2012-07-09). «Re: [PATCH 00/36] AArch64 Linux kernel port» . linux-kernel (список рассылки) . Проверено 11 июля 2012 . Другой интересный пример - unicore32, который на самом деле имеет больше кода с arch / arm, чем предлагаемый arch / aarch64. Я думаю, что кодовая база unicore32 выиграет, если будет снова объединена в arch / arm в качестве третьего набора инструкций, но дополнительные затраты на обслуживание для всех, кто работает над ARM, делают это нереалистичным.
  4. ^ "Окно слияния закрыто - 2.6.39-rc1 out" . Линус Торвальдс .
  5. ^ "удалить поддержку unicore32" . Майк Рапопорт.
  6. ^ Сюй-Хунг Чан; Хуан-Цзя Ченг; Юань-Шин Хван (2012-02-25), «Удвоение количества регистров на процессорах ARM» (PDF) , 16-й семинар по взаимодействию между компиляторами и компьютерными архитектурами (INTERACT) , стр. 1–8, doi : 10.1109 / INTERACT .2012.6339620 , ISBN  1-4673-2613-5
  7. ^ Исходный код симулятора процессора Unicore . Форматы инструкций находятся в decode.c, дизассемблирование - в интерпретаторе, а эмуляция - в instEx.c.
  8. ^ Исходный код эмулятора QEMU Unicore32