Hacker News Digest

Тег: #registers

Постов: 3

Encoding x86 Instructions (www-user.tu-chemnitz.de)

x86 инструкции действительно заслуживают название Complex Instruction Set Computer (CISC) из-за своей чрезвычайно сложной структуры. Инструкции могут достигать 15 байт в длину, включая префиксные байты, которые изменяют поведение существующих команд, а не расширяют opcode. Процессор поддерживает два основных типа opcode: стандартный 1-байтовый и расширенный 2-байтовый с префиксом 0Fh, что теоретически позволяет до 512 различных классов инструкций. Бит направления (d) в opcode определяет направление передачи данных, а бит размера (s) указывает на 8-битные (s=0) или 16/32-битные (s=1) операнды.

Ключевым элементом является MOD-REG-R/M байт, который определяет операнды и режимы адресации. Поле MOD указывает на режим адресации (00-11), REG определяет регистр (от AL до EDI в зависимости от размера данных), а R/M совместно с MOD указывает второй операнд или единственный операнд для команд вроде NOT. Общие регистры (EAX, EBX, ECX и др.) обеспечивают быстрый доступ к данным, так как процессор работает с ними значительно быстрее, чем с памятью. 32-битные регистры содержат в себе свои 16-битные и 8-битные аналоги, что позволяет гибко работать с данными разных размеров.

by st_goliath • 29 октября 2025 г. в 17:50 • 79 points

ОригиналHN

#x86#cisc#assembly#opcode#registers#addressing-modes#8086#arm64

Комментарии (27)

  • Обсуждение началось с размышлений о сложности кодирования инструкций в x86 и ARM64, где последний оказался значительно проще в этом плане.
  • Участники обменялись ссылками и инструментами, включая вики-страницу "x86 is an octal machine" и репозиторий Paul Hsieh's.
  • Была затронута тема эволюции процессора: сравнение 8086 и современных чипов, а также затрагивающая влияние на эффективность кода.
  • Обсуждались трудности с кодированием инструкций в x86, включая непредсказуемость длины кода и сложность дешифрации.
  • В итоге, участники сошлись на том, что эволюция процессора и архитектуры влияет на эффективность кода, и что важно адаптироваться к изменениям.

"Special register groups" invaded computer dictionaries for decades (2019) (righto.com)

Как «специальные группы регистров» 50 лет жили в словарях

Фраза «special register groups» внезапно появилась в определении «CPU» в 1960-е и до сих пор мелькает в учебниках.

В старом глоссарии Минсельхоза США (1960) читаем:

«MAIN FRAME — центральный процессор; включает основную память, арифметическое устройство и special register groups».

Это описание относилось к мэйнфрейму Honeywell 800 (1959), где для многозадачности каждая из 8 программ получала собственный аппаратный набор из 32 регистров — именно их Honeywell назвала «special register groups».

Определение скопировали чиновники, оно попало в Automatic Data Processing Glossary, затем — в сотни книг и статей. Постепенно «main frame» стало синонимом «тип большого компьютера», а «special register groups» превратились в бессмысленную клишированную строчку, которую перепечатывали до 2017 года включительно.

by Bogdanp • 26 августа 2025 г. в 18:57 • 90 points

ОригиналHN

#cpu#registers#multithreading#honeywell#mainframe#history-of-computing#computer-architecture

Комментарии (39)

  • Участники обсудили странное определение «special register groups» в старых словарях: оно неясно и не упоминает обычные регистры.
  • Упомянули, что IBM в 1954 году определяла CPU как совокупность арифметических и управляющих функций, без «специальных регистров».
  • Появились примеры старых машин, например Honeywell 800, где у каждой программы был свой набор регистров — предшественник barrel- и multithread-процессоров.
  • Отмечено, что терминология часто копировалась без проверки, создавая «человеческий слаг» вроде «tongue map» или «brushless DC».
  • Участники сравнили путаницу в терминах с другими примерами, включая RAM, ROM, SMT и «micom» в японских рисоварках.

A Simple CPU on the Game of Life (2021) (nicholas.carlini.com)

Схема простого процессора в «Жизни» — часть 4

Строим первый настоящий компьютер: 2-конвейерную машину неограниченных регистров (URM). Она факторизует 15 за несколько минут.

Что такое URM

  • Теория: бесконечное число регистров с неограниченными целыми.
  • Практика: 16 регистров по 4 бита.
  • Инструкции:
    1. INC Rx — увеличить.
    2. DEC Rx — уменьшить.
    3. JNZ Rx, Addr — переход, если не ноль.

Этого достаточно для полной Тьюринговой машины. Например, сложение:

ADD:
  jnz R1, END
  dec R1
  inc R2
  jmp ADD
END:

Архитектура

  • Верхний левый угол: тактовый генератор.
  • Рядом: регистровый файл (16×4 бит) — вся RAM.
  • Справа: АЛУ, умеет только инкремент.
  • Ниже: счётчик команд (PC) и ПЗУ на 128 4-битовых команд.
  • Слева от ПЗУ: конвейерные триггеры для одновременного чтения и исполнения.
  • Край справа: четыре семисегментных дисплея для вывода.

Особенности «Жизни»

В реальном железе минимизируют транзисторы; в «Жизни» главное — минимизировать площадь и задержку клеток.

by jxmorris12 • 06 августа 2025 г. в 15:17 • 75 points

ОригиналHN

#conways-game-of-life#turing-machine#assembly-language#computer-architecture#registers#alu#program-counter

Комментарии (11)

  • Пользователи в восторге от наглядности «жизни» как модели вычислений, хотя кто-то считает её сложнее обычных логических символов.
  • Conway, по мнению комментаторов, был бы в восторге.
  • Вопрос о стеке сайта остался без ответа, но все хвалят дизайн.
  • Пошутили о запуске DOOM и о «человеческом компьютере» из «Задачи трёх тел».