HP Saturn - HP Saturn

Сатурн
Фотография кристалла HP48SX 1LT8 SoC со встроенным процессором Saturn
Фотография открытой матрицы HP 1LT8 Clarke SoC который содержит встроенный Сатурн микропроцессор производства HP для использования в HP 48SX
ДизайнерHewlett Packard
БитыГибридный 64-битный GPR, 20-битная адресная шина, 4-битный канал данных, 4-битный минимальный размер слова
Введено1984
Версия"Уровень 2"
дизайнCISC
ТипКомбинация Архитектура загрузки-магазина за некоторыми исключениями, которые попадают в Архитектура регистровой памяти семья
КодированиеПеременная
РазветвлениеБит переноса, «липкий» бит и другие регистры флагов
Порядок байтовLittle Endian
Размер страницыНет MMU или пейджинга
РасширенияТолько расширения для эмулируемых РУКА на базе «виртуальных» процессоров
ОткрытоПроприетарный
Предшественникорех
Регистры
Девять 64-битных регистров GPR и «временных» регистров, два 20-битных регистра «указателей данных» и другие разные регистры
Общее назначениеЧетыре 64-битных георадара
Плавающая точкаНет регистров FPU
ВекторНет векторных регистров

В Сатурн семья 4-битный ( путь к данным ) микропроцессоры был разработан Hewlett Packard в 80-е годы впервые для HP-71B карманный компьютер, а затем для различных калькуляторов HP (начиная с HP-18C ). Это удалось орех семейство процессоров, используемых в более ранних калькуляторах. Оригинальный Сатурн чип впервые был использован в HP-71B ручной БАЗОВЫЙ -программируемый компьютер, представленный в 1984 году. Более поздние модели семейства приводили в действие популярные HP 48 серии калькуляторов. HP48SX и HP48S были последними моделями, в которых использовались подлинные процессоры Saturn производства HP. В более поздних моделях калькуляторов использовались процессоры Saturn производства NEC. В HP 49 серии первоначально также использовал процессор Saturn, пока NEC сказка[nb 1] не мог больше производить процессор по техническим причинам в 2003 году. Поэтому, начиная с HP 49g + модели в 2003 году калькуляторы перешли на Samsung S3C2410 процессор с ARM920T ядро (часть ARMv4T архитектура), который запускал программный эмулятор оборудования Saturn. В 2000 г. HP 39G и HP 40G были последними представленными калькуляторами, основанными на фактическом оборудовании Saturn, изготовленном компанией NEC. Последними калькуляторами на основе эмулятора Saturn были HP 39gs, HP 40gs и HP 50 г в 2006 г., а также в редакции 2007 г. hp 48gII. HP 50g, последний калькулятор, использующий этот эмулятор, был снят с производства в 2015 году, когда Samsung прекратила производство процессора ARM, на котором он был основан.[1][2][3]

Архитектура

Аппаратное обеспечение Saturn - это грызть серийный дизайн[4] в отличие от орех предшественник, который был бит-последовательный.[5] Внутри ЦП Saturn имеет четыре 4-битных шины данных, которые обеспечивают производительность почти 1 цикл на полубайт, при этом одна или две шины действуют как источник, а одна или две - как место назначения.[4] Наименьший адресный слово это 4-битный грызть который может вместить один двоично-десятичный (BCD) цифра. Любая единица данных в регистрах размером больше полубайта, в которой конец упомянутой единицы данных попадает на границу полубайта, а начало упомянутой единицы данных начинается с нуля полубайта (а также в некоторых случаях, когда начальная позиция упомянутой единицы данных приходится на граница полубайта с определенными полями регистров, например «M» или «X»), и которая может быть до 64-битной, может использоваться как единое целое, но ЦП Saturn выполняет операцию последовательно внутренне на полубайтах полубайтовая основа.[4]

Архитектура Сатурна имеет 64-битный ширина слова данных и 20-битная ширина адреса, при этом память адресована 4-битный (грызть ) степень детализации. Команды Saturn ALU поддерживают переменную ширину данных, обрабатывая от одного до 16 полубайтов слова. Основные регистры (Георадары ) вместе с временными регистрами имеют полностью 64-битную ширину, но адресные регистры имеют ширину только 20-битную. Первоначальные микросхемы ЦП Saturn обеспечивали четырехбитную внешнюю шину данных, но более поздние SoC на базе Saturn включали преобразование шины микросхемы в 8-разрядную внешнюю шину данных и 19-разрядную внешнюю шину адреса.

