stringtranslate.com

HP Сатурн

Семейство 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:

Данные в регистрах общего назначения могут быть доступны через поля, которые попадают на границы полубайтов, тогда как скретч-регистры допускают только операции загрузки и сохранения. Поля, как показано на схеме выше, это 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 дал название всей архитектуре набора инструкций . Более поздние чипы имели собственные кодовые названия:

Кодовые названия ЦП вдохновлены участниками экспедиции Льюиса и Кларка 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 г.

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

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