Jump to content

Юникор

(Перенаправлено с Unicore32 )
Юникор
Дизайнер Центр микропроцессорных исследований и разработок
Биты 32-битный
Представлено 1999
Дизайн РИСК
Кодирование Зафиксированный
Ветвление Код состояния
Порядок байтов Маленький
Размер страницы 4 КиБ
Регистры
общего назначения 31
Плавающая точка 32

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 бит для знакового байта или полуслова. Условные перемещения обеспечиваются путем кодирования условия во втором поле исходного регистра Rn (не используемом ARM) для инструкций MOV и MVN.

Обзор набора команд Unicore32 [ 8 ]
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Описание
0 0 0 код операции С Рн Роуд сдвиг 0 Ш 0 Рм Работа АЛУ, Rd = Rn op Rm сдвиг #shift
0 0 0 код операции С Рн Роуд рупий 0 Ш 1 Рм Работа АЛУ, Rd = Rn op Rm сдвиг Rs
0 0 1 код операции С Рн Роуд сдвиг имм9 Операция АЛУ, Rd = Rn op #imm9 ROTL #shift
0 1 0 П В Б В л Рн Роуд сдвиг 0 Ш 0 Рм Загрузить/сохранить Rd по адресу Rn ± Rm сдвиг #shift
0 1 1 П В Б В л Рн Роуд смещение14 Загрузить/сохранить Rd по адресу Rn ± смещение14
1 0 0 П В С В л Рн Растровое изображение высокое 0 0 ЧАС Растровое изображение низкое Загрузка/сохранение нескольких регистров
1 0 1 состояние л смещение24 Ветка (и ссылка), если условие истинно
1 1 0 Инструкции сопроцессора (FPU)
1 1 1 1 1 1 1 1 Номер ловушки Программное прерывание
0 0 0 0 0 0 А С Рн Роуд рупий 1 0 0 1 Рм Умножаем, Rd = Rm * Rs (+ Rn)
0 0 0 1 0 0 0 л 11111 11111 00000 1 0 0 1 Рм Отделение и обмен (BX, BLX)
0 1 0 П В 0 В л Рн Роуд 00000 1 С ЧАС 1 Рм Загрузить/сохранить Rd по адресу Rn ± Rm (16 бит)
0 1 0 П В 1 В л Рн Роуд имм_привет 1 С ЧАС 1 имм_ло Загрузить/сохранить Rd по адресу Rn ± #imm10 (16 бит)

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

  1. ^ «Введение в MPRC» . Центр исследований и разработок микропроцессоров Пекинского университета.
  2. ^ Сюй Чэн; Цзюньлинь Лу; Цзянфан И; Сюэтао Лю; Сяньхуа Лю; Чунь Ян (март 2010 г.), «Прогресс исследований процессоров UniCore и SoC PKUnity» PDF ) ( Computer Science and Technology (JCST) , 25 (2): 200–213, doi : 10.1007/s11390-010-9317-1 , S2CID   7083916 , получено 11 июля 2012 г.
  3. ^ Бергманн, Арнд (9 июля 2012 г.). «Re: [PATCH 00/36] Порт ядра Linux AArch64» . linux-kernel (список рассылки) . Проверено 11 июля 2012 г. Еще один интересный пример — unicore32, который на самом деле использует больше кода с Arch/arm, чем предлагаемый Arch/aarch64. Я думаю, что кодовая база unicore32 выиграет от объединения обратно в Arch/Arm в качестве третьего набора инструкций, но дополнительные затраты на обслуживание для всех, кто работает над ARM, делают это нереальным.
  4. ^ «Окно слияния закрыто — выход 2.6.39-rc1» . Линус Торвальдс .
  5. ^ «удалить поддержку unicore32» . Майк Рапопорт.
  6. ^ Сюй-Хун Чан; Хуан-Цзя Чэн; Юань-Шин Хван (25 февраля 2012 г.), «Удвоение количества регистров на процессорах ARM» (PDF) , 16-й семинар по взаимодействию компиляторов и компьютерных архитектур (INTERACT) , стр. 1–8, doi : 10.1109/INTERACT .2012.6339620 , ISBN  978-1-4673-2613-1 , S2CID   6832041
  7. ^ Исходный код симулятора процессора Unicore . Форматы инструкций находятся в decode.c, дизассемблирование — в интерпретаторе.c, а эмуляция — в instEx.c.
  8. ^ Исходный код эмулятора QEMU Unicore32


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 455c6b56d31dabbd097cd3a8535f981e__1640615340
URL1:https://arc.ask3.ru/arc/aa/45/1e/455c6b56d31dabbd097cd3a8535f981e.html
Заголовок, (Title) документа по адресу, URL1:
Unicore - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)