Архитектура Saturn имеет четыре 64-битных Георадары (Регистры общего назначения) с именами A, B, C и D. Кроме того, есть также пять 64-битных «временных» регистров с именами R0, R1, R2, R3 и R4. Они могут хранить только данные. Если для данных в временном регистре требуется операция ALU, то сначала необходимо передать этот регистр в GPR. Другие регистры включают в себя 1-полубайтный «указательный» регистр с именем P, обычно используемый для выбора полубайта в георадаре или диапазона полубайтов (или для выравнивания непосредственных данных по конкретному полубайту в георадаре с циклическим переходом). Для доступа к памяти есть два 20-битных регистра указателя данных с именами D0 и D1. Архитектура Сатурна также имеет ПК или счетчик команд регистр, который может взаимодействовать с георадаром. Существует также 8-уровневый, кольцевой, 20-разрядный аппаратный стек возврата LIFO с именем RSTK, используемый при выдаче инструкции вызова подпрограммы. Кроме того, ЦП Saturn оснащен 16-битным регистром состояния программного обеспечения с именем ST и регистром состояния оборудования с 1 полубайтом с именем HS, который, в частности, содержит флаг SB или «липкий бит», указывающий, была ли двоичная 1 сдвинута вправо от георадар. Кроме того, архитектура Saturn имеет 12-битный регистр OUT и 16-битный регистр IN, которые в SoC Yorke и Clarke используются для захвата ввода с клавиатуры, а также для управления звуковым сигналом. Также имеется 1-битный регистр флага переноса.

В дополнение к вышесказанному, ЦП Saturn имеет простую систему прерываний без приоритета. Когда происходит прерывание, ЦП завершает выполнение текущей инструкции, сохраняет счетчик программ в стеке аппаратного возврата (RSTK) и переходит к шестнадцатеричному адресу 0x0000Fh, где предыдущее значение выражается в полубайтах.[4] ЦП также напрямую взаимодействует с логикой сканирования клавиатуры.

На следующей диаграмме показаны регистры (каждый белый квадрат представляет собой 4 бита / полубайт, за исключением флага переноса, который равен 1 биту):

«Графическое представление регистровых полей HP Saturn»

Формат и поля регистра 64-битного георадара Saturn:

Поля регистра HP Saturn
Биты63-6059-5655-5251-4847-4443-4039-3635-3231-2827-2423-2019-1615-1211-8  7-4  3-0 
КлевFEDCBА9876543210
Поля XSB
 А
SMИкс
W
P = 0 п
P = 7 WP

Доступ к данным в регистрах общего назначения можно получить через поля, которые попадают на границы полубайта, тогда как временные регистры позволяют только операции загрузки и сохранения. Поля, как показано на приведенной выше диаграмме, это W (весь 64-битный георадар), A (первые 5 полубайтов георадара), S (старший полубайт георадара), XS (2 полубайта георадара), M (3–14 полубайтов георадара), X (первые 3 полубайта георадара) и B (первый байт георадара). Кроме того, есть поле P, которое выбирает полубайт из GPR на основе 4-битного значения P-регистра. Кроме того, есть поле WP, которое выбирает полубайты от 0 до полубайта, выбранного в регистре P. 64 бита (16 полубайтов) могут содержать кодировку в формате BCD. числа с плавающей запятой состоит из знак полубайт (который равен "9", если число отрицательное), 12 мантисса цифр и 3-значной 10-й степени дополнения, хранящейся в BCD формат (± 499).[6] Внутреннее представление значений с плавающей запятой BCD представляет собой 15-значную мантиссу с одним полубайтом знака в одном регистре в сочетании с 20-разрядной экспонентой в формате дополнения до 10 в другом регистре. Использование BCD вместо прямого двоичного представления выгодно для калькуляторов, поскольку оно позволяет избежать округление проблемы, возникающие на двоичное / десятичное преобразование.

