Memory Management: Difference between revisions
Line 52: | Line 52: | ||
=== Memory Block Tables === | === Memory Block Tables === | ||
The following table shows which block number has to be written into a slot register to make the each 8 KB block of memory available to the CPU. | |||
{| class="wikitable" style="border: none; background: none;" | {| class="wikitable" style="border: none; background: none;" | ||
! colspan=2 scope=col| RAM | ! colspan=2 scope=col| RAM |
Revision as of 08:09, 23 December 2023
The F256 line comes with 512 KB of RAM and 256 KB of flash memory. Up to 256 KB additional Memory, either RAM or Flash, can be added through the Expansion Port.
Physical Memory Layout
The address bus is 21 bits wide, allowing a total of 221 = 2 MB to be addressed.
Address | Purpose |
---|---|
$00:0000 - $07:FFFF | RAM |
$80:0000 - $0F:FFFF | Flash |
$10:0000 - $13:FFFF | Expansion Memory |
$14:0000 - $1F:FFFF | Reserved |
Memory Management Unit (MMU)
While the address bus is generally 21 bits wide, the CPU address bus of the 65c02 and the FNX6809 is only 16 bits wide. Even though the 65816 does have a 24 bit wide address bus, this is currently not used. However, this might change with a future update.
To allow the addressing of the whole address space, a Memory Management Unit (MMU) is provided, that translates the CPU logical address space to physical addresses.
To achieve this, the MMU has 8 slots, each representing an 8 KB block of the CPU addressable memory space.
The physical address space is also divided into 8 KB blocks, dividing the available 2 MB into 256 blocks.
To map a block of physical addresses into CPU address space, the block number is written into the according slot register of the MMU.
Slot | CPU Address Space | Slot Register Address |
---|---|---|
0 | $0000 - $1FFF | $0008 |
1 | $2000 - $3FFF | $0009 |
2 | $4000 - $5FFF | $000A |
3 | $6000 - $7FFF | $000B |
4 | $8000 - $9FFF | $000C |
5 | $A000 - $BFFF | $000D |
6 | $C000 - $DFFF | $000E |
7 | $E000 - $FFFF | $000F |
Memory Block Tables
The following table shows which block number has to be written into a slot register to make the each 8 KB block of memory available to the CPU.
RAM | Flash | Extension | |||||
---|---|---|---|---|---|---|---|
Block Number | Physical Address | Block Number | Physical Address | Block Number | Physical Address | ||
$00 | $00:0000 - $00:FFFF | $40 | $08:0000 - $08:1FFF | $80 | $10:0000 - $10:1FFF | ||
$01 | $00:2000 - $00:3FFF | $41 | $08:2000 - $08:3FFF | $81 | $10:2000 - $10:3FFF | ||
$02 | $00:4000 - $00:5FFF | $42 | $08:4000 - $08:5FFF | $82 | $10:4000 - $10:5FFF | ||
$03 | $00:6000 - $00:7FFF | $43 | $08:6000 - $08:7FFF | $83 | $10:6000 - $10:7FFF | ||
$04 | $00:8000 - $00:9FFF | $44 | $08:8000 - $08:9FFF | $84 | $10:8000 - $10:9FFF | ||
$05 | $00:A000 - $00:BFFF | $45 | $08:A000 - $08:BFFF | $85 | $10:A000 - $10:BFFF | ||
$06 | $00:C000 - $00:DFFF | $46 | $08:C000 - $08:DFFF | $86 | $10:C000 - $10:DFFF | ||
$07 | $00:E000 - $00:FFFF | $47 | $08:E000 - $08:FFFF | $87 | $10:E000 - $10:FFFF | ||
$08 | $01:0000 - $01:1FFF | $48 | $09:0000 - $09:1FFF | $88 | $11:0000 - $11:1FFF | ||
$09 | $01:2000 - $01:3FFF | $49 | $09:2000 - $09:3FFF | $89 | $11:2000 - $11:3FFF | ||
$0A | $01:4000 - $01:5FFF | $4A | $09:4000 - $09:5FFF | $8A | $11:4000 - $11:5FFF | ||
$0B | $01:6000 - $01:7FFF | $4B | $09:6000 - $09:7FFF | $8B | $11:6000 - $11:7FFF | ||
$0C | $01:8000 - $01:9FFF | $4C | $09:8000 - $09:9FFF | $8C | $11:8000 - $11:9FFF | ||
$0D | $01:A000 - $01:BFFF | $4D | $09:A000 - $09:BFFF | $8D | $11:A000 - $11:BFFF | ||
$0E | $01:C000 - $01:DFFF | $4E | $09:C000 - $09:DFFF | $8E | $11:C000 - $11:DFFF | ||
$0F | $01:E000 - $01:FFFF | $4F | $09:E000 - $09:FFFF | $8F | $11:E000 - $11:FFFF | ||
$10 | $02:0000 - $02:1FFF | $50 | $0A:0000 - $0A:1FFF | $90 | $12:0000 - $12:1FFF | ||
$11 | $02:2000 - $02:3FFF | $51 | $0A:2000 - $0A:3FFF | $91 | $12:2000 - $12:3FFF | ||
$12 | $02:4000 - $02:5FFF | $52 | $0A:4000 - $0A:5FFF | $92 | $12:4000 - $12:5FFF | ||
$13 | $02:6000 - $02:7FFF | $53 | $0A:6000 - $0A:7FFF | $93 | $12:6000 - $12:7FFF | ||
$14 | $02:8000 - $02:9FFF | $54 | $0A:8000 - $0A:9FFF | $94 | $12:8000 - $12:9FFF | ||
$15 | $02:A000 - $02:BFFF | $55 | $0A:A000 - $0A:BFFF | $95 | $12:A000 - $12:BFFF | ||
$16 | $02:C000 - $02:DFFF | $56 | $0A:C000 - $0A:DFFF | $96 | $12:C000 - $12:DFFF | ||
$17 | $02:E000 - $02:FFFF | $57 | $0A:E000 - $0A:FFFF | $97 | $12:E000 - $12:FFFF | ||
$18 | $03:0000 - $03:1FFF | $58 | $0B:0000 - $0B:1FFF | $98 | $13:0000 - $13:1FFF | ||
$19 | $03:2000 - $03:3FFF | $59 | $0B:2000 - $0B:3FFF | $99 | $13:2000 - $13:3FFF | ||
$1A | $03:4000 - $03:5FFF | $5A | $0B:4000 - $0B:5FFF | $9A | $13:4000 - $13:5FFF | ||
$1B | $03:6000 - $03:7FFF | $5B | $0B:6000 - $0B:7FFF | $9B | $13:6000 - $13:7FFF | ||
$1C | $03:8000 - $03:9FFF | $5C | $0B:8000 - $0B:9FFF | $9C | $13:8000 - $13:9FFF | ||
$1D | $03:A000 - $03:BFFF | $5D | $0B:A000 - $0B:BFFF | $9D | $13:A000 - $13:BFFF | ||
$1E | $03:C000 - $03:DFFF | $5E | $0B:C000 - $0B:DFFF | $9E | $13:C000 - $13:DFFF | ||
$1F | $03:E000 - $03:FFFF | $5F | $0B:E000 - $0B:FFFF | $9F | $13:E000 - $13:FFFF | ||
$20 | $04:0000 - $04:1FFF | $60 | $0C:0000 - $0C:1FFF | ||||
$21 | $04:2000 - $04:3FFF | $61 | $0C:2000 - $0C:3FFF | ||||
$22 | $04:4000 - $04:5FFF | $62 | $0C:4000 - $0C:5FFF | ||||
$23 | $04:6000 - $04:7FFF | $63 | $0C:6000 - $0C:7FFF | ||||
$24 | $04:8000 - $04:9FFF | $64 | $0C:8000 - $0C:9FFF | ||||
$25 | $04:A000 - $04:BFFF | $65 | $0C:A000 - $0C:BFFF | ||||
$26 | $04:C000 - $04:DFFF | $66 | $0C:C000 - $0C:DFFF | ||||
$27 | $04:E000 - $04:FFFF | $67 | $0C:E000 - $0C:FFFF | ||||
$28 | $05:0000 - $05:1FFF | $68 | $0D:0000 - $0D:1FFF | ||||
$29 | $05:2000 - $05:3FFF | $69 | $0D:2000 - $0D:3FFF | ||||
$2A | $05:4000 - $05:5FFF | $6A | $0D:4000 - $0D:5FFF | ||||
$2B | $05:6000 - $05:7FFF | $6B | $0D:6000 - $0D:7FFF | ||||
$2C | $05:8000 - $05:9FFF | $6C | $0D:8000 - $0D:9FFF | ||||
$2D | $05:A000 - $05:BFFF | $6D | $0D:A000 - $0D:BFFF | ||||
$2E | $05:C000 - $05:DFFF | $6E | $0D:C000 - $0D:DFFF | ||||
$2F | $05:E000 - $05:FFFF | $6F | $0D:E000 - $0D:FFFF | ||||
$30 | $06:0000 - $06:1FFF | $70 | $0E:0000 - $0E:1FFF | ||||
$31 | $06:2000 - $06:3FFF | $71 | $0E:2000 - $0E:3FFF | ||||
$32 | $06:4000 - $06:5FFF | $72 | $0E:4000 - $0E:5FFF | ||||
$33 | $06:6000 - $06:7FFF | $73 | $0E:6000 - $0E:7FFF | ||||
$34 | $06:8000 - $06:9FFF | $74 | $0E:8000 - $0E:9FFF | ||||
$35 | $06:A000 - $06:BFFF | $75 | $0E:A000 - $0E:BFFF | ||||
$36 | $06:C000 - $06:DFFF | $76 | $0E:C000 - $0E:DFFF | ||||
$37 | $06:E000 - $06:FFFF | $77 | $0E:E000 - $0E:FFFF | ||||
$38 | $07:0000 - $07:1FFF | $78 | $0F:0000 - $0F:1FFF | ||||
$39 | $07:2000 - $07:3FFF | $79 | $0F:2000 - $0F:3FFF | ||||
$3A | $07:4000 - $07:5FFF | $7A | $0F:4000 - $0F:5FFF | ||||
$3B | $07:6000 - $07:7FFF | $7B | $0F:6000 - $0F:7FFF | ||||
$3C | $07:8000 - $07:9FFF | $7C | $0F:8000 - $0F:9FFF | ||||
$3D | $07:A000 - $07:BFFF | $7D | $0F:A000 - $0F:BFFF | ||||
$3E | $07:C000 - $07:DFFF | $7E | $0F:C000 - $0F:DFFF | ||||
$3F | $07:E000 - $07:FFFF | $7F | $0F:E000 - $0F:FFFF |