HP Saturn

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

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

Семейство Saturn из 4-битных (datapath ) микропроцессоров было разработано Hewlett-Packard в 1980-х годах впервые для HP-71B карманный компьютер, а затем для различных калькуляторов HP (начиная с HP-18C ). Он пришел на смену семейству процессоров, которые использовались в более ранних калькуляторах. Оригинальный чип Saturn был впервые использован в HP-71B портативном BASIC -программируемом компьютере, представленном в 1984 году. Более поздние модели этого семейства питали популярные HP 48 серии калькуляторов, среди прочего. В HP 49 серии изначально также использовался ЦП Saturn, до тех пор, пока фабрика NEC не перестала производить процессор по техническим причинам в 2003 году. Поэтому, начиная с HP 49g + в 2003 году калькуляторы перешли на процессор Samsung S3C2410 с ядром ARM920T (часть архитектуры), на котором работал эмулятор Saturn аппаратное обеспечение в программном обеспечении. В 2000 году HP 39G и HP 40G были последними калькуляторами, созданными на основе реального оборудования Saturn, изготовленного компанией NEC. Последними калькуляторами на основе эмулятора Saturn были HP 39gs, HP 40gs и HP 50g в 2006 году, а также версия 2007 года 48gII hp. HP 50g, последний калькулятор, использующий этот эмулятор, был снят с производства в 2015 году, когда Samsung прекратила выпуск процессора ARM, на котором он был основан.

Содержание

  • 1 Архитектура
  • 2 Пример кода
  • 3 Наборы микросхем и приложения
  • 4 Примечания
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки

Архитектура

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

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

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

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

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

"Graphical representation of HP Saturn register fields"

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

Поля регистра HP Saturn
Биты63-6059-5655-5251-4847-4443-4039-3635-3231-2827-2423-2019-1615-1211-87-43-0
ПолубайтFEDCBA9876543210
ПоляXSB
A
SMX
W
P = 0P
P = 7WP

Доступ к данным в регистрах общего назначения можно получить через поля, которые попадают на границы полубайтов, тогда как временные регистры допускают только операции загрузки и сохранения. Поля, как показано на приведенной выше диаграмме, это 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-значная десятичная экспонента с дополнением, сохраненная в формате BCD (± 499). Внутреннее представление значений с плавающей запятой BCD представляет собой 15-значную мантиссу с одним полубайтом знака в одном регистре в сочетании с 20-разрядной экспонентой в формате дополнения до 10 в другом регистре. Использование двоично-десятичного представления вместо прямого двоичного представления выгодно для калькуляторов, поскольку оно позволяет избежать проблем округления, которые возникают при двоичном / десятичном преобразовании.

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

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

Пример кода

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

** В следующем примере предполагается AW чтобы содержать аргумент (< 1E14). ** The result ( IP(SQRT(A.W))) is in C.W : SETDEC ASL W C=A W A=A+A W A=A+A W A=A+C W ASR W C=0 W P= 13 LC(1) 5 - CSR WP C=C-1 P -- C=C+1 P A=A-C W GONC -- A=A+C W CSR W P=P-1 P=P-1 GONC - SETHEX A=C W

Наборы микросхем и приложения

Исходный ЦП Saturn дал свое имя всей архитектуре набора команд . Более поздние микросхемы имели свои собственные кодовые имена:

Уровень ISA Кодовое имя процессораИспользуется в моделях калькуляторовСвойства
0Saturn (1LF2)HP-44A, HP-71B (1984)
1Saturn (1LK7)HP-18C (1986), HP-28C (1987), HP-71B 640 кГц, дополнительные инструкции
2Bert (1LU7)HP-10B (1988), HP-20S (1988),640 кГц, 10 КБ ROM, 256 байтов ОЗУ, драйвер ЖК-дисплея
2Sacajawea (1LR3), HP-22S, HP-32S (1988), HP-32S +, HP- 32SII (1991)640 кГц, 16 КБ ПЗУ, 512 байт ОЗУ, драйвер ЖК-дисплея
2Льюис (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
2Clarke (1LT8)HP 48SX (1990), HP 48S (1990)2 МГц, ЖК-контроллер, контроллер памяти, UART и ИК-управление, дополнительные инструкции
2Yorke 00048-80063HP 38G (1995), HP 38G + (1998), HP 39G (2000), HP 40G (2000), HP 48GX (1993), HP 48G (1993), HP 48G + (1998), HP 49G (1999)3,68–4 МГц, ЖК-контроллер, контроллер памяти, UART и ИК-управление, производство NEC, дополнительные инструкции, иногда также известные как Saturn 5 платформа
?Нью-ЙоркHP 48GX прототип8 МГц, ЖК-контроллер, контроллер памяти, UART и ИК-управление. Это было сделано только как внутренний прототип HP и никогда не выпускалось в продажу.
2Серия Apple (Big Apple, Mid Apple, Little Apple)hp 39g + (2003), HP 39gs (2006), HP 40gs (2006), hp 49g + (2003), hp 48gII (2003/2007), HP 50g (2006)Виртуальная версия процессора Yorke эмулируется членами семейства 48/75 МГц Samsung S3C2410 с ядром ARM920T (архитектуры), также известным как Saturn +, с дополнительными виртуальными инструкциями

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

Примечания

Ссылки

Дополнительная литература

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

Последняя правка сделана 2021-05-22 09:39:46
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте