+536.57
Рейтинг
1489.62
Сила
  • avatar aa-dav
  • 0
По моему мнению, ячейки памяти (в смысле ячейки ОЗУ) по смыслу не считались регистрами (в смысле регистрами процессора). В тексте применен термин «registers», означающий по смыслу также «ячейки памяти», «записи». Чего ты, видимо, не знал, не понял и не учел.
Не, это я знал. Во первых с английским у меня проблем нет, а во вторых о смысле слова registry как производного от register я задумывался еще во времена когда впервые познакомился с 1C: Предприятие и её концепцией РЕГИСТРОВ ОСТАТКОВ, например. По русски вообще странно звучит впервые и заставляет поднимать этимологию.
В общем спорим ни о чём, тут и спора то не должно быть.
  • avatar aa-dav
  • 0
Нет не так. В документации по UNIVAC написано, что регистры это ФИЗИЧЕСКИ такие же ячейки памяти как ячейки основной памяти. Понятно?
  • avatar aa-dav
  • 0
Конечно register это от «запись». Это точно. Вопрос когда чётко стали отличать память от регистров и по каким причинам, ведь видно что IBM в документации по IBM-704 от 1955 года использовала не в современном устоявшемся смысле.
Копнул из любопытства в чуть более древнуюю штуку — UNIVAC I: www.bitsavers.org/pdf/univac/univac1/UNIVAC1_Operating_Manual_1954.pdf — документация от 1954 года. Опять таки память чётко отличается от регистров.
Есть чуть более поздняя дока от 59 года www.bitsavers.org/pdf/univac/univac1/UNIVAC1_Programming_1959.pdf где прям проговаривается, что регистры это такие же ячейки как ячейки памяти, но их мало, они в тельняшках и быстро работают. Однако есть некоторые забавные отличия от того как бы (имхо) описывали некоторые вещи сейчас.
Но прежде тут уместно вспомнить откуда взялся еще один термин — word/слово. А взялся от судя по всему как раз из UNIVAC (в вики вроде бы это же и написано), т.к. ячейка памяти в нём хранила 12 разрядов в каждом из которых хранились буквы, цифры или символы из алфавитно-цифрового набора на 63 знака и вместе эти 12 разрядов и составляли то что документация называет буквально словом по очевидной причине — там можно хранить слова до 12 знаков. Заодно они могут выступать как 12-разрядные числа при условии что в разрядах представлены только цифры.
Ну так вот — в системе UNIVAC I есть два регистра I и O (input/output) размером по 60 слов каждый. Т.е. не каждое из 60 слов называется регистром, а весь массив как целое. Сомневаюсь что в наше время такие буфера ввода-вывода (на магнитную плёнку) вообще называли бы регистрами, а не собственно буфером памяти.
В общем наверное чтобы понять где когда и кто чётко стал разграничивать надо кучу литературы перелопатить.
  • avatar aa-dav
  • 0
Где я могу об этом прочесть?
bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf
Страница 7 глава Magnetic Core Storage:
A group of 36 constitutes one register in storage. Magnetic core storage units are available in capacities either 4096 or 32768 core storage registers.

При этом надо заметить, что в этой системе была еще память на магнитном барабане (magnetic drum storage) с заметно меньшей скоростью, может быть поэтому так выделено (потому что знаю несколько документаций тех лет других машин где термин регистра используется только в современном смысле), но в любом случае «программа исполняемая из регистров» в современном понимании — чушь, а исполнялась там программа из core storage. Имхо в те времена смысл был несколько размыт, а в случае с F8 такая память тоже была более быстродействующая несмотря на индексный многокомандный доступ чем большая внешняя.
  • avatar aa-dav
  • 1
Обожаю всё-таки романтику тех ранних лет.
Давно уже натыкался на статью от 20 сентября 1975 года про тестирование новенького и только что спущенного со стапелей микропроцессора 6502 (англ.): www.swtpc.com/mholley/Microprocessors/EDN_Sep_20_1975_6502.pdf

