Рубрика «ISA»

С момента появления домашних компьютеров существует возможность расширять их функционал путём установки большего количества RAM, более ёмких накопителей, дополнительных комплектующих. Но только с появлением IBM PC привычной стала идея о полностью открытой модульной компьютерной системе. А именно, концепция карт расширения позволила пользователям компьютеров не зависеть от конфигураций систем, предлагаемых производителями. Подобные конфигурации можно было, в ограниченных пределах, расширять комплектующими, рассчитанными исключительно на эти системы. Благодаря универсальным картам расширения появились целые отрасли промышленности, они стали и причиной возникновения большого рынка любительских устройств, которые можно было подключать к компьютерам.

Радости экспериментов с ISA и PCI - 1

В первом IBM PC было пять 8-битных слотов расширения, подключённых прямо к процессору 8088. Компьютер IBM PC/AT был основан на процессоре 80286, в результате слоты стали 16-битными. С помощью слотов расширения к компьютеру можно было подключать практически всё что угодно: графические и сетевые карты, дополнительную память, какие-то особые платы. Хотя для этих слотов расширения и не существовало официального наименования, во времена PC/AT их называли, соответственно, PC-шинами и AT-шинами. А название Industry Standard Architecture (ISA) — это ретроним, который придумали создатели клонов PC.

Такая открытость ISA означала то, что можно было достаточно легко и дёшево создавать собственные ISA-карты. То же касалось и шины PCI, которая появилась после ISA и была такой же открытой. В результате до сих пор существует полная жизни экосистема, в которой есть место и любительским звуковым картам, рассчитанным на слоты PCI или ISA, и картам расширения, позволяющим оснастить IBM PC 1981-го года поддержкой USB, и много чему ещё.

С чего начать тому, кто в наши дни хочет заняться работой с ISA- и PCI-картами?
Читать полностью »

Звуковая карта — один из самых важных элементов ретрокомпьютера, а для многих это основная причина сборки такового. В отличие от офисного софта компьютерные игры не стареют: запускать их на аутентичном железе — это приятная и почетная задача. Хотя и не обязательная: есть же DosBox, в которой если не все, то многие игры работают без проблем. Выбрать правильную звуковую карту для моего 386-го компьютера было непросто: вариантов много, нюансов совместимости еще больше, а некоторые экземпляры потихоньку превращаются в с трудом добываемые раритеты. Вот какая из них лучше?

Древности: трудный выбор звуковой карты для DOS-игр - 1

Но это сейчас выбор трудный, а в девяностых он был простой: какую звуковую карту удалось добыть, та и лучшая. В реальности мне тогда не удалось добыть никакую, и мой 386-й компьютер тех времен так и прожил всю жизнь, издавая звуки только жестким диском, PC-спикером и модемом. Зато первые пробы Doom с «саундбластером» у знакомых и друзей в 1994 году производили невероятное впечатление. К реалистичной (по тем временам) графике добавились не менее жизненные (тоже по тем временам) звуковые эффекты. Круто же!

Окей, в моем ретрокомпьютере точно будет установлена звуковая карта Sound Blaster компании Creative. Какая именно — тоже непростой вопрос, и итоговый выбор будет зависеть не только от предоставляемых картой возможностей, но и от наличия или отсутствия определенных багов, тоже аутентичных. Какие у меня есть варианты? И какие варианты существуют вообще? Причем тут гуси? В этом теоретическом посте я попробую на данные вопросы ответить, и заодно расскажу о древних технологиях извлечения звука из вашего IBM-совместимого ПК.
Читать полностью »

Реверс-инжиниринг неизвестного процессора по единственной программе - 1

TL;DR: мы выполнили обратную разработку программы, написанной для полностью неизвестной архитектуры ЦП без какой-либо документации на ЦП (без эмулятора, без ISA, без всего) всего за десять часов. Из статьи вы узнаете, как нам это удалось…

В прошлые выходные мы с командой CMU PPP поучаствовали Teaser CTF 2019 команды Dragon Sector, чтобы расслабиться и отойти от жёсткого дедлайна CHI 2020. Dragon Sector — это уважаемая польская команда, имеющая историю интересных CTF, поэтому мне было интересно, что у них есть в запасе.