Адреса процессора Saturn также основаны на полубайтах. Три указатель регистры (включая счетчик команд ) и адрес регистры имеют ширину 20 бит. Благодаря этому архитектура Сатурна может адресовать 1 M полубайтов или, что то же самое, 512 K байты. Помимо этого размера (например, в 48GX), переключение банка используется.

В сериях HP 48S / SX и 48G / GX, а также в таких калькуляторах, как HP-28S, HP-42S, HP-32SII и HP-20S, Сатурн Ядро ЦП интегрировано как часть более сложного Интегральная схема (IC) SoC за исключением оригинального портативного компьютера HP-71B и HP-28C, в котором для процессора Saturn использовался отдельный чип. Эти пакеты имеют кодовые имена, вдохновленные членами Экспедиция Льюиса и Кларка. Кодовое название ИС: Кларк в S / SX, после Уильям Кларк, и Йорк в G / GX, после Кларка слуга. Другие ИС на основе Сатурна, такие как те, что используются в HP-28S, HP-42S, HP-32SII и HP-20S, имели другие кодовые названия. В частности, SoC HP-42S и HP-28S получили кодовое название Льюис, после Мериуэзер Льюис. Другие калькуляторы HP, такие как HP-32SII и HP-20S, имели кодовые названия SoC. Sacajawea после Сакагавеа и Берт соответственно, хотя происхождение Берт кодовое имя может быть неизвестно.

Пример кода

Ниже представлена ​​целочисленная реализация алгоритма десятичного квадратного корня BCD в синтаксисе сборки Saturn Jazz / HP Tools:

** В следующем примере AW предполагается, что он содержит аргумент (<1E14). ** Результат (IP (SQRT (AW))) находится в CW: SETDEC ASL WC = AWA = A + AWA = A + AWA = A + CW ASR WC = 0 WP = 13 LC (1) 5 - CSR WP C = C-1 P - C = C + 1 PA = AC W GONC - A = A + CW CSR WP = P-1 P = P -1 GONC - SETHEX A = CW

Чипсеты и приложения

Оригинальный процессор Saturn дал свое имя всему архитектура набора команд. У более поздних чипов были свои кодовые названия:

Уровень ISAКодовое имя процессораИспользуется в моделях калькуляторовСвойства
0[7][8]Сатурн (1LF2)HP-44A, HP-71B  (1984)
1[7][8]Сатурн (1ЛК7)HP-18C  (1986), HP-28C  (1987), HP-71B640 кГц, дополнительные инструкции
2[7][8]Берт[9] (1LU7)[9]HP-10B  (1988), HP-20S  (1988), HP-21S640 кГц, 10 КБ ПЗУ, 256 байт ОЗУ, драйвер ЖК-дисплея
2[7][8]Sacajawea[9] (1LR3)HP-14B, HP-22S, HP-32S  (1988), HP-32S +, HP-32SII  (1991)640 кГц, 16 КБ ПЗУ, 512 байт ОЗУ, драйвер ЖК-дисплея
2[7][8]Льюис[9] (1LR2)HP-17B  (1988), HP 17BII  (1990), HP-19B  (1988), HP 19BII  (1990), HP-27S  (1988), HP-28S  (1988), HP-42S  (1988)1 МГц, 64 КБ ПЗУ, драйвер ЖК-дисплея, контроллер памяти, ИК управление, 3 В CMOS
2[7][8]Кларк[9] (1LT8)[9]HP 48SX  (1990), HP 48S  (1990)2 МГц, ЖК-контроллер, контроллер памяти, UART и ИК-управление, дополнительные инструкции
2[7][8]Йорк[9] 00048-80063[10]HP 38G  (1995), HP 38G +  (1998), HP 39G  (2000), HP 40G  (2000), HP 48GX  (1993), HP 48G  (1993),[nb 1] HP 48G +  (1998), HP 49G  (1999)3,68-4 МГц, ЖК-контроллер, контроллер памяти, UART и ИК-управление, производство NEC, дополнительные инструкции, иногда также известные как Сатурн 5 Платформа
?Нью-ЙоркHP 48GX прототип8 МГц, ЖК-контроллер, контроллер памяти, UART и ИК-управление. Это было сделано только как внутренний прототип HP и никогда не выпускалось в дикой природе.[11].
2[7][8][nb 2]яблоко серии (Большое яблоко,[9] Среднее яблоко,[9] Маленькое яблоко)39 г + hp  (2003), HP 39gs  (2006), HP 40gs  (2006), 49 г + hp  (2003), hp 48gII  (2003/2007), HP 50 г  (2006)Виртуальная версия процессора Yorke, эмулируемая участниками 48/75 МГц Samsung S3C2410 семейство процессоров с ARM920T ядро (из ARMv4T архитектура) ака Сатурн + с дополнительными виртуальными инструкциями

