Pull to refresh

Comments 8

Кстати, а что вы думаете про архитектуры типа apple m5 и ryzen ai, где память общая для всего? И в стимдеке тоже так.

Там, с одной стороны, процессор, gpu и npu могут конкурировать за память, а с другой - шина памяти более широкая и в итоге и процессору веселее, и необходимость перекладывать данные между gpu и cpu пропадает, только синхронизацию сделал и читай?

Так для справки - у райзена память 8 Ггц и 4 канала (в сумме вроде 256 ГБ/сек), у маков зависит от объёма оперативки (у модели на 128 ГБ вроде 600 ГБ/сек).

А тут все очень интересное начинается, физически память одна, но это не значит что ВСЕ читают из одного места одинаково. У текущего Xbox каждый "читатель" cpu, gpu, декомпрессор, h264 модуль подключен своим каналом к единому мемори контроллеру. Это уже получается больше "звезда", чем шина, но исторически просто консоли более оптимизированы с точки зрения латенси, да и шишки уже все набили и знают чего делать не надо.
На стимдек другая проблема, приходится агрессивно сжимать таргет рендер и текстуры чтобы выдавать стабильные 60фпс, но экран маленький и игрок этого попросту не видит.
Опять же на всех консолях с единой памятью вылазит другая проблема overhead memory visibilty, на дискретной карточке как было, видяхе данные отправил, сабмит или как там его вызвал и они там сами както варятся, про них можно забыть.
А с единой памятью gpu и cpu могут смотреть на одну страницу, и cpu уже положил туда данные, т.е. они там физически изменились, а вот когда их "увидит" gpu теперь полностью зависит от протокола когерентности кешей. И получается что если ты хочешь быть уверен что gpu сразу увидит эти данные, то приходится либо флашить кеш, либо использовать когерентные области, которые гпу/цпу видят одинаково, что сильно дороже обычной аллокации.
Как обычно бесплатный сыр бывает только мышке ловкой, так что unified memory никак не отменяет необходимости думать о доступе к памяти, просто меняет точку где надо думать.

Охохох... И ничего про Playstation Portable не сказали...(

Не вдаваясь в детали железа, я могу сказать, что там есть SRAM (Scratchpad: по адресу 0x10000, длиной 0x4000 байт), EDRAM aka VRAM (0x0400_0000, 0x20_0000 байт, где можно выделить 0xCC000 байт там на два 16-битных фреймбуфера и 16-битный z-буфер, а остальное использовать в своё удовольствие), Kernel RAM (от 0x08000000 до 0x08400000, потом ещё до 0x08800000 т.н. Volatile RAM, который можно попросить у ядра) и пользовательская оператива до 0x0A000000. Есть ещё система зеркал с флагами (cached/uncached, kernel/user) и какие-то специальные адреса для работы с железом. Разумеется, играм в жезело низя лезть, но оно есть. На GE (Graphics engine) дисплей лист с гпушными инструкциями пересылается через сискол sceGeListEnqueue. Есть понятие "vblank callback", который можно зарегать тоже через сискол.

Интересно, расскажето поподробнее? просто с PSP никогда не сталкивался вообще. Более-менее близко с консолями работаю только от третьей плойки

NES: CHR ROM/RAM: 8 KB на картридже (тайлы)
Картридж PRG/ROM: до 512 KB

Откуда взялась цифра 512 KB? Максимальный объем PRG ROM безмапперного картриджа 32Кб, если же использовать мапперы то лимит зависит от маппера, а теоретического предела вообще нет - хоть гигабайт поставь (то же относится и к CHR ROM).

угу, вы правы без мапера там только 32кб. Емнип для хомбрю массово использовали MMC3, который позволял как раз адресовать 512кб. Сейчас поправлю.

У дримкаста был GPU с интересными фичами, а не только лишь рисованием треугольников. Чего только стоит аппаратная сортировка прозрачных полигонов (нормально эмулировать это стало возможно с выходом dx11), или 32-битный z-буфер

Да и на горизонте была наоми2, но увы, не срослось.

PowerVR Series2 Features and Specifications

100 MHz clock rate

100 Mpixels/sec (200 to 300 Mpixels/sec deferred rendering rate)

7 million fully textured, lit and shadowed polygons per second

geometry can be triangles, quads, and polygon strips

full CPU load balancing

tile accelerator

full floating-point geometry and texture setup engine

performance that scales up with faster CPUs

32-bit accurate floating point z-buffering with no RAM accesses

unified frame buffer and texture memory

VQ (vector quantization) texture compression with 5:1 compression ratio (average for a set of mip-mapped textures)

full alpha blending modes supported

image super-sampling for full scene anti-aliasing

perspective correct bilinear, trilinear, and anisotropic texture filtering

perspective correct ARGB gouraud shading

specular highlighting with offset colours

hardware translucency sorter

volumetric effects (shadows, lens flare, etc)

multiple fog modes

bump mapping

full DirectX and OpenGL blending modes (back-end multi-pass rendering with micro-tile accumulation buffers)

3D in a Window

max resolution of 1600 by 1200 in 24-bit color

RAMDAC (230Mhz)

manufactured in NEC’s leading 0.25-micron process

2 to 32 MB of 100 MHz SDRAM

К слову https://www.youtube.com/playlist?list=PL9h9wwPDkj-4_DEP5WDNfZDWCw8OZK8_v

Sign up to leave a comment.

Articles