Решив “ummmfpu”, — задачу, в которую входил реверс-инжиниринг байткода для сопроцессора с плавающей запятой Micromega uM-FPU, я решил поучаствовать в соревновании по решению задачи CPU Adventure, которая на тот момент не была решена ни одной из команд (в результате мы оказались единственными, кто справился с заданием).

Вот описание задачи CPU Adventure:

Мой дедушка в 60-х годах занимался разработкой компьютеров. Наводя порядок на его чердаке, я нашёл странную машину. Рядом с машиной лежала стопка перфокарт с пометкой “Dragon Adventure Game”. Спустя какое-то время мне удалось подключить её к современному оборудованию, но игра слишком сложная и я не могу добраться до конца без читерства. Сможете мне помочь? Прилагаю транскрипцию перфокарт, используемых в машине. Утверждается, что машина имеет 4 регистра общего назначения, 1 кибибайт памяти данных и 32 кибибайта памяти команд. Чтобы сыграть в игру, подключитесь к серверу следующим образом: socat tcp4-connect:cpuadventure.hackable.software:1234 fd:0,rawer Подсказка: процессор машины уникален, не пытайтесь гуглить информацию по нему.

game.bin

Читать полностью »

Древности: 1992 год в компьютерной прессе - 1Временной период для чтения старых журналов мне помогли определить судебные разбирательства. В конце восьмидесятых и начале девяностых компании AMD и Intel регулярно встречаются в суде. Изначально они обменивались технологиями. AMD выпускала по лицензии процессоры вплоть до 286-го (наличие второго поставщика было требованием IBM), но после выпуска Intel 80386 ситуация изменилась: американский производитель решил не делиться разработками с AMD, и пытался запретить производство клонов. Судебные тяжбы окончательно прекратились только в 1996 году, Intel в целом проиграла, но сумела задержать появление на рынке 386-х процессоров от конкурента до марта 1991 года.

Пытаясь наверстать упущенное, AMD выпускает самый мощный клон 80386 — процессор AM386DX с частотой 40 мегагерц (Intel остановилась на 33 Мгц). Компьютеры на базе этого процессора появляются в конце 1991 — начале 1992 года. А в 1995 году 40-мегагерцевый 386-й становится моим первым личным компьютером. На тот момент он уже устарел, и Windows 95 на нем работала неторопливо, но выбора (как и денег) особо не было: этот компьютер прослужил мне аж до 2001 года.

В 2019 году я решил восстановить свою компьютерную систему из 90-х, а заодно изучить компьютерные технологии начала девяностых. Для меня это времена скорее темные и непонятные. И выходит так, что самый мощный 386-й был актуальным ровно один год, после чего (для производительных ПК конечно), окончательно уступил место 486-м системам. Пока ко мне едет новое-старое железо, следует изучить контекст подробнее, по первоисточникам. Я уже делал похожую подборку по материалам выставки Комтек 1997 года. А сегодня расскажу, о чем писали и что рекламировали в компьютерных изданиях за 1992 год.
Читать полностью »

Упражнения в эмуляции: инструкция FMA консоли Xbox 360 - 1

Много лет назад я работал в отделе Xbox 360 компании Microsoft. Мы думали над выпуском новой консоли, и решили, что было бы здорово, если эта консоль сможет запускать игры с консоли предыдущего поколения.

Эмуляция — это всегда сложно, но она оказывается ещё труднее, если твоё корпоративное начальство постоянно меняет типы центральных процессоров. В первом Xbox (не путать с Xbox One) использовался ЦП x86. Во втором Xbox, то есть, простите, в Xbox 360 использовался процессор PowerPC. В третьем Xbox, то есть в Xbox One, использовался ЦП x86/x64. Подобные скачки между разными ISA не упрощали нам жизнь.

Я участвовал в работе команды, которая учила Xbox 360 эмулировать многие игры первого Xbox, то есть эмулировать x86 на PowerPC, и за эту работу получил титул «ниндзя эмуляции». Затем меня попросили изучить вопрос эмуляции ЦП PowerPC консоли Xbox 360 на ЦП x64. Заранее скажу, что удовлетворительного решения я не нашёл.
Читать полностью »