Кодовые названия ЦП вдохновлены членами Экспедиция Льюиса и Кларка 1804–1806 гг., первая сухопутная экспедиция США в Тихоокеанское побережье и назад. Кодовые названия виртуальных ЦП / эмуляторов были вдохновлены прототипом 8-мегагерцовой SoC на базе Сатурна "New-Yorke", которая так и не поступила в производство.[12] По словам одного из членов ACO (Australian Calculator Operation), «Большое Яблоко» произошло от кодового названия «Нью-Йорк» прототипа SoC на базе Сатурна с частотой 8 МГц, и первоначальному автору казалось, что оно имеет интимную ссылку на Город «Нью-Йорк», отсюда и названия «Большое яблоко», «Среднее яблоко» и «Маленькое яблоко».[12]

Заметки

  1. ^ а б в HP 48G, процессор Saturn имеет маркировку "NEC Япония, D3004GD, 00048-80063, 9738PX002 ".
  2. ^ В эмулируемых / виртуальных процессорах Saturn серии "Apple" Уровень / версия ISA равно «2», но с виртуальными расширениями кода операции.

использованная литература

  1. ^ Куперус, Клаас (04.03.2015). «HP 50g: конец эпохи». forum.hp-prime.de. Моравия. Архивировано из оригинал 2015-04-02.
  2. ^ Куперус, Клаас (06.03.2015). "HP 50g - не очень хорошие новости?". Музей HP. Моравия. В архиве из оригинала на 2018-07-08. Получено 2016-01-01.
  3. ^ Вессман, Тимоти Джеймс (26 декабря 2015 г.). «Windows 10 не позволяет устанавливать драйверы USB HP 50g». Музей HP. В архиве из оригинала на 2018-07-08. Получено 2016-01-01.
  4. ^ а б c d Технические характеристики внутренней конструкции оборудования HP-71B Том 1. Корпорация Hewlett Packard. Сентябрь 1984. с. 3-1.
  5. ^ Технические характеристики ЦП HP-41C, драйвера дисплея, HP-IL, хранилища данных, таймера и интерфейсной ИС. Корпорация Hewlett Packard. Июль 1981 г. с. 5.
  6. ^ Фернандес, Гилберт (2005-07-16) [1999-01-29]. «Глава 56.1 Реальное число». В Рехлине, Эрик (ред.). Введение в язык ассемблера Saturn. hpcalc.org (3-е изд.). п. 104. ID 1693. В архиве из оригинала на 2018-11-13. Получено 2019-04-29. Если показатель степени отрицательный, показатель степени кодируется как «1000 - ABS (показатель степени)». [1]
  7. ^ а б c d е ж г час Доннини, Джузеппе (26.06.2020). ""Нью-Йорк "?". www.hpmuseum.org. Получено 2020-07-06.
  8. ^ а б c d е ж г час "Руководство ассемблера Сатурна". www.hpcalc.org. Hewlett Packard. 1993-08-20. Получено 2020-07-06.
  9. ^ а б c d е ж г час я Финсет, Крейг А. (23 декабря 2016 г.). "имена". В архиве из оригинала от 21.12.2017. Получено 2017-12-21.
  10. ^ Арнетт, Дэйв (1994-05-03). "Назови этот чип!". Группа новостейcomp.sys.hp48. В архиве из оригинала на 2019-04-29. Получено 2019-04-22.
  11. ^ де Бребиссон, Сирил (17.06.2020). "RE:" Нью-Йорк "?". www.hpmuseum.org. Получено 2020-06-18.
  12. ^ а б де Бребиссон, Сирил (16.06.2020). "RE:" Нью-Йорк "?". www.hpmuseum.org. Получено 2020-06-18.

дальнейшее чтение

внешние ссылки