HP Сатурн

Семейство 4-битных микропроцессоров с трактом обработки данных

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

Семейство 4-битных ( datapath ) микропроцессоров Saturn было разработано Hewlett-Packard в 1980-х годах сначала для карманного компьютера HP-71B , выпущенного в 1984 году, а затем для различных калькуляторов HP (начиная с HP-18C ). Оно пришло на смену семейству процессоров Nut , использовавшихся в более ранних калькуляторах. HP48SX и HP48S были последними моделями, в которых использовались процессоры Saturn производства HP, более поздние модели использовали процессоры производства 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 50g в 2006 году, а также ревизия hp 48gII 2007 года . HP 50g был последним калькулятором, проданным HP с использованием этого эмулятора, когда он был снят с производства в 2015 году из-за того, что Samsung прекратила производство процессора ARM, на котором он был основан. [1] [2] [3]

Архитектура

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

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

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

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

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

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

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

Поля регистров HP Saturn
Биты63–6059–5655–5251–4847–4443–4039–3635–3231–2827–2423–2019–1615–1211–8  7–4  3–0 
КлевФЭДСБА9876543210
Поля XSБ
 А
СМХ
Вт
Р=0 П
Р=7 ВП

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

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

Оригинальный карманный компьютер HP-71B и HP-28C имели процессор Saturn в виде отдельного чипа. В сериях HP 48S/SX, 48G/GX и HP-28S, HP-27S, HP-42S, HP-32SII и HP-20S ядро ​​ЦП Saturn интегрировано как часть более сложной интегральной схемы (ИС) SoC .

Пример кода

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

** Далее предполагается, что AW содержит аргумент (< 1E14).** Результат (IP(SQRT(AW))) представлен в CW: SETDEС АСЛ W С=АВ А=А+АВ  А=А+АВ А=А+CW АСР В С=0 Вт Р= 13 ЛК(1) 5 - КСО WP С=С-1 П -- С=С+1 П  А=АС Вт  ГОНК --  А=А+CW  КСО W  П=П-1  П=П-1  ГОНК - СЕТЕКС А=ХВ

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

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

