DRAM: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:cd2_sprdram.jpg|thumb|right|2x2MiB of DRAM for sprite tiles in a CD2 system.]]
[[File:cd2_sprdram.jpg|thumb|right|2x2MiB of DRAM for sprite tiles in a CD2 system.]]
[[File:cd1_spritedram.jpg|thumb|right|A different arrangement (8x512KiB) in a CD1 system.]]


DRAM stands for "Dynamic RAM". It's a type of fast and cheap volatile memory, which needs to be regularly refreshed in order to keep its contents.
DRAM stands for "Dynamic RAM". It's a type of fast and cheap volatile memory, which needs to be regularly refreshed in order to keep its contents.
When not refreshed fast enough, the DRAM chips contents gradually fades towards random values.


DRAM is used in the NeoGeo CD as a virtual [[cartridges|cartridge]], which is filled with data [[Loading files|loaded]] from files in the game CD.
DRAM is used in the NeoGeo CD as a virtual [[cartridges|cartridge]], which is filled with data [[Loading files|loaded from files]] in the game CD.
The rest of the hardware (basically the same as in the AES and MVS) then sees the DRAM as it was a regular cartridge of fixed size.
The rest of the hardware then sees the DRAM memories as if they were a regular cartridge of fixed size. Accesses to DRAM are made through [[NEO-BUF]] chips to switch between the corresponding subsystem bus (video, audio...) and the [[68k]]'s bus.
 
DRAM organization changed with the different revisions of the NeoGeo CD PCB but doesn't matter for games. Multiple 16, 8 and 4 bits chips were used and grouped as banks.


DRAM organization changed with the different revisions of the NeoGeo CD PCB. Multiple 16, 8 and 4 bits chips were used and grouped as banks.
The total amount of DRAM in the NeoGeo CD always was 7MByte organized as follows:
The total amount of DRAM in the NeoGeo CD always was 7MBit organized as follows:


** 1MB for the [[68k]]'s program
* 2MB for the [[68k]]'s program
** 4MB for [[sprites]] tiles
* 4MB for [[sprites]] tiles
** 2MB for the [[YM2610#ADPCM|ADPCM]] data
* 1MB for the [[YM2610#ADPCM|ADPCM]] data


One example of chip configuration:
One example of chip configuration:
** 2x 2MB in 8bits (4MB) for sprites
* 1x 2MB in 16bits for the 68k program
** 2x 512k in 16bits (1MB) for 68k program
* 2x 2MB in 16bits (4MB) for sprites
** 4x 512k in 4bits (2MB) for [[YM2610#ADPCM|ADPCM]] data
* 2x 512k in 4bits (1MB) for [[YM2610#ADPCM|ADPCM]] data


[[Fix layer|Fix]] tiles are stored in 128kB of [[PSRAM]].
[[Fix layer|Fix]] tiles are stored in 128kB of [[PSRAM]].
The Z80 program ([[sound drivers]]) is stored in a 64kB RAM block (self modifying code possible ?).
The Z80 program ([[sound driver]]) is stored in a 64kB RAM block (self modifying code possible ?).


[[Category:Chips]]
[[Category:Chips]]
[[Category:CD systems]]

Latest revision as of 22:40, 20 July 2016

File:Cd2 sprdram.jpg
2x2MiB of DRAM for sprite tiles in a CD2 system.
File:Cd1 spritedram.jpg
A different arrangement (8x512KiB) in a CD1 system.

DRAM stands for "Dynamic RAM". It's a type of fast and cheap volatile memory, which needs to be regularly refreshed in order to keep its contents.

DRAM is used in the NeoGeo CD as a virtual cartridge, which is filled with data loaded from files in the game CD. The rest of the hardware then sees the DRAM memories as if they were a regular cartridge of fixed size. Accesses to DRAM are made through NEO-BUF chips to switch between the corresponding subsystem bus (video, audio...) and the 68k's bus.

DRAM organization changed with the different revisions of the NeoGeo CD PCB but doesn't matter for games. Multiple 16, 8 and 4 bits chips were used and grouped as banks.

The total amount of DRAM in the NeoGeo CD always was 7MByte organized as follows:

One example of chip configuration:

  • 1x 2MB in 16bits for the 68k program
  • 2x 2MB in 16bits (4MB) for sprites
  • 2x 512k in 4bits (1MB) for ADPCM data

Fix tiles are stored in 128kB of PSRAM. The Z80 program (sound driver) is stored in a 64kB RAM block (self modifying code possible ?).