Текст под фото: «Рис. 2 — Изначальный макет (нашего) журнала для „оживления“ микропроцессора MOS Technology 6502 показывает насколько просты машины второго с половиной поколения в плане разводки проводов для пользователя. Эта макетная плата была разложена (в течении недели) чтобы приблизиться к топологии, которую журнал использует для общих замеров микропроцессоров. И хотя мы обнаружили немало шума (главным образом вместе с синхроимпульсами) на всех наших довольно длинных и разбросанных проводах, но 6502 отработал без ошибок.»
Так вот — эта разводка это они буквально тестировали как работает процессор подключив к нему просто щупы и анализируя активность на шине данных, т.к. даже толком RAM к нему подключить не могли. 10 байт программы в ППЗУ залили и смотрели как она ножками «шевелит». :)
Fairchild F8 там, кстати, тоже упомянут как «сильный соперник».
Так вот в начале статьи с восхищением рассказывается, что с появлением MOS 6502 на рынке становится возможным всего за 50 долларов (~240 долларов в сегодняшних ценах) становится возможным создать полностью рабочую мю-систему с 200 байтами ROM, 100 байтами RAM и даже, возможно (!) четырьмя портами ввода-вывода!
  • avatar aa-dav
  • 1
Но посмотрите на этой и с другой стороны — разве доступ к регистрам в точности как будто бы через порты ввода-вывода разве соответствует понятию регистра в современном смысле? По моему с памятью как раз проблем в этом смысле меньше, ведь доступ к VRAM ну у той же NES сделан как раз вот наподобие же — через порты ввода-вывода с выставлением адреса и даже тоже возможностью автоинкремента. Конечно тут такой древний мамонт, что напрямую на современные практики плохо натягивается, но всё-таки, имхо, как раз с RAM у такой организации доступа больше общего чем с регистрами. Ну по крайней мере, опять таки, в современном понимании. Так что я бы всё-таки сказал что в данном приборе не то чтобы нет RAM, но её прям мало и она прям «нетрадиционная». :) Но не вижу смысла до хрипоты об этом спорить.
Видео, кстати, с час назад досмотрел. Насчёт этих вот непоняток с адресациями я испытывал похоже такие же ощущения как и вы когда читал доки по Intel 4004 — прям реально вроде вот оно всё написано, но тоже доступ через пень-колоду, и даже 3 или 4 разных видов банков с разной адресацией и вырвиглазным страничным доступом который точно так же «вроде уже показалось что начал понимать», но снова натыкаешься на какую то хрень которую не можешь приладить к только что прочитанному и якобы «осмысленному». :) Дааа.
  • avatar aa-dav
  • 1
Отличная статья! Хотя я бы лично не согласился с тем, что регистры адресуемые через ISAR нельзя называть ОЗУ. Scratchpad memory в принципе популярна в микроконтроллерах и сейчас. И нужно еще помнить, что 50-е и 60-е термином «регистры» в принципе могли называть ячейки RAM, так, например называются ячейки памяти на ферритовых сердечниках в документации IBM-704 и поэтому вероятно в те годы ни у кого в принципе не вызывало претензий к терминологии даже если в документации к F8 что-то вот эдакое называется регистрами. Это уже потом понятия как то сильно разошлись и стали чуть ли не противопоставляться.
  • avatar aa-dav
  • 0
P.P.S.
Вопрос именно в том как получается всё плавно но за 2 инта и без разрывов.
  • avatar aa-dav
  • 0
Потому что за 1 int (1/50sec, 50fps) не успевает.
Т.е. он где то бэкбуферит чтобы потом за два инта проскочить и вылезти как по его документации писано «за два инта на 25 фпс»?
  • avatar aa-dav
  • 0
в данном случае я и не говорил про программиста.
  • avatar aa-dav
  • 0