уровень ISAКодовое имя процессораИспользуется в моделях калькуляторовХарактеристики
0 [7] [8]Сатурн (1LF2)HP-44A , HP-71B  (1984)
1 [7] [8]Сатурн (1LK7)HP-18C  (1986), HP-28C  (1987), HP-71B640 кГц, дополнительные инструкции
2 [7] [8]Берт [9] (1LU7) [9]ХП-10Б  (1988 г.), ХП-20С  (1988 г.), ХП-21С640 кГц, 10 КБ ПЗУ, 256 байт ОЗУ, драйвер ЖК-дисплея
2 [7] [8]Сакагавея [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 В КМОП
2 [7] [8]Кларк [9] (1LT8) [9]HP 48SX  (1990), HP 48S  (1991)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 , дополнительные инструкции, иногда также известна как платформа Saturn 5
?Нью-ЙоркПрототип HP 48GX8 МГц, контроллер ЖК-дисплея, контроллер памяти, UART и ИК-управление. Это было сделано только как внутренний прототип HP и никогда не выпускалось в свободном виде. [11] [12]
2 [7] [8] [прим. 2]Серия Apple ( Большое яблоко , [9] Среднее яблоко , [9] Маленькое яблоко )hp 39g+  (2003 г.), HP 39gs  (2006 г.), HP 40gs  (2006 г.), hp 49g+  (2003 г.), hp 48gII  (2003/2007 г.), HP 50g  (2006 г.)Виртуальная версия процессора Yorke, эмулируемая членами семейства процессоров Samsung S3C2410 48/75 МГц с ядром ARM920T (архитектуры ARMv4T ), также известного как Saturn+ с дополнительными виртуальными инструкциями

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

Смотрите также

Примечания

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

Ссылки

  1. ^ Куперус, Клаас (2015-03-04). "HP 50g: Конец эпохи". forum.hp-prime.de . Моравия. Архивировано из оригинала 2015-04-02.
  2. ^ Куперус, Клаас (2015-03-06). "HP 50g не очень хорошие новости?". Музей HP . Моравия. Архивировано из оригинала 2018-07-08 . Получено 2016-01-01 .
  3. ^ Вессман, Тимоти «Тим» Джеймс (2015-12-26). «Windows 10 не позволяет устанавливать драйверы USB HP 50g». Музей HP . Архивировано из оригинала 2018-07-08 . Получено 2016-01-01 .
  4. ^ abcd "3.1 Обзор процессора". Технические характеристики внутреннего дизайна оборудования HP-71B. Hewlett Packard Corporation. Сентябрь 1984 г. стр. 3-1. 00071-90071.
  5. ^ Характеристики ЦП HP-41C, драйвера дисплея, HP-IL, хранилища данных, ИС таймера и интерфейса . Hewlett Packard Corporation. Июль 1981 г. стр. 5.
  6. ^ Fernandes, Gilbert Henri (2005-07-16) [1999-01-29]. "Глава 56.1 Действительное число". В Rechlin, Eric (ред.). Introduction to Saturn Assembly Language (3-е изд.). hpcalc.org. стр. 104. Идентификатор 1693. Архивировано из оригинала 2018-11-13 . Получено 2019-04-29 . Если показатель степени отрицательный, показатель степени кодируется как "1000 - ABS(показатель степени)"[1]
  7. ^ abcdefgh Доннини, Джузеппе (26 июня 2020 г.). ""Нью-Йорк"?". www.hpmuseum.org . Проверено 6 июля 2020 г.
  8. ^ abcdefgh "Руководство по ассемблеру Saturn". www.hpcalc.org . Hewlett Packard. 1993-08-20 . Получено 2020-07-06 .
  9. ^ abcdefghi Finseth, Craig A. (2016-12-23). ​​"names". Архивировано из оригинала 2017-12-21 . Получено 2017-12-21 .
  10. ^ Арнетт, Дэйв (1994-05-03). «Назовите этот чип!». Группа новостей : comp.sys.hp48. Архивировано из оригинала 29-04-2019 . Получено 22-04-2019 .
  11. ^ де Бребиссон, Сирил (17 июня 2020 г.). "RE: "Нью-Йорк"?". www.hpmuseum.org . Проверено 18 июня 2020 г.
  12. ^ abc де Бребиссон, Сирил (16 июня 2020 г.). "RE: "Нью-Йорк"?". www.hpmuseum.org . Проверено 18 июня 2020 г.

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

  • Mastracci, Matthew (1998) [1995]. "Руководство по процессору Saturn (с приложениями HP48)". 1.0b. Архивировано из оригинала 2016-08-06 . Получено 2006-05-03 .
  • Курбис, Поль ; Лаланд, Себастьен (27 июня 2006 г.) [1989]. Voyage au center de la HP28c/s (на французском языке) (2-е изд.). Париж, Франция: Editions de la Règle à Calcul. OCLC  636072913. Архивировано из оригинала 6 августа 2016 г. Проверено 6 сентября 2015 г.[2] [3] [4] [5] [6] [7]
  • Courbis, Paul ; Lalande, Sébastien (2006-06-25) [1993]. HP48 Machine Language - A Journey to the Center of the HP 48s/sx. Перевод Cannon, Douglas R. (2-е изд.). Corvallis, Oregon, USA: Grapevine Publications, Inc. OCLC  34148948. Архивировано из оригинала 2018-11-14 . Получено 2015-09-06 .[8] [9] [10] [11] [12] [13]
  • Курбис, Поль ; Лаланд, Себастьян (25 июня 2006 г.) [1991]. Путешествие по центру HP48 s/sx. 3.02 (на французском языке) (3-е изд.). Париж, Франция: Editions Angkor. ISBN 2-87892-003-1. OCLC  29640044. Архивировано из оригинала 2018-11-13 . Получено 2015-09-06 .[14] [15] [16] [17] [18] [19] [20]
  • Курбис, Поль (25 июня 2006 г.) [1993]. Путешествие по центру HP48 g/gx. 3.05 (на французском языке) (3-е изд.). Париж, Франция: Editions Angkor. ISBN 2-87892-006-6. OCLC  29640044. Архивировано из оригинала 2016-08-06 . Получено 2015-09-06 .[21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32]
  • Курбис, Поль ; де Бребиссон, Сирил (март 1994 г.). Le compagnon de Voyage de la HP48 G/GX (на французском языке). Париж, Франция: Editions Angkor. ISBN 2-87892-007-4. Архивировано из оригинала 2016-08-06 . Получено 2015-09-06 .[33]
  • Fernandes, Gilbert Henri (2005-07-16) [1999-01-29]. Rechlin, Eric (ред.). Introduction to Saturn Assembly Language (3-е изд.). hpcalc.org. ID 1693. Архивировано из оригинала 2016-08-06 . Получено 2009-02-17 .[34]
  • Краткая информация в Музее калькуляторов HP
Взято с "https://en.wikipedia.org/w/index.php?title=HP_Saturn&oldid=1228293925#Lewis"