This article is about the interrupt delivery process from external devices in the x86 system. It tries to answer questions such as:

  • What is PIC and what is it for?
  • What is APIC and what is it for? What is the purpose of LAPIC and I/O APIC?
  • What are the differences between APIC, xAPIC, and x2APIC?
  • What is MSI? What are the differences between MSI and MSI-X?
  • What is the role of the $PIR, MPtable, and ACPI tables?

If you want to know the answer for one of these questions, or if you simply want to know about interrupt controller evolution, please, welcome.
Читать полностью »

Авторы — Джон Хеннесси и Дэвид Паттерсон, лауреаты премии Тьюринга 2017 года «за новаторский систематический и измеримый подход к проектированию и проверке компьютерных архитектур, оказавший долговременное влияние всю отрасль микропроцессорной техники». Статья опубликована в журнале Communications of the ACM, февраль 2019, том 62, № 2, стр. 48-60, doi:10.1145/3282307

Новый золотой век для компьютерной архитектуры - 1«Те, кто не помнит прошлого, обречены повторить его» — Джордж Сантаяна, 1905

Свою лекцию Тьюринга 4 июня 2018 года мы начали с обзора компьютерной архитектуры, начиная с 60-х годов. Кроме него, мы освещаем актуальные проблемы и пытаемся определить будущие возможности, которые сулят новый золотой век в области компьютерной архитектуры в следующем десятилетии. Такой же, как в 1980-е, когда мы проводили свои исследования по улучшению в стоимости, энергоэффективности, безопасности и производительности процессоров, за что и получили эту почётную награду.

Ключевые идеи

  • Прогресс программного обеспечения может стимулировать архитектурные инновации
  • Повышение уровня программно-аппаратных интерфейсов создаёт возможности для инноваций архитектуры
  • Рынок в конечном итоге определяет победителя в споре архитектур

Читать полностью »

Эмулятор мультикарты с дисководом для компьютеров с шиной ISA - 1

Для обмена данными с компьютером с шиной ISA можно использовать нуль-модемный кабель или переходник SD-IDE. А вот ещё одно удобное приспособление: эмулятор мультикарты с дисководом, в основу которого положена микросхема IDT7130 — двухпортовое ОЗУ на 1 килобайт. Она взаимодействует, с одной стороны, с шиной ISA вашего винтажного компьютера, с другой — с установленной прямо на плату эмулятора «малинкой».Читать полностью »

50 (или 60) лет разработки процессоров… ради этого? - 1«Закон масштабирования Деннарда и закон Мура мертвы, что теперь?» — пьеса в четырёх действиях от Дэвида Паттерсона

«Мы сжигаем мосты, по которым сюда мчимся, не имея других доказательств своего движения, кроме воспоминаний о запахе дыма и предположения, что он вызывал слёзы» — «Розенкранц и Гильденштерн мертвы», абсурдистская пьеса Тома Стоппарда

15 марта д-р Дэвид Паттерсон выступил перед аудиторией из примерно 200 наевшихся пиццы инженеров. Доктор вкратце изложил им полувековую историю конструирования компьютеров с трибуны в большом конференц-зале здания E в кампусе Texas Instruments в Санта-Кларе во время лекции IEEE под названием «50 лет компьютерной архитектуры: от центральных процессоров до DNN TPU и Open RISC-V». Это история случайных взлётов и падений, провалов и чёрных дыр, поглотивших целые архитектуры.

Паттерсон начал с 1960-х годов и новаторского проекта IBM System/360, основанного на ранних работах Мориса Уилкса по микропрограммированию 1951 года. По меркам IT это было давным-давно… Ближе к концу выступления Паттерсон показал потрясающую диаграмму. Она наглядно демонстрирует, как именно смерть закона масштабирования Деннарда, за которой следует смерть закона Мура, полностью изменили методы проектирования компьютерных систем. В конце он объяснил посмертные технологические последствия этих потрясений.
Читать полностью »

Лет десять тому назад достались мне предназначенные на помойку ISA-видеокарты от 286...486 машин. Видеокарты были опробованы и с тех пор пылились в ящике. Пару лет назад появилась у меня мысль, а не подключить ли такую видеокарту к микроконтроллеру? Вот об этом я и расскажу в статье.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js