Ну и относительно приема — если скроллить половину экрана в одном кадре, а ещё половину в другом — у нас получится сечение луча — стык между экранами будет хорошо виден.
Из-за чего у меня возник вопрос — в readme.txt Зинапса прямо написано что у него фпс в 25 кадров. Т.е. у него каким то образом кадр строится за 2 хода луча. Поэтому вопрос — как и зачем. Т.к. по геймплею чётко видно, что нижние и верхние препятствия на скроллящейся части экрана никогда не пересекаются лишь приближаясь ровно к центру, то и никакой стык между экранами такому подходу не страшен — в этом месте просто нет заднего фона.
Поэтому у меня и возник вопрос.
  • avatar aa-dav
  • 1
Интересно, из любопытства запустил Zynaps и едйствительно поразился очень качественному, более чем на 2/3 экрана и при этом плавному скроллу. Пока разбирался с клавишами набрёл на оф. инструкцию и там увидел надпись 25fps. Интересно — сразу же прошила догадка, что на четных кадрах он скроллит верхнюю половину изображения, а на нечётных — нижнюю для гладкости. Наверняка тут кто-то знает — так ли оно и есть ли такой приём в принципе?
  • avatar aa-dav
  • 0
У меня есть краткий обзор на «ветку» процессоров Motorola/MOS. Мне, если честно, их архитектура аккумулятор-память в принципе не нравится. Это такое что-то из 50/60-х и вот не моё. От MOS 6502 вообще плакать хочется. 6809 несомненно намного круче и богаче на сложные адресации, откуда и опкоды уже двухбайтные начинают вылазить ну и простым не назовёшь. Но много лучше конечно 6502.
  • avatar aa-dav
  • 0
Имхо такой проц гораздо удобнее и прямолинейнее в программировании чем тот же Z80 при том оставаясь всё-таки на уровне 8-биток своей скупостью команд и отсутствием сложных адресаций. Не забываем как звучит заголовок поста — это не попытка создать идеальный процессор вообще, но именно 8-битный по своим суммарным характеристикам и ощущениям. Взять 16-битный i8086 — это уже совсем другой зверь с огромным количеством удобных для ЯВУ адресаций и схем. Вот для меня это уже не то.
  • avatar aa-dav
  • 0
«Так вот я и спрашиваю поэтому — «комп мечты» КОГО ты хочешь изобрести?»

Всё это было написано — для всех и всях. Для программиста этот проц удобен тем что в нём довольно широкие команды, не надо ворочаться с аккумулятором, можно напрямую работать с ячейками памяти не загрязняя регистры, команды сразу совмещают и вычисление в АЛУ и пересылку данных откуда и куда угодно. Для аппаратчика — простая система команд когда есть одна команда в глобальном смысле — пересылка данных через АЛУ с лёгкими вариациями не влияющими на общую схему работы.
  • avatar aa-dav
  • 0
вы что не понимаете, что один заранее готовый бит на блюдечке это гораздо гораздо проще, чем микропрограммы с декодером по таблицам и так далее? что за бред?
  • avatar aa-dav
  • 0
да просто для простоты. нет тут никаких микропрограмм — вся логика прямолинейна и однообразна.
  • avatar aa-dav
  • 0
Бит TI это прямой флаг для декордера инструкции нужно подгатавливать для АЛУ аргумент Y или нет. Всего инструкций 32, половина из них с зажжённым битом TI — половина нет. Но действительно бит TI уходит в АЛУ вместе с INSTR выступая как полный 5-битовый код инструкцуии, т.к. двухоперандные и однооперандные инструкции с одинаковым полем INSTR могут делать совершенно разные вещи.
  • avatar aa-dav
  • 0
P.S.
Появился большой искус еще 1 бит поля INSTR откусить под «режим адресации immediate», когда поле SRC есть immediate-данное от 0 до 7, а TI — его знак. Тогда не нужны будут отдельные inc/dec 2/3/4/5/6/7, но надо подумать.
  • avatar aa-dav
  • 0
Так их и есть 32, бит TI просто для простоты определяет какие из них однооперандные, а какие — двухоперандные. Они не обязаны быть одинаковыми, это просто удобство для декодера.